centos php环境怎么配置
导读:CentOS PHP环境配置实操指南 一 环境准备与仓库 更新系统并安装 EPEL 仓库,获得更多可用软件包: 命令:sudo yum update -y 命令:sudo yum install -y epel-release 说明...
CentOS PHP环境配置实操指南
一 环境准备与仓库
- 更新系统并安装 EPEL 仓库,获得更多可用软件包:
- 命令:
sudo yum update -y - 命令:
sudo yum install -y epel-release
- 命令:
- 说明:后续通过 yum 安装 PHP、PHP-FPM 及常用扩展(如 php-mysqlnd、php-gd、php-mbstring、php-curl、php-xml、php-bcmath、php-zip、php-opcache)。
二 两种常见部署方案
- 方案A LAMP(Apache + PHP)
- 安装组件:
sudo yum install -y httpd php php-mysqlnd - 启动服务:
sudo systemctl start httpd & & sudo systemctl enable httpd - 说明:使用 mod_php 时,Apache 直接解析 PHP,无需额外配置 PHP-FPM。
- 安装组件:
- 方案B LEMP(Nginx + PHP-FPM)
- 安装组件:
sudo yum install -y nginx php-fpm php-mysqlnd - 启动服务:
sudo systemctl start nginx php-fpm & & sudo systemctl enable nginx php-fpm - 说明:Nginx 通过 FastCGI 将 PHP 请求交给 PHP-FPM 处理。
- 安装组件:
三 PHP与PHP-FPM核心配置
- 定位并调整主配置
- 查看配置文件路径:
php -i | grep "Loaded Configuration File" - 常用参数(编辑 /etc/php.ini):
memory_limit = 256Mupload_max_filesize = 20Mpost_max_size = 20Mmax_execution_time = 300date.timezone = "Asia/Shanghai"error_reporting = E_ALL & display_errors = Off(生产建议关闭显示)
- 查看配置文件路径:
- PHP-FPM 进程与监听(编辑 /etc/php-fpm.d/www.conf)
- 示例(Unix Socket,性能更好,权限需与 Web 服务一致):
listen = /run/php-fpm/www.socklisten.owner = nginxlisten.group = nginxlisten.mode = 0660user = nginxgroup = nginx- 进程管理(示例):
pm = dynamic、pm.max_children = 50、pm.start_servers = 5、pm.min_spare_servers = 5、pm.max_spare_servers = 35
- 示例(TCP 端口):
listen = 127.0.0.1:9000 - 使配置生效:
sudo systemctl restart php-fpm
- 示例(Unix Socket,性能更好,权限需与 Web 服务一致):
- 性能与安全要点
- 启用 OPcache(推荐):
sudo yum install -y php-opcache,在 /etc/php.d/opcache.ini 中设置opcache.enable=1并重启 php-fpm。 - 禁用危险函数(在 php.ini):
disable_functions = exec,system,shell_exec,passthru,proc_open,proc_close,eval,assert
- 启用 OPcache(推荐):
四 Web服务器与PHP对接
- Nginx 配置示例(/etc/nginx/conf.d/default.conf)
- 片段:
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 nginx
- 片段:
- Apache 配置示例
- 使用 mod_php(已安装 php 包即可):
sudo systemctl restart httpd - 使用 PHP-FPM(启用代理模块并转发):
< FilesMatch \.php$> SetHandler "proxy:fcgi://127.0.0.1:9000" < /FilesMatch> - 使配置生效:
sudo systemctl restart httpd
- 使用 mod_php(已安装 php 包即可):
五 测试与常见问题
- 功能测试
- 创建测试文件:
echo "< ?php phpinfo(); " | sudo tee /var/www/html/info.php - 浏览器访问:
http://your_server_ip/info.php,出现 PHP 信息页即表示环境可用。
- 创建测试文件:
- 常见问题排查
- 502/504:检查 PHP-FPM 是否运行、监听地址与 Nginx/Apache 配置是否一致、Socket 文件权限是否为 0660 且属主/属组匹配 Web 服务。
- 权限与目录:确保 /var/www/html 对 Web 服务用户(如 nginx)可读可执行。
- SELinux:如启用,使用
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)。 - 防火墙:开放 80/443:
sudo firewall-cmd --permanent --add-service=http --add-service=https & & sudo firewall-cmd --reload。 - 配置热加载:修改 php.ini 后重启 php-fpm;修改 Nginx/Apache 后重启对应服务。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos php环境怎么配置
本文地址: https://pptw.com/jishu/767593.html
