CentOS PHP环境配置实操指南
一 环境准备与仓库
sudo yum update -ysudo yum install -y epel-release二 两种常见部署方案
sudo yum install -y httpd php php-mysqlndsudo systemctl start httpd && sudo systemctl enable httpdsudo yum install -y nginx php-fpm php-mysqlndsudo systemctl start nginx php-fpm && sudo systemctl enable nginx php-fpm三 PHP与PHP-FPM核心配置
php -i | grep "Loaded Configuration File"memory_limit = 256Mupload_max_filesize = 20Mpost_max_size = 20Mmax_execution_time = 300date.timezone = "Asia/Shanghai"error_reporting = E_ALL & display_errors = Off(生产建议关闭显示)listen = /run/php-fpm/www.socklisten.owner = nginxlisten.group = nginxlisten.mode = 0660user = nginxgroup = nginxpm = dynamic、pm.max_children = 50、pm.start_servers = 5、pm.min_spare_servers = 5、pm.max_spare_servers = 35listen = 127.0.0.1:9000sudo systemctl restart php-fpmsudo yum install -y php-opcache,在 /etc/php.d/opcache.ini 中设置 opcache.enable=1 并重启 php-fpm。disable_functions = exec,system,shell_exec,passthru,proc_open,proc_close,eval,assert四 Web服务器与PHP对接
server {
listen 80;
server_name your_domain_or_ip;
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_index index.php;
fastcgi_pass unix:/run/php-fpm/www.sock; # 或 127.0.0.1:9000
}
}
sudo systemctl restart nginxsudo systemctl restart httpd<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
sudo systemctl restart httpd五 测试与常见问题
echo "<?php phpinfo();" | sudo tee /var/www/html/info.phphttp://your_server_ip/info.php,出现 PHP 信息页即表示环境可用。sudo setsebool -P httpd_can_network_connect 1 允许与 PHP-FPM 通信;或按需配置端口类型:sudo semanage port -a -t http_port_t -p tcp 80(如未安装 semanage,先安装 policycoreutils-python-utils)。sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload。