PHP.ini配置文件详解

查看PHP.ini文件的路径

/usr/local/php/bin/php -i |head

如果此处为None说明没有加载到具体的php.ini,想想自己以前安装PHP的时候是不是忘记拷贝过来?

一般文件的位置都是在

Loaded Configuration File => /usr/local/php/etc/php.ini

若是没有或则自己的里面没有大量的注释内容(以;开头的),kk劝你还是再拷贝一份吧。

cp /usr/local/src/php-5.6.31/php.ini-production /usr/local/php/etc/php.ini

1. 禁止使用部分函数 

在php中有大量的函数,但是有一些函数对我们来说是不安全的,所以需要禁掉

vim /usr/local/php/etc/php.ini


建议大家搜索一下关键字,对应的写到相应的部分


disable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chg,rp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsock,open,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close

2. 配置error_log

PHP排查错误有两种做法

(1)错误信息直接输出显示到网页中

vim /usr/local/php/etc/php.ini

找到(466行)display_error=更改为

display_error=on

重启服务器即可

/usr/local/apache2/bin/apachectl graceful

但是这种情况只适合临时调试,不适合长期配置,因为可能暴露我们服务器的一些信息,被人攻击,所以就要用到第二种方法

(2)错误信息输出到日志文件

vim /usr/local/php/etc/php.ini

更改一下配置,以前没有的配置要自己写

首先关闭日志输出到浏览器

display_errors = Off

然后打开错误日志开关

log_errors = On

指定错误日志的输出路径

error_log=/usr/local/php/logs/error.log

指定错误日志的级别,意思是报告所有的错误信息,除了E_STRICT这一种

error_reporting = E_ALL | E_STRICT


解释一下不同的错误级别

1   E_ERROR            报告导致脚本终止运行的致命错误

2   E_WARNING       报告运行时的警告类错误(脚本不会终止运行)

4   E_PARSE             报告编译时的语法解析错误

8   E_NOTICE           报告通知类错误,脚本可能会产生错误

30767   E_ALL                  报告所有的可能出现的错误(不同的PHP版本,常量E_ALL的值也可能不同)


重启服务器后生效

/usr/local/apache2/bin/apachectl graceful

你可能感兴趣的:(PHP.ini配置文件详解)