簡體   English   中英

oci_connect() 在終端/centos 服務器上工作,但不在瀏覽器上

[英]oci_connect() is working on terminal/centos server but not on browser

從瀏覽器嘗試時出現錯誤。

警告:oci_connect(): ORA-28759: 在第 16 行的 /var/www/myapp/abc.php 中打開文件失敗

致命錯誤:ORA-28759:無法在第 19 行的 /var/www/myapp/abc.php 中打開文件

But when running same file from Server terminal as a root user > PHP abc.php that time oracle database output is coming.

我不明白為什么從終端運行而不是在瀏覽器上運行。

我正在使用 PHP7、Apache 並安裝了 Oracle 19c 家庭數據庫。

我正在使用oci_connect與 PHP 代碼中的 oracle 數據庫進行通信。


我認為我的 httpd (apahce) 存在一些權限問題。

請給建議。

  • 檢查 web 服務器進程是否有權訪問所有 Oracle 客戶端庫和數據文件。 由於您使用的是 Oracle 主目錄,因此請確保所有目錄都設置了“其他”訪問權限。 通常用戶主目錄默認沒有這個。

  • 由於應用程序正在運行,因此正在加載一些庫,所以權限是否可以? 確保 web 服務器進程環境變量與命令 shell 使用的相同,以確保使用相同的 Oracle 客戶端庫集。 (您是否還在某處安裝了 Instant Client,或另一個 Oracle 主頁??)。

  • “ORA-28759:無法打開文件”的最近常見原因是使用 Oracle 雲錢包並且錢包的 sqlnet.ora 路徑( DIRECTORY=...位)無效。 檢查路徑是否正常,或者 Oracle 網絡配置文件位於默認位置(並且可讀)。 請注意,使用 Instant Client 19.14,您可以使用單向 TLS,因此並不總是需要錢包,具體取決於您的網絡配置。

  • 我懷疑 php.ini 是否存在問題,因為您顯然可以調用 OCI8 函數。 php.ini 文件不控制引發錯誤的 Oracle 客戶端庫的行為。

更新您的問題,詳細了解您如何設置環境以及正在使用哪些 Oracle 配置文件進行連接

暫無
暫無

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

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