Apache下面PHP的eavl()函数报错Http status: 500 Internal Server Error
PHP5.3.3版本
1.问题描述
屏蔽错误。这样子写的:
@eval("\$a =".$a.";");
在本地和另外一台Nginx的服务器上面没有抛出任何异常。但是把项目部署在今天这台apache服务器上面,报错如图。
为什么没有屏蔽到错误呢?
考虑到是新环境,特意看了下apache的配置文件中的mod_rewrite.so模块是否开启,还有项目路径中的AllowOverride 是否设置为All,但是都看过,没有发现异常。
也不能捕获到异常。。。
最终在PHP官网上面找到了一个配置 display_errors
2.解决方式
然后用这个方法来修改。
ini_set('display_errors', 'on');
@eval("\$a =".$a.";");
ini_set('display_errors', 'off');
然后运行程序,发现已经不报错了。