
問題:
這種情況已經持續了一段時間了。我只正確安裝了一次,之後,它要么:
- PHP頁面顯示PHP程式碼(不是當前錯誤,但我經歷過這個)
- PHP 頁面傳回“伺服器內部錯誤”
我真正想要的只是讓 PHP 透過 oci8 連接到 Oracle 11g XE。我不知道會這麼困難。
此外,請查看位於 中的錯誤日誌(我假設這是 PHP 的錯誤日誌)/var/log/httpd/error_log
,會發現以下錯誤:
PHP 致命錯誤:未知:無法開啟所需的“/var/www/html/info.php”(包括路徑=“.:/usr/share/pear:/usr/share/php”)。
我以前從未遇到過這種情況。
系統:
- 費多拉 19 x86_64
- 甲骨文 11g XE
- 阿帕契2.4.6
- PHP 5.5.4
附加資訊:
info.php 僅包含以下內容:
<?php
phpinfo();
?>
php -i
有效,儘管我不確定在那裡尋找什麼。
我嘗試過的:
很多。但由於我已經重新格式化了電腦並重新開始,所以這裡是我所做的事情的細分:
- 安裝Oracle 11g XE
- 將我的資料庫正確備份到所述 Oracle 中
- 修改.bashrc,加入以下內容
TMP=/tmp;導出 TMP
TMPDIR=$TMP;導出TMPDIRORACLE_HOSTNAME=localhost.localdomain; export ORACLE_HOSTNAME ORACLE_UNQNAME=DB11G; export ORACLE_UNQNAME ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0/xe; export ORACLE_HOME ORACLE_SID=XE; export ORACLE_SID NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`; export NLS_LANG ORACLE_TERM=xterm; export ORACLE_TERM PATH=/usr/sbin:$PATH; export PATH PATH=$ORACLE_HOME/bin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
導出類路徑
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
- yum groupinstall“開發庫”
- 百勝安裝 httpd
- 百勝安裝 PHP
我啟動了 apache,將其配置為在啟動時啟動,能夠訪問 Fedora 測試頁面,並將測試 PHP 頁面放入/var/www/html/
目錄中。
本機工作正常。
localhost/info.php 傳回「伺服器內部錯誤」。
我不知道我做錯了什麼。我什至還沒有啟動並運行 PHP,所以我非常擔心我是否可以將其連接到 Oracle。有什麼想法/建議嗎?謝謝。
答案1
檢查權限:
/var/www/html/info.php
我記得當執行 apache 進程的使用者沒有此檔案的正確權限時,出現過類似的錯誤。
這不是一件好事,但您可以記下 info.php 的當前權限,chmod 777 /var/www/html/info.php 並查看它是否有效。如果是這樣,那就是問題所在,並嘗試解決問題。
請同時按照 @GeoSword 說明檢查您是否顯示了 php 程式碼而不是 html,因為這表示 apache 中的 php 配置不正確。
答案2
聽起來這裡發生了很多事情。
顯示 php 程式碼而不是結果的頁面可能是因為 apache 配置中未正確定義 php 處理程序。 Redhat 安裝通常會處理這類事情。然而,在你的 apache 配置中的某個地方需要這樣的東西來處理 php 文件
LoadModule php5_module modules/libphp5.so
AddHandler application/x-httpd-php .php .php5 .phtml
AddHandler application/x-httpd-php-source .phps
您遇到的致命錯誤可能是由於您在 /var/log/httpd/error_log 中看到的錯誤所致。
看起來 /var/www/html/info.php 不存在,而你的 php 程式確實需要它。我確信我不需要告訴你該怎麼做! :)