温馨提示×

centos下php如何搭建开发环境

小樊
41
2025-11-19 20:00:00
栏目: 编程语言

CentOS 下 PHP 开发环境搭建

一 环境准备与版本选择

  • 更新系统并安装常用仓库:执行命令:sudo yum update -ysudo yum install -y epel-release。如使用 CentOS 7 并需要 PHP 7.x,可先安装 Webtatic 源(需先有 EPEL):rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm,再安装对应版本(如:yum install php70w)。如使用 CentOS 8/9,建议优先使用系统模块流或 Remi 源获取更新版本。以上步骤可确保软件包可用与版本匹配。

二 两种常用堆栈快速搭建

  • LAMP(Apache + MariaDB/MySQL + PHP)
    1. 安装组件:sudo yum install -y httpd mariadb-server php php-mysqlnd(如需常用扩展可追加:php-gd php-mbstring php-xml php-bcmath php-json php-zip)。
    2. 启动服务:sudo systemctl start httpd mariadb && sudo systemctl enable httpd mariadb
    3. 数据库安全初始化:sudo mysql_secure_installation
    4. 验证安装:在 /var/www/html/info.php 写入 ,浏览器访问 http://服务器IP/info.php
  • LEMP(Nginx + MariaDB/MySQL + PHP-FPM)
    1. 安装组件:sudo yum install -y nginx mariadb-server php-fpm php-mysqlnd(可按需追加扩展)。
    2. 启动服务:sudo systemctl start nginx mariadb php-fpm && sudo systemctl enable nginx mariadb php-fpm
    3. 配置 PHP-FPM:编辑 /etc/php-fpm.d/www.conf,常用设置为 listen = /run/php-fpm/www.sock(或 127.0.0.1:9000),并将 user/group 与 Web 服务运行用户保持一致(如 nginxapache)。
    4. 配置 Nginx:在 /etc/nginx/conf.d/default.conf 的 server 块中加入:
      location ~ .php$ {
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_pass unix:/run/php-fpm/www.sock; # 或 fastcgi_pass 127.0.0.1:9000;
      }
      重载:sudo systemctl reload nginx
    5. 验证安装:同 LAMP 的 info.php 方法。
      上述流程覆盖 LAMP/LEMP 的组件安装、服务启动、数据库安全与基础连通性验证,适合快速落地开发环境。

三 PHP 与 PHP-FPM 关键配置

  • 核心参数(编辑 /etc/php.ini 或通过 /etc/php.d/*.ini 分文件管理):
    • 运行时与上传:memory_limit = 256Mupload_max_filesize = 20Mpost_max_size = 20Mmax_execution_time = 120
    • 时区与错误:date.timezone = “Asia/Shanghai”error_reporting = E_ALL、开发环境可开启 display_errors = On(生产请关闭)。
  • OPcache 加速(推荐开发/生产均开启):安装 php-opcache,在 /etc/php.d/opcache.ini 写入:
    opcache.enable=1
    opcache.enable_cli=1
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    opcache.validate_timestamps=1
    opcache.revalidate_freq=60
  • PHP-FPM 进程与权限(编辑 /etc/php-fpm.d/www.conf):
    • 监听与权限:listen = /run/php-fpm/www.socklisten.owner = nginxlisten.group = nginxuser = nginxgroup = nginx
    • 进程管理(示例):pm = dynamicpm.max_children = 50pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35
      修改后执行:sudo systemctl restart php-fpm。以上配置可显著提升性能与稳定性,并便于多站点与权限隔离。

四 测试与常见问题排查

  • 连通性测试:访问 http://服务器IP/info.php,确认 PHP 版本Loaded Configuration FileOPcache 状态与已启用扩展。
  • 日志定位:
    • Web 错误:/var/log/httpd/error_log(Apache)或 /var/log/nginx/error.log(Nginx)。
    • PHP-FPM 错误:/var/log/php-fpm/www-error.log
  • 常见故障:
    • 访问 .php 返回下载或空白:检查 Nginx fastcgi_passSCRIPT_FILENAME 是否正确,或 Apache 是否启用 PHP 模块/正确处理 PHP。
    • 权限错误:确保 /var/www/html/run/php-fpm 目录对 nginx/apache 用户可读可执行。
    • SELinux 拦截:可临时 setenforce 0 验证,生产环境请使用 semanage 正确放行端口与路径上下文。
    • 数据库连不上:确认 mysqld 已启动并完成 mysql_secure_installation,应用使用正确主机/端口/用户/密码。
      以上步骤可快速定位大多数配置与权限类问题,保障环境可用。

五 安全与维护建议

  • 基础安全:保持 PHP/系统 更新;仅启用必要扩展;禁用危险函数(如 exec、shell_exec、system 等);设置 open_basedir 限制文件访问范围;对外仅开放 80/443,数据库端口仅内网可达。
  • 运行维护:定期备份代码与数据库;监控 php-fpm 进程与内存占用;分离 /var/www/var/log 到独立分区;为线上关闭 display_errors 并妥善记录错误日志。以上做法有助于降低攻击面并提升可运维性。

0