Apache + mod_ssl + mod_perl + Jakarta-Tomcat + PHP + ZendOptimizer + MySQL
mini-HOWTO
□測試平台
已成功在 Linux、FreeBSD 完成測試,以下以 Linux 為例解說。
□安裝之前
在安裝之前,請確定您的系統內已有 Perl 與 JDK,建議使用 Perl 5.005_03 以後版
本,JDK 則建議使用 IBM JDK 1.1.8 或 Sun JDK 1.2.2。另外,如果你的系統內已安
裝有 Apache,請先把它更名或備份起來,例如:
# mv /usr/local/apache /usr/local/apache.bak
以避免與新安裝的 Apache 發生衝突。
□注意
在安裝過程中,都使用了各個程式所預設的安裝目錄,並沒有另外指定,如果你加上
了這些路徑選項,可能會導致其他程式無法正確安裝。
□檔案
安裝過程中你需要下列檔案:
==========================================================================
Tarball 下載位置
--------------------------------------------------------------------------
apache_1.3.12.tar.gz http://www.apache.org/dist/
openssl-0.9.5a.tar.gz http://www.openssl.org/source/
mm-1.0.12.tar.gz http://www.engelschall.com/sw/mm/
mod_ssl-2.6.3-1.3.12.tar.gz http://www.modssl.org/source/
mod_perl-1.23.tar.gz http://perl.apache.org/dist/
libnet-1.0703.tar.gz http://www.cpan.org/authors/id/GBARR/
MIME-Base64-2.11.tar.gz http://www.cpan.org/authors/id/GAAS/
URI-1.06.tar.gz
Digest-MD5-2.09.tar.gz
HTML-Parser-3.07.tar.gz
libwww-perl-5.48.tar.gz
jakarta-ant.tar.gz http://jakarta.apache.org/builds/tomcat
/release/v3.1/src/
jakarta-tomcat.tar.gz
mysql-3.22.30.tar.gz http://www.mysql.com/download.html
php-4.0RC1.tar.gz http://www.php.net/version4/do_download.php?
download_file=php-4.0RC1.tar.gz
Zend Optimizer http://www.zend.com/zend/optimizer.php
(請依照你的系統取得對應的 Zend Optimizer 版本,以 RedHat 6.1 為例,應該取
得 ZendOptimizer-Beta2-Linux-glibc2.1.tar.gz)
==========================================================================
□環境設定
在安裝之前,前先將下列環境設定起來:
JAVA_HOME=/usr/java (請依照你的系統設定 JAVA_HOME 變數。)
TOMCAT_HOME=/usr/local/tomcat
接著將
$JAVA_HOME/lib
$JAVA_HOME/lib/classes.zip (使用 JDK 1.1.x)
$JAVA_HOME/lib/tools.jar (使用 JDK 1.2.x)
$TOMCAT_HOME/lib
加入 CLASSPATH 中,如果你使用 bash,可以用以下指令:
# export JAVA_HOME=/usr/java
# export TOMCAT_HOME=/usr/local/tomcat
# export CLASSPATH="$JAVA_HOME/lib:$JAVA_HOME/lib/classes.zip: \
$TOMCAT_HOME/lib:$CLASSPATH"
□開始安裝
下面假設你把所有的 tarball 都放在 ${SRC} 目錄下,你可以設定一下 SRC 變數,
例如:
# export SRC=/usr/local/src
然後再把所有 tarball 都放在 /usr/local/src 下面,剩下的步驟就只要
Copy/Paste 就可以完工了。
□OpenSSL
# cd ${SRC}
# tar xzvf openssl-0.9.5a.tar.gz
# cd openssl-0.9.5a
# ./config -fPIC
# make
# make test
# make install
□MM
MM 可提高 mod_ssl 的效能,如果你選擇不使用它,請跳過此步驟。
# cd ${SRC}
# tar xzvf mm-1.0.12.tar.gz
# cd mm-1.0.12
# ./configure --disable-shared
# make
# make install
□mod_ssl
# cd ${SRC}
# tar xzvf apache_1.3.12.tar.gz
# tar xzvf mod_ssl-2.6.3-1.3.12.tar.gz
# cd mod_ssl-2.6.3-1.3.12
# ./configure --with-apache=../apache_1.3.12 --with-ssl=../openssl-0.9.5a
□Apache
# cd ${SRC}/apache_1.3.12
如果你沒有安裝 MM,請將下面這行指令最前面的 EAPI_MM=SYSTEM 拿掉即可。
# EAPI_MM=SYSTEM ./configure --enable-rule=SHARED_CORE \
--enable-module=most --enable-shared=max
# make
接下來要產生伺服器的認證,如果你只是想測試一下,請用
# make certificate TYPE=dummy
如果是要作為正式用途的伺服器,請用
# make certificate TYPE=custom
並回答相關問題以產生認證。
# make install
□Perl 模組
想要安裝 mod_perl,你的系統當然得要有 Perl 才行,不過你還需要下列幾個 Perl
模組:libnet、MIME-Base64、URI、Digest-MD5、HTML-Parser、libwww-perl。如果
你的系統內已經有上述這些 Perl 模組,請略過此步驟。如果不是,或不確定的話,
請依照下列指令安裝:(請依序安裝)
# cd ${SRC}
# tar xzvf libnet-1.0703.tar.gz
# (cd libnet-1.0703; perl Makefile.PL; make; make test; make install)
# tar xzvf MIME-Base64-2.11.tar.gz
# (cd MIME-Base64-2.11; perl Makefile.PL; make; make test; make install)
# tar xzvf URI-1.06.tar.gz
# (cd URI-1.06; perl Makefile.PL; make; make test; make install)
# tar xzvf Digest-MD5-2.09.tar.gz
# (cd Digest-MD5-2.09; perl Makefile.PL; make; make test; make install)
# tar xzvf HTML-Parser-3.07.tar.gz
# (cd HTML-Parser-3.07; perl Makefile.PL; make; make test; make install)
# tar xzvf libwww-perl-5.48.tar.gz
# (cd libwww-perl-5.48; perl Makefile.PL; make; make test; make install)
□mod_perl
# cd ${SRC}
# tar xzvf mod_perl-1.23.tar.gz
# cd mod_perl-1.23
# perl Makefile.PL USE_APXS=1 WITH_APXS=/usr/local/apache/bin/apxs \
EVERYTHING=1
# make
# make install
□Jakarta-Tomcat
# cd ${SRC}
# tar xzvf jakarta-ant.tar.gz
# cd jakarta-ant
# ./bootstrap.sh
# cd ${SRC}
# tar xzvf jakarta-tomcat.tar.gz
# cd jakarta-tomcat
# ./build.sh dist
# cd ../dist
# cp -r tomcat /usr/local
□mod_jserv
# cd ${SRC}/jakarta-tomcat/src/native/apache/jserv
# /usr/local/apache/bin/apxs -c *.c -o mod_jserv.so
# cp mod_jserv.so /usr/local/apache/libexec
□MySQL
# cd ${SRC}
# tar xzvf mysql-3.22.30.tar.gz
# cd mysql-3.22.30
# ./configure
# make
# make install
# scripts/mysql_install_db
# /usr/local/bin/safe_mysqld &
設定 MySQL 管理員密碼,請將 xxx 換為你選定的密碼。
# /usr/local/bin/mysqladmin -u root password 'xxx'
□PHP
# cd ${SRC}
# tar xzvf php-4.0RC1.tar.gz
# cd php-4.0RC1
# ./configure --with-apxs=/usr/local/apache/bin/apxs --disable-debug \
--with-xml --enable-track-vars --with-mysql
# make
# make install
□Zend Optimizer
# cd ${SRC}
# tar xzvf ZendOptimizer-Beta2-Linux-glibc2.1.tar.gz
# cd ZendOptimizer-Beta2-Linux-glibc2.1
# mkdir /usr/local/Zend
# mkdir /usr/local/Zend/lib
# cp ZendOptimizer.so /usr/local/Zend/lib
□設定
這裡僅列出絕對必要的修改,其他部分請依照需求自行修改
1.編輯 /usr/local/apache/conf/httpd.conf,將下列兩行設定最前面的註解符號拿掉
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
成為
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
並在檔案最後加上
Include /usr/local/tomcat/conf/tomcat.conf
這一行設定。
2.將 ${SRC}/php-4.0RC1/php.ini-dist 複製到 /usr/local/lib/php.ini,如下
# cp ${SRC}/php-4.0RC1/php.ini-dist /usr/local/lib/php.ini
3.編輯 /usr/local/lib/php.ini,加上
zend_optimizer.optimization_level=7
zend_extension="/usr/local/Zend/lib/ZendOptimizer.so"
這兩行設定。
註:細心的朋友應該會發現到,httpd.conf 有兩個地方怪怪的,一個是
LoadModule ssl_module libexec/libssl.so
LoadModule perl_module libexec/libperl.so
LoadModule php4_module libexec/libphp4.so
另一個地方是
AddModule mod_ssl.c
AddModule mod_perl.c
AddModule mod_php4.c
把它改成
LoadModule perl_module libexec/libperl.so
LoadModule php4_module libexec/libphp4.so
LoadModule ssl_module libexec/libssl.so
跟
AddModule mod_perl.c
AddModule mod_php4.c
AddModule mod_ssl.c
就行了。
□啟動與測試
1.啟動 Jakarta-Tomcat
# /usr/local/tomcat/bin/startup.sh
2.啟動 Apache
# /usr/local/apache/bin/apachectl startssl
3.檢查 /usr/local/apache/logs/error_log,若有
[Fri Apr 28 00:00:01 2000] [notice] Apache/1.3.12 (Unix) tomcat/1.0
mod_ssl/2.6.3 OpenSSL/0.9.5a PHP/4.0RC1 mod_perl/1.23 configured
表示安裝成功。
4.以瀏覽器觀看 http://localhost/,測試 Apache 正常運作。
5.以瀏覽器觀看 https://localhost/,測試 Apache-SSL 正常運作。
6.以瀏覽器觀看 http://localhost/examples/,跑跑底下的 Servlet 與 JSP,測試
Jakarta-Tomcat 正常運作。
7.在 /usr/local/apache/htdocs 底下編輯一個 phpinfo.php 檔案,內含下列三行
內容:
再以瀏覽器觀看 http://localhost/phpinfo.php,若有
This program makes use of the Zend scripting language engine:
Zend Engine v0.92, Copyright (c) 1998-2000 Zend Technologies Ltd.
with Optimizer v0.96, Copyright (c) 1998-2000 by Zend Technologies Ltd.
表示 Zend Optimizer 正常運作。
□完成
□TODO
1.增加 Perl DBI 安裝。
2.增加 PostgreSQL 安裝。
3.提供各程式安裝路徑選項(--prefix=)。
4.提供自動安裝 Script。
若有任何建議、批評、想法、意見,請 email 給我,u8536085@mis.nccu.edu.tw。
Chen Chinyue 04282000