You are on page 1of 5

Apache

The Apache Web Server is the Internet's most popular Web server, and the project everyone
associates with apache.org. However, it might surprise you to know that there are more than 70
other projects under the Apache umbrella. Enterprise-level projects include ActiveMQ,
Geronimo, SpamAssassin and Tomcat. Although many of the Apache projects relate to Java
(e.g., Geronimo and Tomcat), several are stand-alone projects (OFBiz), and a few directly
enhance Apache (mod_perl). If you haven't checked out apache.org lately, you should.
Apache.org has morphed into more than the just a URL from which you download the Apache
Web Server; it's a repository of the most powerful open source software in the world.

Drupal

Content management systems (CMSs) provide a collaborative environment for social networking
sites, corporate Web sites, intranets, community portals, e-commerce applications and discussion
sites. Drupal is a CMS that allows communities to publish, share and manage a variety of content
on a Web server. Communities range from a few users to tens of thousands. Drupal is modular
and has dozens of add-ons that enhance its functionality and appeal, such as blogs, forums,
newsletters, podcasting, photos, file uploading and downloading, collaborative authoring and e-
commerce.

Pentaho is a commercial company that offers a community edition of its open source business
intelligence product as free to use, explore and change at will. Both editions have query, reporting,
interactive analysis, dashboards, data integration and data mining. Pentaho's philosophy changes the
economics of enterprise-class business intelligence by serving up its commercial version for an annual
subscription priced less than one-third of what its competitors charge. Its customer testimonials speak
volumes in favor of its claims of lowering the TCO for business intelligence software.

OpenLDAP Server

LDAP is an acronym for Lightweight Directory Access Protocol, it is a simplified version of the
X.500 protocol. The directory setup in this section will be used for authentication. Nevertheless,
LDAP can be used in numerous ways: authentication, shared directory (for mail clients), address
book, etc.

To describe LDAP quickly, all information is stored in a tree structure. With OpenLDAP you
have freedom to determine the directory arborescence (the Directory Information Tree: the DIT)
yourself. We will begin with a basic tree containing two nodes below the root:

"People" node where your users will be stored


"Groups" node where your groups will be stored

Before beginning, you should determine what the root of your LDAP directory will be. By
default, your tree will be determined by your Fully Qualified Domain Name (FQDN). If your
domain is example.com (which we will use in this example), your root node will be
dc=example,dc=com.

Installation

First, install the OpenLDAP server daemon slapd and ldap-utils, a package containing LDAP
management utilities:

sudo apt-get install slapd ldap-utils

By default slapd is configured with minimal options needed to run the slapd daemon.

Populating LDAP

OpenLDAP uses a separate directory which contains the cn=config Directory Information Tree
(DIT). The cn=config DIT is used to dynamically configure the slapd daemon, allowing the
modification of schema definitions, indexes, ACLs, etc without stopping the service.

The backend cn=config directory has only a minimal configuration and will need additional
configuration options in order to populate the frontend directory. The frontend will be populated
with a "classical" scheme that will be compatible with address book applications and with Unix
Posix accounts. Posix accounts will allow authentication to various applications, such as web
applications, email Mail Transfer Agent (MTA) applications, etc.

HTTPD - Apache2 Web Server

Apache is the most commonly used Web Server on Linux systems. Web Servers are used to
serve Web Pages requested by client computers. Clients typically request and view Web Pages
using Web Browser applications such as Firefox, Opera, or Mozilla.

Users enter a Uniform Resource Locator (URL) to point to a Web server by means of its Fully
Qualified Domain Name (FQDN) and a path to the required resource. For example, to view the
home page of the Ubuntu Web site a user will enter only the FQDN. To request specific
information about paid support, a user will enter the FQDN followed by a path.

The most common protocol used to transfer Web pages is the Hyper Text Transfer Protocol
(HTTP). Protocols such as Hyper Text Transfer Protocol over Secure Sockets Layer (HTTPS),
and File Transfer Protocol (FTP), a protocol for uploading and downloading files, are also
supported.

Apache Web Servers are often used in combination with the MySQL database engine, the
HyperText Preprocessor (PHP) scripting language, and other popular scripting languages such as
Python and Perl. This configuration is termed LAMP (Linux, Apache, MySQL and
Perl/Python/PHP) and forms a powerful and robust platform for the development and
deployment of Web-based applications.
Installation

