簡體   English   中英

從CGI Perl腳本查詢Oracle數據庫時出錯

[英]Error querying Oracle database from CGI Perl script

我有一個CGI Perl腳本,它將從Oracle數據庫運行select語句以獲取記錄。 該腳本在具有cgi-bin鏈接的Apache上運行。 運行良好。

由於故障轉移,我們將硬盤移動到具有類似設置的備份服務器。 但是,當我們運行腳本時,顯示以下錯誤:

install_driver(Oracle) failed: Can't load '/u02/system/perl/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.11.1: cannot open shared object file: No such file or directory at /u02/system/perl/usr/lib64/perl5/DynaLoader.pm line 200.

我檢查了我的ORACLE_HOMELD_LIBRARY_PATH變量,它們都指向正確的oracle客戶端。 另外,請嘗試locate libclntsh.so.11.1並在獲得許可的情況下設法在正確的目錄中查找該文件。

還添加了一個oracle.conf文件,該文件具有/etc/ld.so.conf.d oracle lib目錄的路徑

所有這些,仍然顯示相同的錯誤。 想法快用完了...

任何指針或建議,表示贊賞。 謝謝。

您已經介紹了很好的基礎知識:確保庫存在,確保程序具有讀取/執行權限,以及為ORACLE_HOME和LD_LIBRARY_PATH設置環境變量。

您許多人需要遞歸檢查依賴性。

ldd /u02/system/perl/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so

應該向您顯示.so的任何依賴項,使其無法加載。 DBD :: Oracle也對Oracle客戶端版本敏感。 如果Oracle客戶端的版本或位置已更改(或其他所有方法均失敗),則可能需要重新編譯DBD :: Oracle。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM