您的位置:首页 >php在centos上如何进行安全配置
发布于2026-04-28 阅读(0)
扫一扫,手机访问

安全从来不是空中楼阁,它始于一个稳固的系统底座。在CentOS上部署PHP应用,第一步就是把地基打牢。
sudo yum update -y。养成定期更新的习惯,胜过事后补救。sudo systemctl start firewalld && sudo systemctl enable firewalldsudo firewall-cmd --permanent --zone=public --add-service=http && sudo firewall-cmd --permanent --zone=public --add-service=https && sudo firewall-cmd --reloadsudo setenforce 1 临时启用,并编辑 /etc/selinux/config 将 SELINUX=enforcing 以实现重启后依然生效。系统层面加固后,接下来就是 PHP 自身的“瘦身”与“锁紧”。通过修改 php.ini(或 /etc/php.d/*.ini 下的配置文件),我们可以大幅降低应用层的风险暴露面。
display_errors = Off 可以避免将敏感信息(如路径、数据库结构)泄露给攻击者。同时,设置 log_errors = On 并指定 error_log = /var/log/php_errors.log,确保问题能被内部追踪。allow_url_fopen = Off 和 allow_url_include = Off,这能有效防止远程文件包含(RFI)这类高危漏洞。disable_functions = eval,assert,system,shell_exec,passthru,exec,popen,pcntl_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,phpinfo。特别是 phpinfo,它简直是服务器的“自白书”。session.cookie_httponly = On 可防止 Ja vaScript 窃取会话 Cookie,session.cookie_secure = On 强制仅在 HTTPS 下传输 Cookie,session.cookie_samesite = Strict 则能有效防御跨站请求伪造(CSRF)。file_uploads = On、upload_max_filesize = 10M、post_max_size = 10M。限制大小是防止资源耗尽攻击的第一步。open_basedir = /var/www/html:/tmp(路径请按实际站点根目录调整)将 PHP 可访问的文件系统限制在指定目录内,防止目录遍历攻击。max_execution_time = 30、max_input_time = 30、memory_limit = 128M,避免恶意脚本耗尽服务器资源。opcache.enable=1、opcache.memory_consumption=128、opcache.interned_strings_buffer=8、opcache.max_accelerated_files=4000、opcache.revalidate_freq=60、opcache.fast_shutdown=1。开发环境可酌情关闭。safe_mode 这类已废弃且不安全的指令。正确的做法是优先升级 PHP 版本,而非依赖这些过时的“安全”特性。PHP-FPM 作为 PHP 的进程管理器,其配置直接关系到应用运行的隔离性和稳定性。
user 和 group 设置为如 apache 或 nginx 这样的非 root 用户,遵循最小权限原则。listen 改为 /run/php-fpm/www.sock,相比监听 TCP 9000 端口,这减少了网络暴露面,并提升了本地通信性能。同时设置 listen.owner = apache、listen.group = apache、listen.mode = 0660 以确保正确的访问控制。pm.max_children = 50、pm.start_servers = 5、pm.min_spare_servers = 5、pm.max_spare_servers = 35、request_terminate_timeout = 60s。合理的进程池配置是性能与稳定的平衡点。sudo systemctl restart php-fpm 使更改生效。Web 服务器是 PHP 应用对外的门户,门户的守卫规则至关重要。
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
php_admin_flag engine on
其中 -Indexes 防止目录列表泄露文件结构。
mod_ssl 模块,在 /etc/httpd/conf.d/ssl.conf 中正确配置 SSL 证书与私钥路径,然后重启 httpd 服务。server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
location ~ /\.ht {
deny all;
}
}
安全配置并非一劳永逸,它还包括数据的安全和持续的维护。
CREATE USER 'app'@'localhost' IDENTIFIED BY 'StrongPassword!';
GRANT SELECT,INSERT,UPDATE,DELETE ON app_db.* TO 'app'@'localhost';
FLUSH PRIVILEGES;
注意将 StrongPassword! 替换为强密码,并限制访问来源为 localhost。
mkdir -p /backup
rsync -a vz --delete /var/www/html/ /backup/website_$(date +%F)/
mysqldump -u[db_user] -p[db_pass] [db_name] | gzip > /backup/db_$(date +%F).sql.gz
请替换 [db_user], [db_pass], [db_name] 为实际值,并考虑使用 cron 定时任务自动化执行。
/var/log/php_errors.log)、系统审计日志 (/var/log/audit/audit.log),从中发现异常行为。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9