Apache-2.0.47

Introduction to Apache

The Apache package contains an open-source HTTP server. It is useful for creating local intranet web sites or running huge web serving operations.

Package information

Installation of Apache

For security reasons, running the server as an unprivileged user and group is strongly encouraged.

groupadd apache &&
useradd -c apache -d /dev/null -g apache -s /bin/false apache

The following patch will define the layout of destination directories and, among them, the build directory at /usr/lib/apache/build. This will allow the modules added to Apache to be configured without errors. Apply the patch:

patch -Np1 -i ../httpd-2.0.47-config.patch

Build and install Apache by running the following commands:

./configure --enable-layout=LFS \
            --enable-mods-shared=all &&
make &&
make install &&
chown root:root /usr/sbin/{apxs,apachectl,dbmmanage,envvars-std,envvars} &&
chown -R root:root /usr/{include,lib}/apache &&
chown -R root:root /var/www &&
chown -R root:root /usr/share/man

Command explanations

--enable-mods-shared=all: We want modules to be compiled and used as Dynamic Shared Objects (DSOs) so they can be included and excluded from the server using the run-time configuration directives.

Configuring Apache

Config files

/etc/apache/*

Configuration Information

The main configuration file is called httpd.conf. Modify it to run the server as a dedicated user:

sed -i -e "s%User nobody%User apache%" -e "s%^Group #-1%Group apache%" /etc/apache/httpd.conf

See http://httpd.apache.org/docs-2.0/configuring.html for detailed instructions on customizing your Apache HTTP server.

To automate the running of Apache, use the following command to create the init.d script:

cat > /etc/rc.d/init.d/apache << "EOF"
#!/bin/bash

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Starting Apache daemon..."
                /usr/sbin/apachectl -k start
                evaluate_retval
                ;;

        stop)
                echo "Stopping Apache daemon..."
                /usr/sbin/apachectl -k stop
                evaluate_retval
                ;;

        restart)
                echo "Restarting Apache daemon..."
                /usr/sbin/apachectl -k restart
                evaluate_retval
                ;;

        status)
                statusproc /usr/sbin/httpd
                ;;
                
        *)
                echo "Usage: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac
EOF
chmod 755 /etc/rc.d/init.d/apache

Create the symbolic links to this file in the relevant rc.d directory with the following commands:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/apache ../rc0.d/K28apache &&
ln -sf ../init.d/apache ../rc1.d/K28apache &&
ln -sf ../init.d/apache ../rc2.d/K28apache &&
ln -sf ../init.d/apache ../rc3.d/S32apache &&
ln -sf ../init.d/apache ../rc4.d/S32apache &&
ln -sf ../init.d/apache ../rc5.d/S32apache &&
ln -sf ../init.d/apache ../rc6.d/K28apache

Contents

The Apache package provides ab, apachectl, apr-config, apu-config, apxs, checkgid, dbmmanage, htdbm, htdigest, htpasswd, httpd, instdso.sh, logresolve, rotatelogs, libapr, libaprutil and various modules.

Description

ab

ab is a tool for benchmarking your Apache HTTP server.

apachectl

apachectl is a front end to the Apache HTTP server which is designed to help the administrator control the functioning of the Apache httpd daemon.

apxs

apxs is a tool for building and installing extension modules for the Apache HTTP server.

dbmmanage

dbmmanage is used to create and update the DBM format files used to store usernames and password for basic authentication of HTTP users.

htdigest

htdigest is used to create and update the flat-files used to store usernames, realm and password for digest authentication of HTTP users.

htpasswd

htpasswd is used to create and update the flat-files used to store usernames and password for basic authentication of HTTP users.

httpd

httpd is the Apache HTTP server program.

instdso.sh

instdso.sh is a script which installs Apache DSO modules.

logresolve

logresolve is a post-processing program to resolve IP-addresses in Apache's access log files.

rotatelogs

rotatelogs is a simple program for use in conjunction with Apache's piped log file feature.