[英]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.