我在共享主机帐户上遇到500个内部服务器错误,但只有当我尝试访问主根目录public_html目录中的PHP文件时才会这样。子目录中的任何PHP文件都非常好。
所有文件似乎都设置了权限(全部设置为755)。重写引擎在.htaccess中启用了一个重写规则,它没有任何问题,但是为了确保我已经删除了那里的所有规则并且问题仍然存在。
每次尝试访问文件时,错误日志都会显示:
[07-Sep-2014 16:15:36 Europe/London] PHP Warning: PHP Startup: Unable to load dynamic
library '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_mysql.so' -
/usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_mysql.so:
cannot open shared object file: No such file or directory in Unknown on line 0
每个需要加载的.so
文件都会重复警告。所有HTML文件和图像文件都可以直接在root中正常工作,它只是导致问题的PHP文件。
由于它是共享主机,我无法重新启动Apache,但除此之外,我还可以完全修改php.ini
。
我该如何解决这个问题?
其他信息:
之前我没有注意到这一点,但我也收到了这个错误:
[07-Sep-2014 16:15:36 Europe/London] PHP Fatal error: Directive 'allow_call_time_pass_reference' is no longer available in PHP in Unknown on line 0
答案 0 :(得分:2)
在旧版本的PHP中,您可以通过引用带有&
符号的变量通过引用将变量传递给函数,即使函数未指定其参数作为引用传递。可以使用指令allow_call_time_pass_reference
来控制此功能。使用它自PHP 5.0以来已被弃用,并在5.4中被删除。
从php.ini
删除它,错误应该消失。
如果需要通过引用传递变量,请首先指定要通过引用传递的函数参数,或者将值作为一个不干净但工作正常的数据嵌套在数组中。