我将网站转移到了具有“Server API = CGI / FastCGI”的新服务器(PHP版本5.3.8),网站工作正常,除了一个页面(public_html / user / index.php)。我收到了错误:
500内部服务器错误
然后,我将Server API更改为“Apache 2.0 Handler”,现在我得到了空白页面。 phpinfo()向我显示register_globals Off
public_html / user /中的.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 :(得分:1)
不推荐使用register_globals并不能解释它是否给出了内部服务器错误,特别是如果它已被注释掉了。
您收到内部服务器错误,因为您尝试设置服务器无法理解或允许的值。与服务器错误一样,apache的错误日志应该为您提供错误的详细信息。
根据经验,我的第一个猜测是运行PHP脚本的(www)用户没有权限设置php_value:s到.htaccess。要设置.htaccess值,您需要在apache配置中具有AllowOverride Options或AllowOverride All权限(“All”包括“Options”)。我的第一件事就是检查一下。 php_value指令需要AllowOverride Options权限。
答案 1 :(得分:0)
register_globals
自PHP 5.3起已被弃用,出于安全原因,默认情况下已关闭。
有关详细信息,请参阅pHP documentation。
答案 2 :(得分:0)
php_value和php_flag命令已过时,在.htaccess中使用时,会在大多数服务器上导致500错误。他们的设置应该在php.ini文件或系统中的等效文件中完成。
答案 3 :(得分:0)
我自己有这个错误。
phpinfo() - 在我的网站上显示为register_globals = off
通过2小时r& d网络搜索找到解决方案 - 编辑了php.ini register_globals的=关
再次上传,网站在几秒钟内就开始运行。
希望此解决方案可以帮助某人运行他/她的网站。