申请了一个国外的免费空间,后来用THINKPHP做了一个小小的网站,结果一直给我报错,TP上讨论区呆了一天也没找到问题的解决办法。
以下是问题:
我用的是国外的空间,把'SHOW_PAGE_TRACE'开启后,前端页面显示正常,但是会在下方显示报错信息,如下
- :(
- 页面错误!请稍后再试~
由于不知道原因在哪,开启APP_DEBUG之后显示出错路径了,但是这个文件不是我能控制的啊!
- Undefined offset: 6
- 错误位置
- FILE: /usr/lib/php/head.php LINE: 90
这情况没见过,后来我关闭'SHOW_PAGE_TRACE' 之后,只显示报错信息了,连页面都不显示了,什么情况?
我看调试信息里面加载的第一个文件是head.php,这个文件是干嘛的?为什么会第一个加载它?
经过THINKPHP的提醒,原来是空间商绑定了 auto_prepend_file 到 /usr/lib/php/head.php 所致。
解决办法如下:
在根目录增加一个空的null.php文件(文件名随意),接着在.htaccess中添加这段:
php_value auto_prepend_file "null.php"
OK。解决了,因为覆盖了空间商默认增加的文件。: )