PHP安全配置

一、禁用危险函数

查看PHP配置文档位置

           /usr/local/php/bin/php -i |head #找到Configuration File (php.ini) Path  => /usr/local/php/etc   表示配置文件在此目录的php.ini

修改配置文件 

    vim /usr/local/php/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

 

 

 

二、开启PHP错误日志

修改php.ini,找到display_errors = off 修改成display_errors = On  #表示当在浏览器访问错误网页,会显示错误日志。一般不使用这种方法

常用方法:

    修改php.ini,找到log_errors = Off   修改成log_errors = On

找到error_log = XXXXX/php_errors.log 修改成绝对路径error_log = /usr/local/php/logs/php_errors.log   #前提此路径有此文件才生效,否则该文件不会自动生成,没有则手动创建,权限修改为777

找到/error_reporting    加上/error_reporting = E_ALL & ~E_NOTICE

重新加载apache服务graceful表示重载配置

/usr/local/apache2/bin/apachectl graceful

 

三、 配置open_basedir(安全配置)

修改php.in文件,找到open_basedir 修改为open_basedir = /data/www/:/目录2/:目录3/

#表示只允许访问此目录,其他目录无法访问

修改虚拟主机配置文件httpd-vhosts.conf

   <VirtualHost *:80>里面加入:

   php_admin_value open_basedir = “/data/www/:/目录2/:目录3/

   #1以及点2效果同等,一个是全局一个是某个虚拟主机

 

四、打开慢查询日志,记录超过1秒的查询

   vim /etc/my.conf  [mysqld] 模块下面的其他模块(不是在mysqld模块的里面)加入一下代码:

log_slow_queries = /var/log/mysql_slow_queries.log

long_query_time = 1     #记录超过1秒的语句

开启短标签   控制参数: short_open_tag = On