您将需要以下软件
这是我使用并推荐的目录布局方案
+ /usr/src | +-+ apache | +-+ apache-1.3.12 | +-+ modules | | | +-+ mod_perl | | | | | +- mod_perl-1.21 | | | | | +-+ depend | | | | | +- <perl modules here> | | | +-+ mod_ssl | | | | | +- mod_ssl-2.6.2-1.3.12 | | | | | +-+ depend | | | | | +- openssl-0.9.5 | | | | | +- rsaref-2.0 | | | | | +- mm-1.0.12 | | | +-+ mod_fastcgi_SNAP | | | +-+ php | | | | | +- php-3.0.15 | | | | | +-+ depend | | | | | +- gd-1.3 | | | | | +- imap-4.5 | | | | | +- openldap-1.2.9 | | | +-+ mod_auth_nds | | | | | +- mod_auth_nds-0.4 | | | | | +-+ depend | | | | | +- ncpfs-2.2.0.17 | | | +-+ mod_auth_mysql | +-+ mysql
检查以查看您的系统上是否已安装了上述某些模块/软件包。 下载所有内容并安装以防万一通常不会有坏处。 您的系统上可能安装了旧版本。
mod_ssl 需要安装某种 SSL 引擎。 OpenSSL 是 Linux 环境下的自然选择。 您可以通过 RPM 包安装(就像我做的那样),或者从源代码编译安装。 由于我没有从源代码编译安装,所以您需要自行完成,但我认为这应该相当简单。 您很可能将其安装到系统目录(例如 /usr/local),或者将其保留在其目录中,并在需要 OpenSSL 的应用程序中指定其目录路径。
RPM 将 OpenSSL 安装到系统目录中。
在您喜欢的任何位置创建 rsaref-2.0 目录。 对我来说,这在 /usr/src/apache/modules/mod_ssl-blah/depend/ 中。 更改到此目录。
cd rsaref-2.0 cp -rp install/unix local cd local make mv rsaref librsaref.a
这些命令应该为您构建 rsaref 库! 只需将这些东西留在这里,当您需要链接它时,只需将相应的配置脚本指向此位置即可。
将 mm-1.0.12(或最新版本)解压到 mod_ssl-blah 子目录的 depend 目录中。 执行以下步骤
cd mm-1.0.12 ./configure --disable-shared make
这应该构建您的 mm 库。 如上所述,在需要时引用此路径。 如果您想将此库安装到系统中,您需要自行完成。
使用 apxs 的正常程序是先编译 Apache,然后使用 apxs 编译您要使用的模块并将它们插入到服务器中。 但是,mod_ssl 需要以正常方式编译到服务器中,然后才能通过 apxs 使用它。 一旦 mod_ssl 首次进入服务器,您就可以通过 apxs 升级它,而无需完全重新编译 Apache。
进入您要编译 mod_ssl 的目录并执行以下配置指令(这是我使用的文件)以进行初始编译
#!/bin/sh ./configure \ --with-apache=/usr/src/apache/apache_1.3.12 \ --with-ssl \ --with-rsa=../depend/rsaref-2.0/local \ --with-mm=../depend/mm-1.0.12 \ --enable-shared=ssl
您无需在此处运行“make”或任何操作。 当我们编译 Apache 时,它会为我们完成所有操作。
此配置行给出了系统可能设置的两个示例。 在我的情况下,OpenSSL 已经安装在系统中的某个位置(可能在 /usr/lib, /usr/include 中)。 因此,我不需要传递任何位置参数。 但是,rsa 和 mm -not- 在系统上,我自己编译了它们并将它们保留在它们的源代码树中(没有运行 make install 等)。 在这种情况下,您需要将 configure 指向相应的目录,以便它可以找到头文件/库。
从那时起,除非您升级 Apache(在这种情况下,您需要为新版本的 Apache 再次执行上述步骤),否则您可以使用 apxs 升级和重新编译 mod_ssl。 这是我用于此目的的配置脚本
./configure \ --with-apxs=/apps/apache-1.3.12/bin/apxs \ --with-ssl=../depend/openssl-0.9.4 \ --with-rsa=../depend/rsaref-2.0/local \ --with-mm=../depend/mm-1.0.12
或以上的一些组合。 然后运行
make make install make distclean
完成安装。
注意:编译 mod_ssl 不需要 MM。 如果您在使其工作时遇到问题,只需省略编译它以及 ./configure 行中的内容。
当我编译 mod_ssl 时,我遇到了关于 DBM 的错误。 为了解决这个问题,我必须将 -lndbm 添加到 Makefile
LIBS_SHLIB=-lm -lcrypt -lndbm
希望这能为您节省一些麻烦。
将 apache-1.3.12.tar.gz 解压到 /usr/src/apache 或任何位置。 接下来,我们要编译 Apache,启用以下选项
这是我最初编译 Apache 时使用的配置文件
#!/bin/sh SSL_BASE=../depend/openssl-0.9.4 \ RSA_BASE=../depend/rsaref-2.0/local \ EAPI_MM=../depend/mm-1.0.12 \ ./configure \ --enable-module=ssl \ --enable-module=proxy\ --enable-shared=proxy\ --enable-module=rewrite \ --enable-shared=rewrite \ --prefix=/apps/apache-1.3.12 \ --enable-shared=ssl \ --enable-rule=SHARED_CORE \ --enable-rule=SHARED_CHAIN \ --enable-module=so
然后运行
make make certificate make install
Apache 现在应该已编译并安装到您使用 --prefix 指定的任何目录中。 测试一下并确保它启动。
/path/to/apache/bin/apachectl start
或
/path/to/apache/bin/apachectl startssl
希望一切运行顺利。 如果没有,请回顾您的步骤并确保您没有忘记任何内容。
php 以及 mod_auth_mysql 和可能的 mod_perl 将需要 MySQL 安装并在您的系统上运行。 本文档的范围不包括详细介绍 MySQL 的安装,但请下载存档并按照 INSTALL 文件中的说明进行操作。 获取 MySQL 并运行是一个相当简单的过程。 类似这样
./configure make make install
应该安装所有内容,以便您可以编译其他 Apache 模块。
我们将 php-3.0.15 编译为 DSO,这意味着它是一个单独的模块,可以从服务器加载和卸载。 这使得升级 php 变得容易,而无需重新编译所有内容(如果您在 Apache 中使用大量模块,这可能会很麻烦)。
在我们的 Apache 安装中,php 使用 gd 创建图像等。 我使用了旧版本的 gd(通过 RPM 安装)来链接 php。 这样我们就可以使用输出 GIF 文件。 由于版权问题,这可能不太理想,因此您可能希望使用晚于 1.3 的版本,该版本仅支持 PNG 文件。
通过 RPM 安装 (rpm -i gd*.rpm) 或从源代码编译并安装到系统。
如果您想要 IMAP 支持,则过程与 gd 类似。 我使用了 RPM,因为我在 Red Hat 系统上,但是从源代码安装应该是一个相对简单的 ./configure;make;make install 过程。
再次,您可以通过 RPM 或源代码安装 OpenLDAP。 我选择通过源代码进行安装,因为在我们设置时,最新版本尚无法通过 RPM 获得。
./configure make make install
应该可以了!(或 rpm -i openldap*.rpm)
一旦安装并运行了上述项目,我们就可以继续将 PHP 编译为 DSO。 该过程非常简单直接。
cd /usr/src/apache/modules/php/php-3.0.15 ./configure \ --with-apxs=/apps/apache/bin/apxs \ --with-config-file-path=/apps/etc \ --with-gd \ --with-imap \ --with-mysql=/apps/mysql \ --with-ldap=/apps \ --with-zlib \ --enable-track-vars
确保如果您的任何 --with 库未安装在 /usr/local 或 /usr 中,则您需要在行尾添加 =/location/,以便 configure 可以找到它需要的东西!
make make install
如果一切顺利完成,“make install”将使用 apxs 将 libphp3.so 安装到 /apache/libexec/libphp3.so,并在 httpd.conf 中添加正确的条目并激活 php3。 非常巧妙。
本节介绍如何将 mod_perl 作为 DSO 安装到 Apache 中。 在编译 mod_perl 而不报错之前,必须添加许多 perl 模块(当然,除了 perl5 之外,我假设您已经安装了)。 如果您不安装这些模块,mod_perl 应该会报错并告诉您缺少哪些模块。
模块必须按照一定的顺序安装。 有些模块依赖于其他模块,因此我列出了我使用的安装顺序,没有任何问题。
Perl 模块可以从本文档前面详细说明的位置获得。 下载它们并将它们放在您喜欢的任何位置,或者放在我用作目录映射的位置(也在上面)。 安装模块非常简单。 将模块解压到目录后(通常使用 tar xvfz),您只需更改到该目录并执行以下命令
perl Makefile.PL make make install
如果一切按预期进行,这将为您配置、构建和安装 perl 模块。 当然,如果事情没有完全按预期工作,请检查每个模块的 README 文件。
这是我用于安装 mod_perl 所需模块的顺序
安装 perl 模块后,我们就可以编译 mod_perl 并将其安装到 Apache 中了。 更改到您解压 mod_perl 的目录,并运行以下脚本
perl Makefile.PL \ USE_APXS=1 \ WITH_APXS=/path/to/apache/bin/apxs \ EVERYTHING=1
这将设置您的 Makefile 并告诉 mod_perl 使用 apxs 将自身编译为 DSO(您必须指定 apxs 的位置)。 完成此步骤后,只需运行
make make install
mod_perl 将被移动到相应的目录,并且行被添加到您的 httpd.conf 文件中。
mod_auth_mysql 允许 Apache Web 服务器针对 MySQL 用户数据库进行授权。 将模块作为 DSO 安装并没有在 README 文件中明确说明,但可以完成。
首先,更改到您解压 mod_auth_mysql 的目录。 我假设您已在某处安装了 MySQL(以及头文件等)。 确保您知道 MySQL 库和头文件的位置。 如果有疑问,请检查 /usr/lib/mysql 和 /usr/include/mysql。
为了编译 mod_auth_mysql,我们首先必须将“config.h”文件重命名为“auth_mysql_config.h”。 我不确定为什么这个文件没有正确命名,但只需执行以下命令
cp config.h auth_mysql_config.h
现在是最后一步
/path/to/apache/bin/apxs -i -a -I/usr/include/mysql -L/usr/lib/mysql \ -lmysqlclient -c mod_auth_mysql.c
如果您没有 Apache 目录的读/写权限,则可能需要以 root 用户身份运行。
在我的学校,首选的 Windows 网络是 Netware。 它已经存在很长时间了,虽然希望有一天它会被淘汰,但目前它仍然是校园内用于文件共享和电子邮件的主要网络。 每个学生都有一个 Netware 帐户,他们的个人文件(包括他们的网页)都存储在该帐户中。 我们将这些目录挂载到我们的 Linux 服务器上,并且能够使用 Netware 用户名和密码信息来密码保护某些目录会很好。 通过此模块,Apache 可以直接向 Netware 服务器本身进行身份验证。
为了编译 mod_auth_nds,我们需要安装 ncpfs(以及它的头文件)。 在编译 ncpfs 之前,您必须确保您的内核已编译 IPX 支持。 如果是这种情况,只需运行
./configure make make install (optional)
将编译(并安装)库。
安装 ncpfs 后,运行以下命令应该将 mod_auth_nds 编译为 DSO
/path/to/apache/bin/apxs -c -lncp -L/usr/lib -I/usr/include mod_auth_nds.c /path/to/apache/bin/apxs -i mod_auth_nds.so
然后将以下行手动添加到您的 httpd.conf 中
LoadModule nds_auth_module libexec/mod_auth_nds.so AddModule mod_auth_nds.c
然后,重启 Apache!
如果您想允许通过 Apache 访问您的 Zope 服务器,则必须安装 mod_fastcgi。 这可能很有用,仅仅是因为 Apache 本质上比 Zope 服务器本身更安全且更可配置。
mod_fastcgi 的当前稳定版本是 2.2.2,但是,此版本不能与 Zope 正常工作。 您必须获取 SNAP 版本,该版本日期为 10 月 06 日。 上面提供了链接。
更改到 mod_fastcgi 目录并运行以下命令
/path/to/apache/bin/apxs -o mod_fastcgi.so -c *.c /path/to/apache/bin/apxs -i -a -n fastcgi mod_fastcgi.so
有关其用法的说明,请参阅 mod_fastcgi 文档。