centos下php如何搭建开发环境
小樊
41
2025-11-19 20:00:00
CentOS 下 PHP 开发环境搭建
一 环境准备与版本选择
- 更新系统并安装常用仓库:执行命令:sudo yum update -y、sudo 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)
- 安装组件:sudo yum install -y httpd mariadb-server php php-mysqlnd(如需常用扩展可追加:php-gd php-mbstring php-xml php-bcmath php-json php-zip)。
- 启动服务:sudo systemctl start httpd mariadb && sudo systemctl enable httpd mariadb。
- 数据库安全初始化:sudo mysql_secure_installation。
- 验证安装:在 /var/www/html/info.php 写入 ,浏览器访问 http://服务器IP/info.php。
- LEMP(Nginx + MariaDB/MySQL + PHP-FPM)
- 安装组件:sudo yum install -y nginx mariadb-server php-fpm php-mysqlnd(可按需追加扩展)。
- 启动服务:sudo systemctl start nginx mariadb php-fpm && sudo systemctl enable nginx mariadb php-fpm。
- 配置 PHP-FPM:编辑 /etc/php-fpm.d/www.conf,常用设置为 listen = /run/php-fpm/www.sock(或 127.0.0.1:9000),并将 user/group 与 Web 服务运行用户保持一致(如 nginx 或 apache)。
- 配置 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。
- 验证安装:同 LAMP 的 info.php 方法。
上述流程覆盖 LAMP/LEMP 的组件安装、服务启动、数据库安全与基础连通性验证,适合快速落地开发环境。
三 PHP 与 PHP-FPM 关键配置
- 核心参数(编辑 /etc/php.ini 或通过 /etc/php.d/*.ini 分文件管理):
- 运行时与上传:memory_limit = 256M、upload_max_filesize = 20M、post_max_size = 20M、max_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.sock,listen.owner = nginx,listen.group = nginx,user = nginx,group = nginx。
- 进程管理(示例):pm = dynamic、pm.max_children = 50、pm.start_servers = 5、pm.min_spare_servers = 5、pm.max_spare_servers = 35。
修改后执行:sudo systemctl restart php-fpm。以上配置可显著提升性能与稳定性,并便于多站点与权限隔离。
四 测试与常见问题排查
- 连通性测试:访问 http://服务器IP/info.php,确认 PHP 版本、Loaded Configuration File、OPcache 状态与已启用扩展。
- 日志定位:
- 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_pass 与 SCRIPT_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 并妥善记录错误日志。以上做法有助于降低攻击面并提升可运维性。