chat.hn.cninfo.net/soft 的 hot 下載區。export ORACLE_HOME=/opt/oracle8i
export ORACLE_SID=ORCL
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
寫入 /etc/profile 或使用者 .bash_profile 永久生效。
cd php-4.x.x
./configure --with-apxs=/usr/local/apache/bin/apxs \
--with-oci8=$ORACLE_HOME \
--enable-sigchild \
--with-config-file-path=/usr/local/apache/conf \
[其他所需選項]
make
make install
--with-oci8 指定 Oracle 安裝路徑,啟用 OCI8 擴充。--enable-sigchild 避免 Apache 子進程殭屍進程問題。<?php
$conn = OCILogon('scott', 'tiger', 'ORCL');
if ($conn) {
echo "Oracle 連線成功!";
OCILogoff($conn);
} else {
$e = OCIError();
echo "連線失敗: " . $e['message'];
}
?>
| 現象 | 可能原因 | 解決方向 |
|---|---|---|
| configure 錯誤找不到 oci.h | ORACLE_HOME 路徑錯誤或未安裝 SDK | 確認 $ORACLE_HOME/rdbms/public 存在 |
| 編譯失敗 undefined reference | 庫路徑未加入 LD_LIBRARY_PATH | 檢查 config.log,補齊 -L$ORACLE_HOME/lib |
| OCILogon 回傳 ORA-12154 | TNS 服務名解析失敗 | 檢查 $ORACLE_HOME/network/admin/tnsnames.ora |
| Apache 啟動錯誤 libclntsh.so not found | 動態庫未載入 | 執行 ldconfig 或設定 LD_LIBRARY_PATH 於 apachectl |
oci8.ping_interval 定期檢測連線存活。OCIPLogon 持久連線減少握手開銷。tnsnames.ora、listener.ora 設定檔。完成上述步驟,PHP 4 即能在 Linux 上穩定連接 Oracle 8i,支援企業級應用開發。