一 本文目的 本文旨在详述如何编译Apache,OpenSSL,ModSSL,MM,Mod_Perl,
PHP,Zend,
MySQL和
Oracle支持及其可能遇到的问题,和一些常用的加速编译和提高工作效率的技巧。
二 工作环境 Redhat
Linux OS 6.x/7.x
三 编译过程 1. 所需的
软件 MM 1.1.3 http://www.engelschall.com/sw/mm/
OpenSSL 0.9.6d www.openssl.org
ModSSL 2.8.10_1.3.26 www.modssl.org
Apache 1.3.26 www.apache.org
MySQL 3.23.51 www.mysql.com
PHP 4.2.1/3.0.18 www.php.net
Zend Optimizer 1.3.1 https://www.zend.com/store/freeware.php
Mod_Perl 1.27 http://perl.apache.org/dist/
Oracle 8.1.7 www.oracle.com
2. 开始编译
a. 首先编译MM (可选)
cd ../mm-1.1.3
./configure --prefix=/usr/local/mm (单独的目录便于区别)
make
make test
make install
b. 编译OpenSSL (http: 可选 https:必需)
cd ../openssl-0.9.6d
./config no-threads -fPIC
make
make test
make install
注:no-threads 没有多线程支持,因为Apache 1.3.x不用多线程。
c. 编译Mod_SSL (http: 可选 https:必需)
cd mod_ssl-2.8.10-1.3.26
./configure --with-apache=../apache_1.3.26
d. 编译Apache
d1 最大子进程限制修补 (可选)
cd ../apache_1.3.26
vi src/include/httpd.h
change value 256 to 1024 or above
d2 为后来的PHP带Oracle支持作准备 (可选)
如果你要编译PHP带Oracle支持,你要修改Apache编译文件configure加下面的行 LIBS=-lpthread在
for var in CFLAGS LDFLAGS LIBS INCLUDES DEPS; do
前面,如下所示
LIBS=-lpthread
for var in CFLAGS LDFLAGS LIBS INCLUDES DEPS; do
注:忘记了加LIBS=-lpthread,你可以
# cd /usr/src/apache_1.3.26
# make clean
# LIBS=-lpthread ./config.status
# make
# make install
d3 编译Apache
EAPI_MM=../mm-1.1.3 SSL_BASE=../openssl-0.9.6d ./configure
--prefix=/usr/local/apache_ssl --enable-module=most --enable-shared=max --enable-module=rewrite --enable-shared=rewrite --enable-module=proxy --enable-shared=proxy --enable-module=ssl --enable-shared=ssl
make
make certificate (TYPE=test by default)
make install
strip /usr/local/apache_ssl/bin/*
注:
d3.1 如果你只是为了测试SSL,可用上面的命令,因为默认是为了测试。
d3.2 如果你升级正在运行的SSL站点,可用make certificate TYPE=dummy,最后拷贝已经在用的ssl.crt/server.crt 和
ssl.key/server.key。
d3.3 在make install之前,可用命令ldd src/httpd 看有没有输出libpthread以确认前面有没有enable LIBS=-lpthread。
d3.4 strip 所有的apache可执行文件包括httpd以节省
内存空间。
e 编译MySQL
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
shell> bin/safe_mysqld --user=mysql &
shutdown MySQL: cd /usr/local/mysql;bin/mysqladmin shutdown