在CentOS系统上部署PHP环境是搭建Web服务(如WordPress、Laravel等应用)的基础步骤,CentOS作为一个稳定且广泛使用的服务器操作系统,提供了多种安装PHP的方式,本文将详细介绍两种主流方法:使用系统默认仓库和使用Remi仓库,并涵盖后续的配置与验证,帮助您根据需求选择最合适的安装路径。

准备工作
在开始安装之前,请确保您已经具备以下条件:
- 一台运行CentOS 7、CentOS 8或CentOS Stream的服务器。
 - 拥有
sudo权限或以root用户身份登录。 - 执行系统更新命令,确保所有软件包都是最新的,这是一个良好的运维习惯,可以避免潜在的依赖冲突。
 
sudo yum update -y
使用默认YUM/DNF仓库安装
这是最直接、最简单的安装方式,适合对PHP版本没有特殊要求,追求稳定性的场景。
优点:
- 操作简单,命令少。
 - 版本经过CentOS团队严格测试,稳定性高。
 
缺点:
- 仓库中的PHP版本通常比较陈旧,CentOS 7默认提供PHP 5.4,CentOS 8默认提供PHP 7.2,这些旧版本可能无法满足新项目的需求或缺少安全更新。
 
安装步骤:
- 
安装PHP 直接使用
yum(CentOS 7)或dnf(CentOS 8/Stream)命令安装。# 对于CentOS 7 sudo yum install php -y # 对于CentOS 8 / Stream sudo dnf install php -y
 - 
安装常用扩展 一个功能完整的PHP应用通常需要多个扩展,以下是一些常用扩展的安装示例:
# 安装MySQL、GD图形处理、XML等扩展 sudo yum install php-mysql php-gd php-xml php-mbstring php-json -y
 - 
验证安装 安装完成后,可以通过以下命令检查PHP版本。
php -v
如果看到版本信息输出,即代表安装成功。
 
使用Remi仓库安装指定版本(推荐)
对于需要使用最新PHP版本(如PHP 7.4, 8.0, 8.1等)的开发者来说,Remi仓库是最佳选择,Remi是一个由社区维护的第三方仓库,专门提供最新版本的PHP及相关组件。
优点:

- 提供多个PHP版本,可以灵活选择和切换。
 - 软件包更新及时,能快速获取最新的功能和安全修复。
 
缺点:
- 安装步骤相对繁琐一些。
 - 依赖第三方仓库。
 
安装步骤:
- 
安装EPEL仓库 Remi仓库依赖于EPEL (Extra Packages for Enterprise Linux)。
sudo yum install epel-release -y
 - 
安装Remi仓库 根据您的CentOS版本执行相应命令。
# 对于CentOS 7 sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y # 对于CentOS 8 / Stream sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
 - 
启用目标PHP版本模块 这是核心步骤,查看可用的PHP版本流。
# CentOS 7 使用 yum yum repolist all | grep php # CentOS 8 / Stream 使用 dnf dnf module list php
假设我们要安装PHP 8.1,需要禁用默认模块并启用Remi的PHP 8.1模块。
# 对于CentOS 8 / Stream sudo dnf module reset php sudo dnf module enable php:remi-8.1 -y # 对于CentOS 7,直接安装时会指定版本,无需此步骤
 - 
安装PHP及常用扩展 启用模块后,即可像方法一那样安装PHP,但此时安装的将是您指定的版本。
# 对于CentOS 8 / Stream sudo dnf install php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-json -y # 对于CentOS 7,需要指定版本号 sudo yum install php81 php81-php-fpm php81-php-mysqlnd php81-php-gd php81-php-xml php81-php-mbstring php81-php-json -y
注意: 在CentOS 7中,通过Remi安装的PHP命令和配置文件路径会包含版本号,例如
php81而不是php,为了方便使用,可以设置一个环境别名。 - 
验证安装 再次检查版本,确认是否为预期的PHP 8.1。
# CentOS 8 / Stream php -v # CentOS 7 php81 -v
 
配置PHP-FPM
现代Web架构(如Nginx)通常通过PHP-FPM(FastCGI Process Manager)来处理PHP请求,安装PHP-FPM后,需要进行基本配置。
- 
配置文件位置 主配置文件通常位于
/etc/php-fpm.d/www.conf,您可以根据需要修改其中的参数,例如运行用户和组(user,group)、监听端口或Socket(listen)等,默认配置通常适用于大多数场景。
 - 
启动并设置开机自启 配置完成后,启动PHP-FPM服务,并将其设置为开机自启动。
sudo systemctl start php-fpm sudo systemctl enable php-fpm
 
测试PHP环境
为了确保PHP能够与Web服务器(如Apache或Nginx)正常工作,可以创建一个测试文件。
- 
在Web根目录(
/var/www/html/)创建一个名为info.php的文件。sudo vi /var/www/html/info.php
 - 
在文件中添加以下内容:
<?php phpinfo(); ?>
 - 
在浏览器中访问
http://您的服务器IP地址/info.php,如果看到PHP的详细配置信息页面,说明您的PHP环境已经成功搭建。 
安全提示: 测试完成后,请务必删除 info.php 文件,因为它会暴露服务器的敏感信息。
sudo rm /var/www/html/info.php
相关问答FAQs
问题1:我已经通过Remi仓库安装了PHP 8.1,现在想切换到PHP 8.2,应该如何操作?
解答: 在使用Remi仓库的CentOS 8/Stream系统上,切换PHP版本非常方便,只需执行以下三个步骤:
- 重置PHP模块: 
sudo dnf module reset php -y - 启用新版本模块: 
sudo dnf module enable php:remi-8.2 -y - 更新系统软件包: 
sudo dnf update -y系统会自动卸载旧版本的PHP包并安装新版本的包,完成后,执行php -v即可确认版本已切换成功,对于CentOS 7,过程类似,但需要手动卸载旧版本包(如yum remove php81-*)并安装新版本包(如yum install php82-*)。 
问题2:安装完PHP后,如何安装一个不在基础包里的扩展,比如Redis或Imagick?
解答: 安装额外的PECL扩展通常也很简单,使用search命令查找对应的软件包,Remi仓库的扩展包命名通常遵循php-xx-扩展名或php版本-php-pecl-扩展名的格式。
- 搜索扩展包: 
sudo dnf search php-redis(或sudo yum search php81-php-pecl-redis) - 安装扩展包: 从搜索结果中找到正确的包名,然后使用
dnf install或yum install进行安装。sudo dnf install php-redis -y安装完成后,需要重启PHP-FPM服务使扩展生效:sudo systemctl restart php-fpm。