php相关配置

  1. 云栖社区>
  2. 博客>
  3. 正文

php相关配置

技术小阿哥 2017-11-28 16:21:00 浏览357 评论0

摘要: 查看php配置文件位置 /usr/local/php/bin/php -i|grep -i "loaded configuration file"  或者phpinfo(); 但是有些情况下使用-i是不准的。

查看php配置文件位置
/usr/local/php/bin/php -i|grep -i "loaded configuration file" 
或者phpinfo();
但是有些情况下使用-i是不准的。
如果想找的更准。比如找11.com,那么可以在11.com的根目录下创建phpinfo()文件。浏览器访问它。查看配置文件

cp -r /usr/local/src/php-5.6.30/php.ini-production /usr/local/php/etc/php.ini
vi /usr/local/php/etc/php.ini //搜索disable_functions

date.timezone //定义时区
date.timezone =Asia/shanghai

disable_functions //安全函数(禁止掉这些比较危险的函数)
eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close 
在生产环境中会把phpinfo禁掉。因为有时候不小心写了一个phpinfo文件,上传上去被黑客发现。能够看到系统的目录。不安全
eval:一句话木马使用了该函数如果把这个函数禁了,即使上传了木马也没办法解析

日志相关:
error_log, log_errors, display_errors, error_reporting

display_errors = On //会把错误信息直接显示在浏览器上

(生产环境该参数改成Off,为了避免暴露信息)但是有一个问题,就是页面什么都不显示(白页)。那么还需要配置错误日志。
log_errors = On //表示错误日志打开状态
error_log = /tmp/php_errors.log //定义错误日志所在位置
还需要定义error_log的级别。如果级别很高的话,很严谨的话,只会记录一些比较严峻的错误,不太严峻的就不记录,比如警告等、所以放松些
error_reporting //定义日志的级别
生产环境使用
E_ALL & ~E_NOTICE (Show all errors, except for notices)

模拟:把phpinfo函数禁掉。
1.phpinfo放入disable_functions里
2.display_errors = Off
3.log_errors = On
4.error_log = /tmp/php_errors.log
5./usr/local/apache2.4/bin/apachectl -t && graceful
6.ll /tmp/
srwxrwxrwx. 1 mysql mysql 0 12月 11 18:39 mysql.sock
-rw-r--r--. 1 daemon daemon 290 12月 11 21:23 php_errors.log
7.cat /tmp/php_errors.log 
[11-Dec-2017 21:23:49 Asia/shanghai] PHP Warning: phpinfo() has been disabled for security reasons in /data/wwwroot/discuz2/lsx/1.php on line 2

php_errors.log的属主实际是httpd的属主daemon。因为这个日志是以daemon这个进程的身份创建的。当你定义了一个日志,但是日志始终没有生成,就要看一下定义的目录有没写权限,而且写文件的进程是这个进程。

为了保守起见,可以把这个文件创建好/tmp/php_errors.log,在授权777权限
grep error_log /usr/local/php/etc/php.ini
error_log = /tmp/php_errors.log
;error_log = syslog




本文转自 虾米的春天 51CTO博客,原文链接:http://blog.51cto.com/lsxme/2054743,如需转载请自行联系原作者

【云栖快讯】一站式开发者服务,海量学习资源免费学  详情请点击

网友评论