2015-10-16 330 views
0

不要浪費您的時間,我會描述我所擁有的& &現在我擁有的東西。我的應用程序是用PHP編寫的。他們住在使用nginx + apache web服務器的redhat6服務器上。我們將數據存儲在MySQL DB中,但我們有大量來自Oracle和IBM Informix DB的導入,& mssql。對於Oracle & Informix我已經安裝了客戶端& &已編譯的庫pdo_oci.so & pdo_informix.so。幾個月後,他們按預期工作。快照啓動後:Informix客戶端-23101/Oracle即時客戶端-28759

但是一個星期前,管理員對虛擬服務器做了一個快照,並重新加載它。現在只有MySQL和mssql連接器可以工作,並且IBM客戶機會出錯。

甲骨文:-28759

Failed : SQLSTATE[HY000]: pdo_oci_handle_factory: ORA-28759: failure to open file (/usr/local/src/php-5.3.3/ext/pdo_oci/oci_driver.c:579)/opt/project/www/test.php149 

IBM的Informix:-23101

Failed : SQLSTATE=HY000, SQLDriverConnect: -23101 [Informix][Informix ODBC Driver][Informix]Unspecified System Error = -23101./opt/project/www/test.php146 

那麼,作爲官方單證說,Informix的錯誤與DB_LOACALE &失去的ENV變量連接CLIENT_LOCALE ...等。

enter image description here

這是奇怪的,因爲這一切的時候,我就是用這個字符串我的連接:

 $dbh = new PDO ("informix:host=example.ru; database=some_db; server=db_net; CursorBehavior=0; DB_LOCALE=en_US.57372; CLIENT_LOCALE=en_US.57372;", "db_login", "pass"); 

我試圖建立的Apache(httpd的)這個ENV變量,但這個錯誤仍然適應。現在我在服務器重啓後設置了這個變量,但沒有成功。可能是我'做錯了什麼,或者在錯誤的地方或用戶名稱...

關於Oracle,文件說,它與文件加載連接:

enter image description here

和Web醫生說它主要是ssl錯誤,並且與客戶端的問題相關,即無法找到SSL Wallet文件。我使用錢包讓TCPS與Oracle DB保持安全連接,我記得讓Instant客戶端查看正確的位置真的很麻煩。更重要的是,我啓用了客戶端跟蹤功能,但是它僅在從終端直接使用sqlplus時才寫入日誌。當我運行我的PHP腳本時,我只有錯誤並沒有記錄。

問題:

  1. 如何正確啓用Informix的變量,或如何解決不同的方式這個 問題。

  2. 如何啓用oracle的「網絡跟蹤」到 看看他在找什麼?

  3. 如何存儲未來的變量 重新啓動/重新加載/快照等。 ?
+0

還沒有評論... =( – Altenrion

回答

0

這可能與file/dir權限有關,而不是env變量。 oracle錯誤似乎表明它不能再打開/讀取它需要的文件。

informix -23101錯誤也可能是由於驅動程序無法讀取語言環境支持所需的GLS文件引起的。

apache用戶是否可以訪問Informix Client SDK目錄和文件?

+0

很好地解決這個麻煩我搜索如何獲得最有價值的信息:。什麼系統正在做我發現了大約strace的命令信息 – Altenrion

+0

我創建使用它的日誌並發現了很多,現在我的問題已經解決了,也許不是最好的方式,但是仍然存在問題,不同的用戶使用php的confs連接,root用戶正在搜索/root/.sqlnet中寫入的錢包文件。 ora,但是在apache用戶下的php正在默認路徑etc/apache/...下查找它是否與讀取sertificates文件有關聯現在Oracle連接正在工作Informix仍然不能正常工作 – Altenrion

+0

Informix沒有與用戶連接如果我在/usr/local/src/php-5.3.3/sapi/cli/php下調用test,比測試失敗 'sudo -u root strace -o /tmp/web_informix.log /usr/local/src/php-5.3.3/sapi/cli/php/opt/project/www/test_console.php 但是,如果/ usr/local/bin/php或/ usr/bin/php,連接成功。 'strace -o /tmp/web_debug.log/usr/bin/php/opt/project/www/test_console.php 在日誌中,直到日誌結束時纔會有錯誤。 我可以提供兩個成功和失敗連接的文件,如果有人可以幫助他們。 – Altenrion

0

人。 啓用所有可能的追蹤並使用「strace」命令檢查程序失敗的位置!

感謝LuísMarques!我在我的日誌中發現了gls,並試圖將它鏈接到真正的IBM/informix/gls ...比另一個msg問題更復雜...... /我將從/ usr/informix軟鏈接到我的真實/ opt/IBM/informix和所有連接都成功喚醒!

謝謝你的男人。你真的幫我完成了這個麻煩。我發佈這個作爲答覆,但將接受你的感謝你! =)

+0

很高興我可以得到一些幫助。這可能是由env變量'$ INFORMIXDIR'被設置爲不同的位置引起的。可能是Web服務器/ php的配置文件之一。 –

+0

$ INFORMIXDIR變量已設置,並且正在傾向於/ opt/IBM/informix目錄,但我認爲apache無法看到它.. – Altenrion