The Apache2 web server is available in Ubuntu Linux. To install Apache2:

At a terminal prompt enter the following command:


sudo apt-get install apache2

Configuration

Apache2 is configured by placing directives in plain text configuration files. These directives are
separated between the following files and directories:

apache2.conf: the main Apache2 configuration file. Contains settings that are global to
Apache2.
conf.d: contains configuration files which apply globally to Apache2. Other packages that
use Apache2 to serve content may add files, or symlinks, to this directory.
envvars: file where Apache2 environment variables are set.
httpd.conf: historically the main Apache2 configuration file, named after the httpd
daemon. The file can be used for user specific configuration options that globally effect
Apache2.
mods-available: this directory contains configuration files to both load modules and
configure them. Not all modules will have specific configuration files, however.
mods-enabled: holds symlinks to the files in /etc/apache2/mods-available. When a
module configuration file is symlinked it will be enabled the next time apache2 is
restarted.
ports.conf: houses the directives that determine which TCP ports Apache2 is listening on.
sites-available: this directory has configuration files for Apache2 Virtual Hosts. Virtual
Hosts allow Apache2 to be configured for multiple sites that have separate
configurations.
sites-enabled: like mods-enabled, sites-enabled contains symlinks to the
/etc/apache2/sites-available directory. Similarly when a configuration file in sites-
available is symlinked, the site configured by it will be active once Apache2 is restarted.

Squid - Proxy Server

Squid is a full-featured web proxy cache server application which provides proxy and cache
services for Hyper Text Transport Protocol (HTTP), File Transfer Protocol (FTP), and other
popular network protocols. Squid can implement caching and proxying of Secure Sockets Layer
(SSL) requests and caching of Domain Name Server (DNS) lookups, and perform transparent
caching. Squid also supports a wide variety of caching protocols, such as Internet Cache
Protocol, (ICP) the Hyper Text Caching Protocol, (HTCP) the Cache Array Routing Protocol
(CARP), and the Web Cache Coordination Protocol. (WCCP)

The Squid proxy cache server is an excellent solution to a variety of proxy and caching server
needs, and scales from the branch office to enterprise level networks while providing extensive,
granular access control mechanisms and monitoring of critical parameters via the Simple
Network Management Protocol (SNMP). When selecting a computer system for use as a
dedicated Squid proxy, or caching servers, ensure your system is configured with a large amount
of physical memory, as Squid maintains an in-memory cache for increased performance.

Installation

At a terminal prompt, enter the following command to install the Squid server:

sudo apt-get install squid

Configuration

Squid is configured by editing the directives contained within the /etc/squid/squid.conf


configuration file. The following examples illustrate some of the directives which may be
modified to affect the behavior of the Squid server. For more in-depth configuration of Squid,
see the References section.

Apache Tomcat

Apache Tomcat is a web container that allows you to serve Java Servlets and JSP (Java Server
Pages) web applications.

The Tomcat 6.0 packages in Ubuntu support two different ways of running Tomcat. You can
install them as a classic unique system-wide instance, that will be started at boot time and will
run as the tomcat6 unpriviledged user. But you can also deploy private instances that will run
with your own user rights, and that you should start and stop by yourself. This second way is
particularly useful in a development server context where multiple users need to test on their
own private Tomcat instances.

System-wide installation

To install the Tomcat server, you can enter the following command in the terminal prompt:

sudo apt-get install tomcat6

This will install a Tomcat server with just a default ROOT webapp that displays a minimal "It
works" page by default.

Configuration

Tomcat configuration files can be found in /etc/tomcat6. Only a few common configuration
tweaks will be described here, please see Tomcat 6.0 documentation for more.
Changing default ports

By default Tomcat 6.0 runs a HTTP connector on port 8080 and an AJP connector on port 8009.
You might want to change those default ports to avoid conflict with another server on the
system. This is done by changing the following lines in /etc/tomcat6/server.xml:

<Connector port="8080" protocol="HTTP/1.1"


connectionTimeout="20000"
redirectPort="8443" />
...
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Changing JVM used

By default Tomcat will run preferably with OpenJDK-6, then try Sun's JVM, then try some other
JVMs. If you have various JVMs installed, you can set which should be used by setting
JAVA_HOME in /etc/default/tomcat6:

JAVA_HOME=/usr/lib/jvm/java-6-sun

You might also like