500内部服务器错误 - register_globals

问题描述:

我将网站转移到具有“服务器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

register_globals自PHP 5.3以来已被弃用,并且出于安全原因被默认关闭。

查看pHP documentation了解更多信息。

+0

感谢您的回复。有办法让它与PHP 5.3一起工作。我已经看到一些导入选项,但不知道是否有任何可以工作,以及如何使用它们? – 2012-01-12 16:13:28

register_globals被弃用并不能解释它给内部服务器错误,特别是如果它已被注释掉。

您正在收到内部服务器错误,因为您正在尝试设置服务器无法理解或允许的值。与一般的服务器错误一样,apache的错误日志应该会提供错误的详细信息。

根据经验,我的第一个猜测是运行PHP脚本的(www)用户没有被赋予通过.htaccess设置php_value:s的权限。要设置.htaccess值,您需要在apache配置AllowOverride选项或AllowOverride所有权限(“所有”包括“选项”)。我的第一件事将是检查。 php_value指令需要AllowOverride Options权限。

php_value和php_flag命令已过时,在大多数服务器上使用.htaccess时会导致500错误。他们的设置应该在php.ini文件中完成,或者在您的系统上进行相应的设置。

我自己有这个错误。

的phpinfo() - 在我的网站被示出作为register_globals的=关

通过2小时ř& d web搜索

找到的解决方案 - 编辑的php.ini中 的register_globals =关闭

并上载再次和网站在几秒钟内运行。

希望这个解决方案可以帮助某人运行他/她的网站。