歡迎您光臨本站 註冊首頁

PHP4 & ORACLE8i & NES3.6 for Solaris2.6編譯和遠程連接指南

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  在oracle server 上安裝oracle8i

安裝oracle8i時要選擇us7ascii字符集才能支持中文,我嘗試過gb2312,weiso88
89pi等字符集,結果php從oracle取得的漢字都是問號,也嘗試過gbk編碼,結果
問題更古怪,ocilogon報告ORA-03106錯誤,令人摸不著頭腦。

然後在web server 上安裝oracle 8i的client端,可以用netec來配置客戶端,也
可以直接從oracle server端把tnsnames.ora用ftp傳過來,運行tnsping 來測試
是否連同oracle server,最好是用sqlplus來登陸一下,格式是:scott@oracle_
service_name/tiger。

從php老家http://www.php.net下載最新的php4.0.1pl2版。
在web server上安裝好gcc和gmake編譯環境。

編譯php4的參數如下:

./configure --enable-experimental-zts --with-mysql=no \
--with-nsapi=/usr/netscape/suitespot/ \
--with-oracle=/data/oracle/app/8.1.5 \
--with-oci8=/data/oracle/app/8.1.5 \
--enable-libgcc --enable-sigchild

其中的/usr/netscape/suitespot/是web server上的nes的安裝路徑,/data/ora
cle/app/8.1.5是web server上的$ORACLE_HOME環境變數。--enable-libgcc是為
了避免採用libgcc++帶來的reference symbol not found的錯誤,--eanble-sig
child是為了避免oracle產生的殭屍進程

如果在安裝oracle8 client時候,沒有按照install guide上所說的在安裝完成後
設置oracle的一些目錄的屬性,可以把nobody用戶加到dba組裡,保證nobody用戶
對tnsnames.ora文件有存取許可權,否則PHP程序將會出現ORA-12154錯誤。也曾經
把web server設定為以oracle用戶運行,結果是無法啟動。

確保ORACLE SERVER 正在運行,listener已經啟動,然後就可以用PHP程序測試一
下遠程連接ORACLE SERVER了。函數ocilogon的第三個參數是oracle_service_na
me,不能省略。用ora函數的格式是ora_logon("scott@oracle_service_name","t
iger"),至於這是為什麼,我也不知道。

以上一點東西,花了我3周的時間,寫出來,供參考。


[火星人 ] PHP4 & ORACLE8i & NES3.6 for Solaris2.6編譯和遠程連接指南已經有424次圍觀

http://coctec.com/docs/linux/show-post-74240.html