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