在 CentOS 上配置 PHP 时,有几个关键点容易踩坑,下面按「安装 → 配置 → 安全 → 排错」给你总结一下。
yum install php php-cli
yum install epel-release
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install yum-utils
yum-config-manager --enable remi-php81
yum install php php-cli php-fpm
✅ 推荐版本:
CentOS 上 Nginx + PHP 一定是 PHP-FPM
systemctl start php-fpm
systemctl enable php-fpm
/etc/php-fpm.d/www.conf
常见注意点:
user = nginx
group = nginx
listen = /run/php-fpm/www.sock
; 或 listen = 127.0.0.1:9000
⚠️ Nginx 和 PHP-FPM 用户必须一致
位置:
/etc/php.ini
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
upload_max_filesize = 50M
post_max_size = 50M
max_execution_time = 60
memory_limit = 256M
cgi.fix_pathinfo=0 ; 防止 Nginx + PHP 安全漏洞
chown -R nginx:nginx /var/www/html
chmod -R 755 /var/www/html
查看状态:
getenforce
临时关闭(不推荐长期):
setenforce 0
✅ 正确做法:
setsebool -P httpd_can_network_connect on
setsebool -P httpd_execmem on
chcon -R -t httpd_sys_content_t /var/www/html
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
yum install php-mysqlnd php-gd php-mbstring php-xml php-curl php-zip
安装后重启:
systemctl restart php-fpm
/var/log/php-fpm/error.log
/var/log/nginx/error.log
/var/log/php_errors.log
CentOS 配 PHP,核心是 PHP-FPM + 权限 + SELinux + php.ini 安全项
如果你告诉我:
我可以直接给你一套 完整可执行配置命令。