在 RedHat Linux 6.2 上從原始碼編譯整合 Apache 1.3.12、mod_ssl 2.6.6、OpenSSL 0.9.5a、PHP 4.0.2、Tomcat 3.1、JDK 1.2.2 及 Oracle 8i Client,構建完整的 J2EE + PHP 混合應用平台。
| 掛載點 | 大小 | 說明 |
|---|---|---|
| /boot | 16 MB | 第一磁區起始 (/dev/hda1) |
| swap | 2×RAM | |
| / | 1 GB | |
| /tmp | 500 MB | 暫存檔 |
| /usr | 4 GB | 應用程式 |
安裝模式選「專家模式」,手動配置網卡;選擇安裝所有套件;LILO 安裝至 MBR (單一 OS);製作開機磁碟。
編輯 /etc/smb.conf:
workgroup = YOUR_DOMAIN
password level = 8
username level = 8
encrypt passwords = yes
smb passwd file = /etc/smbpasswd
wins support = yes
interfaces = 192.168.1.100/24
[deploy]
comment = NDB web document root
path = /usr/local/jakarta-tomcat/webapps/deploy
writable = yes
建立 Samba 密碼:smbpasswd -a username,重啟服務:/etc/rc.d/init.d/smb restart
使用 setup 或 ntsysv 關閉非必要服務 (如預設 httpd),啟用 smb,提升安全與效能。
# cp oracle8161_tar.gz /usr/local
# tar xvzf oracle8161_tar.gz
# groupadd dba; groupadd oinstall
# useradd -G oinstall -g dba oracle
# passwd oracle
# 切換 oracle 用戶啟動 X Window 安裝
$ startx
$ /usr/local/oracle8ir2/runInstaller
配置 /etc/profile 加入 Oracle 環境變數 (ORACLE_HOME, ORACLE_SID, NLS_LANG, LD_LIBRARY_PATH 等)。
原始碼放置於 /usr/local 解壓:
# 1. OpenSSL
cd openssl-0.9.5a && ./config && make && cd ..
# 2. mod_ssl 配置 Apache 來源
cd mod_ssl-2.6.6-1.3.12
./configure --with-apache=../apache_1.3.12
cd ..
# 3. Apache 基礎配置
cd apache_1.3.12
./configure --prefix=/usr/local/apache
cd ..
# 4. PHP 編譯 (支援 Oracle OCI8)
cd php-4.0.2
CFLAGS='-O2 -I /usr/local/openssl-0.9.5a/include' \
./configure \
--with-apache=../apache_1.3.12 \
--enable-memory-limit=yes \
--enable-debug=no \
--with-oracle=/usr/local/oracle/OraHome1 \
--with-oci8=/usr/local/oracle/OraHome1 \
--enable-sigchild \
--enable-track-vars
gmake && gmake install
cd ..
# 5. Apache 整合 SSL + PHP
cd apache_1.3.12
SSL_BASE=/usr/local/openssl-0.9.5a \
./configure \
--prefix=/usr/local/apache \
--with-layout=GNU \
--enable-module=ssl \
--activate-module=src/modules/php4/libphp4.a \
--enable-shared=max --enable-module=most
make && make certificate && make install
取消註解:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
# JDK
tar xvzf jdk1_2_2-linux-i386.tar.gz -C /usr/local
# 配置 /etc/profile: JAVA_HOME, CLASSPATH, PATH
# Tomcat 相關
tar xvzf jakarta-tomcat.tar.gz -C /usr/local
tar xvzf jakarta-ant.tar.gz -C /usr/local
tar xvzf jakarta-tools.tar.gz -C /usr/local
# 配置 TOMCAT_HOME, CLASSPATH (含 classes12.zip, mail.jar, activation.jar, upload.jar)
# 修改 $TOMCAT_HOME/bin/tomcat.sh 加入 CLASSPATH
# 修改 $TOMCAT_HOME/conf/tomcat.conf 設定 ApJservLogFile
# 複製模組
cp mod_jserv.so /usr/local/apache/libexec/
# httpd.conf 末尾加入
include /usr/local/jakarta-tomcat/conf/tomcat-apache.conf
$TOMCAT_HOME/bin/startup.sh (先啟 Tomcat)/usr/local/apache/sbin/apachectl startssl (再啟 Apache)測試:https://localhost/examples
cd $TOMCAT_HOME/webapps
rm -fr *
mkdir deploy
# 將應用程式放入 deploy/
# 修改 server.xml 設定 Context
DocumentRoot "/usr/local/jakarta-tomcat/webapps/deploy"
# 對應 權限設定
S94Tomcat:
#!/bin/sh
JAVA_HOME=/usr/local/jdk1.2.2
TOMCAT_HOME=/usr/local/jakarta-tomcat
export JAVA_HOME TOMCAT_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
/usr/local/jakarta-tomcat/bin/tomcat.sh start
S95apache (含 Oracle 環境變數):
#!/bin/sh
LD_LIBRARY_PATH=/usr/local/oracle/OraHome1/lib
NLS_LANG=JAPANESE_JAPAN.JA16SJIS
ORA_NLS33=/usr/local/oracle/OraHome1/ocommon/nls/admin/data
export LD_LIBRARY_PATH NLS_LANG ORA_NLS33
/usr/local/apache/sbin/apachectl startssl
複製至 /etc/rc.d/rc3.d/,chmod 755。
使用 netasst 配置連接遠端 NT 資料庫的 TNS 服務名。
結語:此架構雖屬經典版本,但完整展示了從 OS 安裝、服務精簡、資料庫客戶端、Web Server 整合、Servlet 容器部署到自動化啟動的全棧手動建置流程。現代環境建議改用 YUM/RPM 管理套件、Apache 2.4+、Tomcat 9+、PHP 8+ 及 Oracle Instant Client,並採用 Systemd 管理服務。