Apache下面PHP的eavl()函数报错Http status: 500 Internal Server Error

PHP5.3.3版本

1.问题描述

屏蔽错误。这样子写的:

@eval("\$a =".$a.";");

 

在本地和另外一台Nginx的服务器上面没有抛出任何异常。但是把项目部署在今天这台apache服务器上面,报错如图。

Apache下面PHP的eavl()函数报错Http status: 500 Internal Server Error

 

为什么没有屏蔽到错误呢?

考虑到是新环境,特意看了下apache的配置文件中的mod_rewrite.so模块是否开启,还有项目路径中的AllowOverride 是否设置为All,但是都看过,没有发现异常。

也不能捕获到异常。。。

最终在PHP官网上面找到了一个配置  display_errors

Apache下面PHP的eavl()函数报错Http status: 500 Internal Server Error

 

2.解决方式

然后用这个方法来修改。

ini_set('display_errors', 'on');
@eval("\$a =".$a.";");
ini_set('display_errors', 'off');

然后运行程序,发现已经不报错了。