Building and Installing Apache 2.0 Page 3
user@host> ./configure
[--prefix install-dir]
[--with-mpm=MPM]
The first step, ./buildconf, creates the
./configure script. This script finds all of the config.m4 files
in the Apache tree, and creates the configure.in script.
Buildconf also runs Autoconf and Autoheader on the
configure.in file. Autoconf creates the ./configure
script, and Autoheader generates the include/ap_config.h.in file.
This file is used in the next step to help configure Apache 2.0. After creating
the top-level configure script, Buildconf switches to the APR
subdirectory, and runs its Buildconf script. This script runs
Autoconf and Autoheader on APR's configure.in file. This creates a
second ./configure and a new file,
src/apr/include/apr_private.h.in. These files are also used in
configuring Apache. Finally, APR's buildconf script switches to
the src/lib/apr/shmem/unix/mm subdirectory and runs autoconf in
this directory. This creates MM's ./configure script, which is the
final subconfigure script used configuring the Apache server.
The second step actually configures the server. I have included the most
common arguments to ./configure, but there are many more. To
determine what all of the arguments are, run ./configure --help.
This will provide a list of all of the arguments and a little documentation
about each argument. There is not much more documentation, but it will be
written before Apache 2.0 is finally released. The two arguments detailed above
determine where Apache will be installed and which MPM will be compiled. There
is one other argument that is very useful for developers,
"--with-maintainer-mode". This argument configures
Apache to use very restrictive settings when compiling Apache.
Building Apache
To build Apache, run make;make install. This is self
explanatory. The first step builds Apache, and the second installs it into the
directory specified in the configure command.
Configuring Apache 2.0
When Apache is installed it is a full installation. This includes a sample
configuration file and an index.html file in multiple languages. To test that
everything is working, we can now start Apache 2.0 and request a page. The
default configuration uses port 80, which means you can only start Apache if
you are logged in as root and you have no other web server running on this
machine. To change this, change to the directory where Apache 2.0 has been
installed and edit the file conf/httpd.conf using your favorite
editor. Search for the string:
Port 80
Change the default Port to some value higher than 1024. Save the file and exit the editor. Next run:
bin/httpd
This is slightly different than Apache 1.3. In Apache 1.3 a script called
apachectl was automatically installted. This script was able to
start, stop, and restart the server. This script has not been written yet for
Apache 2.0, so we have to start and stop the server manually. The
apachectl script will be included with the final Apache 2.0, and
may be included with the next alpha or one of the beta versions.
The server should have been started now. You can determine this by checking
the logs/httpd.pid file. If this file is there, the server has
been started. If it isn't there, check the error log,
logs/error_log. If there is a problem, this file is your best
chance to diagnose the problem.
