如何在 Linux Fedora 19 伺服器中正確設定 PHP?

如何在 Linux Fedora 19 伺服器中正確設定 PHP?

問題:

這種情況已經持續了一段時間了。我只正確安裝了一次,之後,它要么:

  • 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;導出TMPDIR

ORACLE_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 程式確實需要它。我確信我不需要告訴你該怎麼做! :)

相關內容