2012-01-12 233 views
0

我將網站轉移到具有「服務器API = CGI/FastCGI」的新服務器(PHP版本5.3.8),除了一頁(public_html/user/index.php),網站工作正常。我得到了錯誤:500內部服務器錯誤 - register_globals

500內部服務器錯誤

然後,我改變了服務器API爲「Apache 2.0的處理程序」,現在我得到空白頁。 phpinfo()函數是向我展示了register_globals關閉

中的public_html /用戶的.htaccess /低於內容

#deny from all 

#AddType application/x-httpd-php .html 

#AddHandler x-httpd-php .html 

#AddHandler x-httpd-php .htm 

#AddType image/x-icon .ico 

php_value display_errors On 

#php_value register_globals On 

php_value error_reporting E_ALL 

#E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR 

舊服務器運行PHP版本5.2.8

任何建議?

+0

這不一定是問題的根源。對於狀態500錯誤,請查看'error.log'。 – mario 2012-01-12 15:18:50

回答

0

register_globals自PHP 5.3以來已被棄用,並且出於安全原因被默認關閉。

查看pHP documentation瞭解更多信息。

+0

感謝您的回覆。有辦法讓它與PHP 5.3一起工作。我已經看到一些導入選項,但不知道是否有任何可以工作,以及如何使用它們? – 2012-01-12 16:13:28

1

register_globals被棄用並不能解釋它給內部服務器錯誤,特別是如果它已被註釋掉。

您正在收到內部服務器錯誤,因爲您正在嘗試設置服務器無法理解或允許的值。與一般的服務器錯誤一樣,apache的錯誤日誌應該會提供錯誤的詳細信息。

根據經驗,我的第一個猜測是運行PHP腳本的(www)用戶沒有被賦予通過.htaccess設置php_value:s的權限。要設置.htaccess值,您需要在apache配置AllowOverride選項或AllowOverride所有權限(「所有」包括「選項」)。我的第一件事將是檢查。 php_value指令需要AllowOverride Options權限。

0

php_value和php_flag命令已過時,在大多數服務器上使用.htaccess時會導致500錯誤。他們的設置應該在php.ini文件中完成,或者在您的系統上進行相應的設置。

0

我自己有這個錯誤。

的phpinfo() - 在我的網站被示出作爲register_globals的=關

通過2小時ř& d web搜索

找到的解決方案 - 編輯的php.ini中 的register_globals =關閉

並上載再次和網站在幾秒鐘內運行。

希望這個解決方案可以幫助某人運行他/她的網站。