发布于2026-07-15 阅读(0)
扫一扫,手机访问
在CentOS上搭建PHP环境,安全从来不是一次性的配置,而是需要持续跟进、层层加固的过程。从系统更新到防火墙,从PHP核心参数到Web服务器设置,每一步都马虎不得。下面就把这些实际可操作的安全配置步骤拆开来讲,希望能帮你少走弯路。
保持CentOS系统和PHP版本处于最新,是安全的第一道防线。直接用sudo yum update就能把系统补丁打上。如果默认仓库里的PHP版本太老,可以用Remi或EPEL仓库来装新版。先安装epel-release和remi-release包,然后sudo yum-config-manager --enable remi-phpXX(XX填版本号,比如74或80),最后执行sudo yum update php*,PHP就更新到最新了。

用Firewalld限制网络访问,只开放HTTP(80)和HTTPS(443)端口就够了。安装启动一套搞定:sudo yum install firewalld && sudo systemctl start firewalld && sudo systemctl enable firewalld。然后添加端口规则:sudo firewall-cmd --zone=public --add-port=80/tcp --permanent && sudo firewall-cmd --zone=public --add-port=443/tcp --permanent,最后sudo firewall-cmd --reload让配置生效。
编辑/etc/php.ini,下面这几个参数是必须调整的,每一条都有它的道理。
display_errors = Off,避免敏感信息直接暴露给用户;同时开启log_errors = On,并把错误日志写到/var/log/php_errors.log,方便排查问题。disable_functions = eval,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source。这些函数一旦被攻击者利用,后果不堪设想,直接封掉最省心。file_uploads = On要保留,但上传大小得卡紧:upload_max_filesize = 2M,post_max_size = 8M。别让用户随便传大文件进来。session.cookie_httponly = On防止XSS窃取Cookie;session.cookie_secure = On强制HTTPS传输;session.cookie_samesite = Strict限制跨站请求;session.use_strict_mode = On防止会话固定攻击。这几条一起上,会话安全基本稳了。allow_url_fopen = Off和allow_url_include = Off禁止远程文件包含;magic_quotes_gpc = Off关闭自动转义,避免干扰数据处理。如果用了PHP-FPM,编辑/etc/php-fpm.d/www.conf,重点关注以下几点:
user = apache(或www-data),group = apache,listen.owner = apache,listen.group = apache,listen.mode = 0660。这样即使FPM被攻破,攻击者也只能拿到低权限。security.limit_extensions = .php .php3 .php4 .php5 .php7,只允许这些后缀的脚本被执行,其他文件一概不认。不管是Apache还是Nginx,都需要做一些针对性调整。
/etc/httpd/conf/httpd.conf或站点配置文件,在里加上Options -Indexes +FollowSymLinks AllowOverride All Require all granted。其中-Indexes禁止目录列表,防止目录结构泄露。/etc/nginx/nginx.conf,在location ~ .php$块里确保fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params;正确设置,同时加上client_max_body_size 8M;限制上传大小。用Certbot免费获取SSL证书并配置HTTPS,现在已经是标配了。安装对应工具:Nginx用sudo yum install certbot python2-certbot-nginx,Apache用sudo yum install certbot python2-certbot-apache。然后运行sudo certbot --nginx -d yourdomain.com(替换为实际域名),按提示完成证书安装。证书到期前会自动提醒续期,基本不用操心。
ModSecurity是Web应用防火墙,能有效拦截常见攻击。安装很简单:sudo yum install mod_security,然后启动并设置开机自启:sudo systemctl enable mod_security && sudo systemctl start mod_security。之后编辑/etc/modsecurity/modsecurity.conf,把SecRuleEngine On开启,规则就生效了。
安全配置再好,也不能保证万无一失。定期备份数据和数据库,是最后一道防线。
rsync -a vz --delete /var/www/html/ /backup/website_backup/;数据库用mysqldump -u[用户名] -p[密码] [数据库名] | gzip > /backup/db_backup.sql.gz。建议写入cron定时任务。sudo yum install fail2ban,然后配置/etc/fail2ban/jail.local启用SSH和Apache防护。日常多留意/var/log/php_errors.log和Web服务器日志(如/var/log/httpd/access_log),一旦发现异常访问记录,能及时响应。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8