CentOS 7 环境下 PHP 7.3 与 PHP-FPM 完整安装指南(外网 yum / 内网源码双方案)
在搭建 Web 服务(如搭配 Nginx 部署 PhpMyAdmin)时,PHP 环境与 PHP-FPM 是核心依赖组件 ——PHP 负责解析动态脚本,PHP-FPM(FastCGI Process Manager)则作为 FastCGI 进程管理器,实现 Nginx 与 PHP 的高效通信。本文针对 CentOS 7 系统,提供外网 yum 快速安装和内网源码编译安装两种方案,覆盖依赖配置、服务启停、验证测试全流程,适配不同网络环境需求。
一、前置说明:环境与依赖基础
无论采用哪种安装方式,需先确保系统基础工具完备,且明确核心依赖关系:
- 核心依赖:gcc(编译器)、gcc-c++、libxml2-devel(XML 解析依赖)、openssl-devel(SSL 支持)、curl-devel(curl 扩展)、libjpeg-devel(图片处理)、libpng-devel 等
- 适用场景:
-
- 外网环境:适合有公网访问权限的服务器,通过 yum 仓库一键安装,省时省力
-
- 内网环境:适合无公网权限的服务器,需提前下载源码包,手动编译配置,灵活性更高
二、方案一:外网环境(yum 仓库安装,推荐新手)
yum 安装依赖 EPEL(Extra Packages for Enterprise Linux)和 Remi 仓库(专注 PHP 更新的第三方仓库),可快速获取稳定的 PHP 7.3 版本及扩展。
步骤 1:安装基础依赖与仓库配置
- 先安装系统基础工具与依赖包(-y参数自动确认,无需手动输入y):
yum install -y wget gcc gcc-c++ make libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel libmcrypt-devel
- 安装并启用 EPEL 仓库(提供额外开源软件包):
yum install -y epel-release
- 安装 Remi 仓库(用于指定 PHP 7.3 版本):
yum install -y https://rpms.remi.io/remi-release-7.rpm
- 启用 PHP 7.3 的 Remi 仓库(通过yum-utils工具管理仓库启用状态):
yum install -y yum-utils
yum-config-manager --enable remi-php73
步骤 2:安装 PHP 7.3 与常用扩展
执行以下命令安装 PHP 7.3 及 PHP-FPM,同时包含 PhpMyAdmin 等 Web 应用常用的扩展(如 mysqli、gd、curl 等):
yum install -y php php-fpm php-mysqlnd php-gd php-curl php-xml php-mbstring php-json php-opcache
- 关键组件说明:
-
- php:PHP 核心运行环境
-
- php-fpm:PHP-FPM 进程管理器(Nginx 必装)
-
- php-mysqlnd:MySQL 数据库连接扩展(替代旧版php-mysql)
-
- php-gd:图片处理扩展(生成验证码、缩略图等)
步骤 3:验证 PHP 安装与版本
安装完成后,通过以下命令验证 PHP 版本,确认安装成功:
php -v
若输出类似以下内容,说明 PHP 7.3 安装成功:
步骤 4:PHP-FPM 配置与服务管理
- 修改 PHP-FPM 默认配置(可选,根据需求调整):
编辑 PHP-FPM 主配置文件/etc/php-fpm.conf,确认包含子配置目录(默认已配置,无需修改):
vi /etc/php-fpm.conf
确保存在以下行(加载 www.conf 子配置):
include=/etc/php-fpm.d/*.conf
编辑子配置文件/etc/php-fpm.d/www.conf(调整运行用户、端口等):
vi /etc/php-fpm.d/www.conf
关键配置修改(根据服务器环境调整):
-
- user = nginx:PHP-FPM 运行用户(需与 Nginx 用户一致,避免权限问题)
-
- group = nginx:运行组(同上)
-
- listen = 127.0.0.1:9000:监听地址与端口(默认 9000,若端口冲突可修改,如 9001)
-
- pm.max_children = 50:最大进程数(根据服务器 CPU 核心数调整,建议 1 核 2-4 个)
- 启动与设置开机自启:
# 启动PHP-FPM服务
systemctl start php-fpm
# 设置开机自启
systemctl enable php-fpm
# 查看服务状态(确认是否正常运行)
systemctl status php-fpm
若输出active (running),说明 PHP-FPM 服务启动成功。
三、方案二:内网环境(源码编译安装,适合定制化需求)
内网环境无公网权限,需先在有外网的机器下载 PHP 7.3 源码包,再传输到内网服务器,通过手动编译安装,可灵活配置扩展与安装路径。
步骤 1:准备源码包与基础依赖
- 下载 PHP 7.3 源码包(外网机器操作):
访问 PHP 官网下载指定版本(本文以 7.3.24 为例),下载链接:
https://www.php.net/distributions/php-7.3.24.tar.gz
将下载的php-7.3.24.tar.gz通过 U 盘、FTP 等方式传输到内网 CentOS 7 服务器(如/usr/local/src/目录)。
- 内网服务器安装依赖(若内网有本地 yum 源,可直接用 yum;无则需手动下载依赖源码编译,此处假设内网有基础依赖):
yum install -y gcc gcc-c++ make libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel
步骤 2:解压源码包并配置编译参数
- 进入源码包存放目录,解压文件:
cd /usr/local/src/
tar -zxvf php-7.3.24.tar.gz
cd php-7.3.24
- 配置编译参数(核心步骤,决定安装路径、启用扩展等):
执行以下命令,指定安装路径为/usr/local/php,并启用常用扩展(根据需求调整参数):
./configure \
--prefix=/usr/local/php \ # PHP安装目录
--with-config-file-path=/usr/local/php/etc \ # php.ini配置文件路径
--enable-fpm \ # 启用PHP-FPM
--with-fpm-user=nginx \ # PHP-FPM运行用户
--with-fpm-group=nginx \ # 运行组
--with-mysql=mysqlnd \ # MySQL支持(mysqlnd驱动)
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gd \ # 启用GD库(图片处理)
--with-curl \ # 启用curl扩展
--with-openssl \ # 启用SSL支持
--with-mbstring \ # 启用多字节字符串支持
--enable-xml \ # 启用XML扩展
--enable-opcache \ # 启用OPcache(加速PHP执行)
--enable-cli # 启用CLI模式(命令行)
- 若配置过程中提示 “缺少 xxx 依赖”,需先安装对应依赖(内网环境需手动下载依赖源码编译)。
步骤 3:编译与安装
配置完成后,执行编译与安装命令(-j4表示用 4 个线程编译,可根据 CPU 核心数调整,加速编译):
make -j4 && make install
- 编译过程耗时较长(5-15 分钟,取决于服务器性能),若出现Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/等提示,说明安装成功。
步骤 4:配置 PHP 与 PHP-FPM
- 复制 php.ini 配置文件:
PHP 源码包中提供了两个默认配置文件(php.ini-production生产环境版,php.ini-development开发环境版),复制生产环境版到指定路径并改名:
cp /usr/local/src/php-7.3.24/php.ini-production /usr/local/php/etc/php.ini
- 配置 PHP-FPM 启动脚本:
将源码包中的 PHP-FPM 初始化脚本复制到系统服务目录,方便管理:
cp /usr/local/src/php-7.3.24/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# 赋予脚本执行权限
chmod +x /etc/init.d/php-fpm
- 生成 PHP-FPM 主配置文件:
安装目录下默认有配置文件模板,复制并改名:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
- 配置 PHP-FPM 子进程(www.conf):
复制子配置模板,调整监听端口、运行用户等关键参数:
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
# 编辑子配置文件
vi /usr/local/php/etc/php-fpm.d/www.conf
关键修改(同 yum 安装方案):
- listen = 127.0.0.1:9000:若 9000 端口被占用,修改为其他端口(如 9001)
- user = nginx、group = nginx:与 Nginx 运行用户一致
- pm.max_children = 50:根据服务器性能调整
步骤 5:添加环境变量(可选,方便命令行使用)
默认情况下,php命令无法直接在任意目录执行,需添加环境变量:
编辑/etc/profile文件:
vi /etc/profile
在文件末尾添加以下内容(指定 PHP 二进制文件路径):
export PATH=$PATH:/usr/local/php/bin:/usr/local/php/sbin
生效环境变量:
source /etc/profile
验证环境变量:执行php -v,若输出 PHP 版本信息,说明配置成功。
步骤 6:启动 PHP-FPM 服务
通过初始化脚本启动 PHP-FPM,并设置开机自启:
# 启动PHP-FPM
/etc/init.d/php-fpm start
# 查看服务状态(确认是否启动)
/etc/init.d/php-fpm status
# 设置开机自启(通过chkconfig工具)
chkconfig --add php-fpm
chkconfig php-fpm on
- 启动成功后,可通过netstat -tulnp | grep 9000查看端口监听状态(若修改端口,替换为实际端口)。
四、通用验证:确认 PHP-FPM 与 Nginx 通信(关键)
无论哪种安装方案,安装完成后需验证 PHP-FPM 是否能与 Nginx 正常协作,确保动态脚本可解析:
步骤 1:配置 Nginx 支持 PHP
编辑 Nginx 虚拟主机配置文件(如/etc/nginx/conf.d/default.conf),添加 PHP 解析规则:
vi /etc/nginx/conf.d/default.conf
在server块中添加以下内容:
location ~ \.php$ {
root /usr/share/nginx/html; # Nginx网站根目录
fastcgi_pass 127.0.0.1:9000; # 对接PHP-FPM的监听地址与端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 关键:指定PHP脚本路径
include fastcgi_params;
}
步骤 2:创建测试 PHP 文件
在 Nginx 网站根目录下创建info.php文件,用于测试 PHP 解析:
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php
步骤 3:访问测试页面
重启 Nginx 服务,使配置生效:
systemctl restart nginx
在浏览器中访问http://服务器IP/info.php,若显示 PHP 信息页面(包含 PHP 版本、扩展、FPM 配置等),说明 PHP-FPM 与 Nginx 通信正常,环境搭建成功。
五、常见问题与解决办法
PHP-FPM 启动失败:“Address already in use”
原因:9000 端口被其他进程占用。
解决:修改www.conf中的listen端口(如 9001),并同步更新 Nginx 配置中的fastcgi_pass端口。
浏览器访问 info.php 显示空白或下载文件
原因:Nginx 未正确配置 PHP 解析规则,或 PHP-FPM 未启动。
解决:
- 检查 Nginx 配置中的fastcgi_param SCRIPT_FILENAME路径是否正确(需与网站根目录一致);
- 检查 PHP-FPM 服务是否正常运行(systemctl status php-fpm或/etc/init.d/php-fpm status)。
源码编译时提示 “configure: error: Cannot find OpenSSL's <evp.h>”
原因:缺少 OpenSSL 依赖。
解决:内网环境需手动下载openssl-devel源码编译安装;外网环境直接执行yum install -y openssl-devel。
六、后续操作:安装 PhpMyAdmin
完成 PHP 与 PHP-FPM 安装后,即可继续安装 PhpMyAdmin(需将 PhpMyAdmin 文件放在 Nginx 网站根目录,通过浏览器访问配置数据库连接),具体步骤可参考 PhpMyAdmin 官方文档,核心依赖已通过本文方案满足。
通过本文两种方案,可在 CentOS 7 系统中快速搭建稳定的 PHP 7.3 与 PHP-FPM 环境,适配外网便捷安装与内网定制化需求。若在操作中遇到问题,可优先检查依赖安装、配置文件路径与服务状态,确保每一步配置与服务器环境匹配。