通过如下方式找到咱们的php配置文件,这才是真正的PHP配置文件!
[root@localhost test3.com]# /usr/local/php7/bin/php -i | grep -i 'loaded configuration file'
Loaded ConfigurationFile =>/usr/local/php7/etc/php.ini
编辑配置文件:
vim /usr/local/php7/etc/php.ini
提高安全性:
搜索 /disable_functions
如下就是通常被认为比较危险的函数:
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
其中第一个eval函数就是上个文章提到的木马文件所调用的函数。如果禁掉了这个函数,就算可以上传php文件也是不能执行的。
关于phpinfo可以展现所有关于php的信息,如果被黑客看到就不堪设想了。所以好多企业为了更加安全会把phpinfo也会禁止掉!
但是当我们禁掉PHP的时候,当你访问phpinfo他也还是会在浏览器中显示错误信息:
黑客比较严谨,也还是会通过此路径找到相关配置,所以为了防止在浏览器中显示,我们也可以把这些信息全部关掉!
搜素 /display ,改为off即可。
display_errors=Off
然后,我们再去配置一下log_error
log_errors=On
然后再次去定义错误日志的路径:
搜索 /error_log, 修改到/tmp下。
error_log= /tmp/php_errors.log
为了更加直观的看到日志内容,我们需要设置日志的等级:
搜索 /error_reporting
error_reporting= E_ALL & ~E_NOTICE
在生产环境中,最常用的就是这个!
重载配置(graceful)
定义时区:
有时候不定义会出现一些告警信息,搜索 /timezone 修改为:
date.timezone = Asia/Shanghai
open_basedir
如果有一台服务器跑了很多个站点,其中就有一个站的程序写的很烂,漏洞百出,被黑客所劫持,只要一台被劫持,其它的服务器也就很快被搞定。为了防止这样的事情发生,如何搞定呢?
针对不同的虚拟主机限定不同的open_basedir
打开配置文件:
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
增加如下配置:
php_admin_valueopen_basedir"/data/wwwroot/test3.com/:/tmp/"
为什么要添加/tmp呢?
是因为/tmp下有咱们的错误日志,并且有些论坛允许上传图片也都是先上传到tmp目录下,然后再次转到upload下!
因为我整了两个,所以如下图:
当然也可以在PHP.ini中配置:
vim /usr/local/php/etc/php.ini
/搜索 open_basedir,修改为如下:
open_basedir = .:/tmp/
以上内容希望帮助到大家,有需要的可以添加下方二维码进群交流学习新技术。
如果你想和PHP大神交流加微信,拉你入群
如果你想获得学习资料加微信,送你资源
领取专属 10元无门槛券
私享最新 技术干货