BACK
Apache with mod_ssl, PHP, and mod_perl
This page covers configuring Apache 1.3.20 to use mod_perl-1.26, PHP-4.0.6, mod_ssl-2.8.4, and OpenSSL-0.9.6b. I didn't cover any options in the httpd.conf
file because the file is already fairly well documented. The version of Linux that I am using is SuSE 7.2. I installed everything below the /var directory because my /usr directory is getting full (the traditional/default place for Apache and other Daemons is in /usr/local).
After you obtain all the sources, save them all in the same directory as some packages will need access to other packages's sources.
green:~/apach/web # ls *.gz
apache_1.3.20.tar.gz
mm-1.1.3.tar.gz
mod_perl-1.26.tar.gz
mod_ssl-2.8.4-1.3.20.tar.gz
mysql-3.23.44.tar.gz
openssl-0.9.6b.tar.gz
php-4.0.6.tar.gz
Part I Install MM Shared Memory Library |
- Unpack the source and change to the directory
# gzip -cd mm-1.1.3.tar.gz | tar xvf -
# cd mm-1.1.3
- To install the MM library into /var/local/mm/{bin,lib,include,man}/ perform the following steps in your shell:
# ./configure --prefix=/var/local/mm
- Build MM by running:
# make
- Test the libraries
# make test
- If that works, install the binary with:
# make install
- Unpack the source and change to the directory
# gzip -cd openssl-0.9.6b.tar.gz | tar xvf -
# cd openssl-0.9.6b
- Run the config script to automatically configure your system
# ./config no-threads --openssldir=/var/local/openssl -fPIC
- Build OpenSSL by running:
# make
- After a successful build, the libraries should be tested. Run the following to test them:
# make test
- If everything tests OK, install OpenSSL with:
# make install
Part III Install mod_ssl, mod_perl, and PHP |
- If you want PHP to have MySQL support, you will have to install MySQL
before you install PHP.
- You should have the latest source available for Apache in the same directory as the other sources; it's easier to access it this way.
*Note that Apache and mod_ssl have the same version (1.3.20)
- Unpackage the sources, including Apache:
# gzip -cd apache_1.3.20.tar.gz | tar xvf -
# gzip -cd mod_ssl-2.8.4-1.3.20.tar.gz | tar xvf -
# gzip -cd mod_perl-1.26.tar.gz | tar xvf -
# gzip -cd php-4.0.6.tar.gz | tar xvf -
- Apply mod_ssl to Apache source tree
# cd mod_ssl-2.8.4-1.3.20
# ./configure --with-apache=../apache_1.3.20
# cd ..
- Apply mod_perl to Apache source tree and build/install the PERL-side of mod_perl
# cd mod_perl-1.26
# perl Makefile.PL \
EVERYTHING=1 \
APACHE_SRC=../apache_1.3.20/src \
USE_APACI=1 \
PREP_HTTPD=1 \
DO_HTTPD=1
# make
# make install
# cd ..
- Configure PHP and apply it to the Apache source tree
# cd php-4.0.6
# CFLAGS='-O2 -I/var/local/openssl/include' \
./configure --with-apache=../apache_1.3.20 \
--enable-track-vars \
--with-mysql=/usr/local/mysql \
--enable-memory-limit=yes \
--enable-debug=no
# make
# make install
- Copy the php.ini-dist file to /var/local/lib/php.ini.
# cp php.ini-dist /var/local/lib/php.ini
# cd ..
- Build/install Apache with mod_ssl, mod_perl, and PHP 4.
# cd apache_1.3.20
# SSL_BASE=/var/local/openssl \
./configure \
--enable-module=so \
--enable-module=proxy \
--enable-module=info \
--enable-module=alias \
--enable-module=dir \
--enable-module=userdir \
--prefix=/var/local/httpd \
--enable-module=ssl \
--enable-module=so \
--activate-module=src/modules/php4/libphp4.a \
--activate-module=src/modules/perl/libperl.a
# make
- Next you are asked to make a site certificate, the default type is test. You will be prompted to answer some question about your certificate, it's fine
to accept the defaults if you aren't actually installing a certificate from a CA.
# make certificate test
- If the next step goes correctly you will see a messsage of how to start the server.
# make install
[output cut]
+--------------------------------------------------------+
| You now have successfully built and installed the |
| Apache 1.3 HTTP server. To verify that Apache actually |
| works correctly you now should first check the |
| (initially created or preserved) configuration files |
| |
| /var/local/httpd/conf/httpd.conf
| |
| and then you should be able to immediately fire up |
| Apache the first time by running: |
| |
| /var/local/httpd/bin/apachectl start
| |
| Or when you want to run it with SSL enabled use: |
| |
| /var/local/httpd/bin/apachectl startssl
| |
| Thanks for using Apache. The Apache Group |
| http://www.apache.org/ |
+--------------------------------------------------------+
- You can now delete all the sources or archive them for future servers.
# cd ..
# rm *.tar.gz
- Start your server using the scripts mentioned in step 10 and view the available modules with the following command.
# /var/local/httpd/bin/httpd -l
Compiled-in modules:
http_core.c
mod_env.c
mod_log_config.c
mod_mime.c
mod_negotiation.c
mod_status.c
mod_info.c
mod_include.c
mod_autoindex.c
mod_dir.c
mod_cgi.c
mod_asis.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_access.c
mod_auth.c
mod_proxy.c
mod_so.c
mod_setenvif.c
mod_ssl.c
mod_php4.c
mod_perl.c
- After you have restarted your server you will see this line in the /var/local/httpd/logs/error_log. It indicates how Apache is configured and is
shown after Apache received a signal to restart. I've shown it here to verify SSL, PERL, and PHP are working on the server.
[Tue Oct 2 2001] [notice] Apache/1.3.20 (Unix) mod_perl/1.26 PHP/4.0.6 mod_ssl/2.8.4 \
OpenSSL/0.9.6b configured -- resuming normal operations
BACK |