以下是CentOS下PHP的安全设置方法:
更新系统和PHP
sudo yum update -y
sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring -y
配置PHP安全参数(修改/etc/php.ini)
disable_functions = eval,exec,passthru,shell_exec,system,curl_execdisplay_errors = Offlog_errors = Onerror_log = /var/log/php_errors.logfile_uploads = Onupload_max_filesize = 2Mpost_max_size = 8Msession.cookie_httponly = Onsession.cookie_secure = Onsession.cookie_samesite = Strict配置PHP-FPM(如使用)
/etc/php-fpm.d/www.conf,设置非root用户运行:user = apachegroup = apachelisten.owner = apachelisten.group = apacheWeb服务器配置(以Nginx为例)
location / { autoindex off; }location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/www.sock; include fastcgi_params; }启用安全模块
sudo yum install mod_security
sudo systemctl enable mod_security
sudo systemctl start mod_security
其他安全措施
sudo yum install mod_ssl
sudo certbot --nginx -d yourdomain.com
rsync -avz /var/www/html /backup/
mysqldump -u 用户名 -p 数据库名 > backup.sql
注意:修改配置后需重启服务生效,生产环境建议先在测试环境验证。