新做一个项目,使用帝国备份王做数据备份,在测试服务器(apache2+php5.3)上一切正常,更新到正式服务器(apache2+php5.5)上时,访问却是一片空白,什么都没有提示。
用firebug看请求:
返回的状态是:500 Internal Server Error
500错误一般情况是服务器内部错误,所以,登录查看apache错误日志。
错误显示的1246行其实是程序的结束标签了,怎么都不可能有错误,并且前后代码都很规范,不应该出现这种错误才对,网上看了很多这个错误的解决办法,都没解决。
最后怀疑是php配置有问题。
把正式服务器上的短标签开启,问题居然解决了。
打开php.ini,将
short_open_tag = Off
修改为
short_open_tag = On
然后重启下服务,居然可以访问了。
但是有很多虚拟主机用户没有修改php的权限怎么办呢,提供第二个方法:
找到帝国备份王安装文件upload文件夹下的class文件夹下面的function.php,大概是在921行:
把mysql_escape_string改为:mysql_real_escape_string
OK!问题解决!!!
其实我知道,这个应该和开没开短标签没太大的关系,因为代码中也没见用短标签的写法,但既然开启短标签解决了问题,那做个记录,或许能帮助到其他人。