在CentOS系统中,使用YUM包管理器安装和配置PHP是许多开发者和系统管理员日常工作的一部分,YUM(Yellowdog Updater, Modified)是CentOS和Red Hat Enterprise Linux(RHEL)系统中常用的软件包管理工具,它能够自动解决依赖关系,简化软件的安装、更新和删除过程,对于PHP而言,官方默认的YUM源可能提供的版本较为陈旧,无法满足开发需求,因此配置第三方YUM源成为必要步骤。

CentOS系统中的YUM基础
YUM的工作原理依赖于软件仓库(Repository)的配置,每个仓库定义了一组软件包的URL和元数据,YUM通过下载这些元数据来获取软件包的信息,在CentOS系统中,仓库配置文件通常位于/etc/yum.repos.d/目录下,以.repo为后缀,默认情况下,CentOS提供了Base、Updates、Extras等仓库,这些仓库包含了操作系统的基础组件和更新,对于PHP这类开发语言,官方仓库可能提供的版本较低,例如CentOS 7默认的PHP版本仅为5.4,而现代应用通常需要PHP 7.x或更高版本。
第三方PHP YUM源的选择
为了获取更新的PHP版本,社区和官方提供了多个第三方YUM源,Remi Repository是最受欢迎的选择之一,Remi仓库由Remi Collet维护,提供了多种版本的PHP,包括PHP 5.6、7.0、7.1、7.2、7.3、7.4以及8.0等,另一个选择是EPEL(Extra Packages for Enterprise Linux)仓库,虽然EPEL也提供PHP,但其版本更新可能不如Remi仓库及时,Webtatic仓库也是专门为PHP和其他Web应用软件设计的YUM源,适合需要特定版本的开发环境。
配置Remi PHP YUM源的步骤
配置Remi仓库的第一步是安装EPEL仓库,因为Remi依赖于EPEL的一些基础组件,可以通过以下命令安装EPEL仓库:
sudo yum install epel-release
下载Remi仓库的配置文件,Remi提供了针对不同CentOS版本的仓库文件,可以从Remi的官方网站或GitHub仓库获取,以CentOS 7为例,可以使用以下命令下载:
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
下载完成后,使用yum repolist命令查看可用的仓库列表,确保Remi仓库已正确加载。

启用并安装特定版本的PHP
默认情况下,Remi仓库中的PHP包可能处于禁用状态,需要手动启用特定版本的PHP仓库,要安装PHP 7.4,可以执行以下命令:
sudo yum-config-manager --enable remi-php74
启用仓库后,即可使用yum install命令安装PHP及其扩展。
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring
这里安装了PHP核心、命令行接口、FastCGI进程管理器、MySQL支持、图像处理、XML解析和多字节字符串扩展等常用组件。
配置PHP和Web服务器
安装完成后,PHP的配置文件通常位于/etc/php/目录下,不同版本的PHP会有不同的子目录,例如/etc/php/7.4/,主要的配置文件是php.ini,可以根据需求调整其中的参数,如内存限制、上传文件大小、时区设置等,对于Web服务器,如果使用Apache,需要确保mod_php模块已启用;如果使用Nginx,则需要配置PHP-FPM以处理PHP请求。
更新和维护PHP版本
随着项目需求的变更,可能需要升级或降级PHP版本,使用Remi仓库可以轻松实现这一目标,要切换到PHP 8.0,可以先禁用当前版本的仓库,然后启用PHP 8.0的仓库:

sudo yum-config-manager --disable remi-php74 sudo yum-config-manager --enable remi-php80
然后执行yum update命令更新PHP及相关组件,需要注意的是,升级PHP可能会导致兼容性问题,建议在测试环境中先行验证。
常见问题及解决方案
在配置和使用PHP YUM源的过程中,可能会遇到一些问题,依赖冲突是最常见的问题之一,当多个仓库提供相同软件包的不同版本时,YUM可能会报错,可以通过yum命令的--skip-broken选项跳过冲突的包,或者使用yum的conflict和obsoletes功能手动解决依赖关系,另一个常见问题是仓库元数据过期,可以通过yum clean all和yum makecache命令清理并重新加载元数据。
相关问答FAQs
Q1: 如何在CentOS 7中同时安装多个版本的PHP?
A1: Remi仓库支持同时启用多个PHP版本,但需要通过不同的PHP-FPM端口或不同的配置文件来区分,可以同时安装PHP 7.4和PHP 8.0,并为每个版本配置独立的PHP-FPM池文件,监听不同的端口或套接字,在Web服务器配置中,根据不同的域名或路径指向对应的PHP-FPM服务即可实现多版本共存。
Q2: 升级PHP版本后,如何确保自定义的php.ini配置保留?
A2: 升级PHP时,系统通常会保留原有的php.ini文件,但建议在升级前备份该文件,升级完成后,检查新版本的php.ini是否引入了新的默认配置,手动调整需要修改的参数,某些扩展的配置文件可能位于/etc/php.d/目录下,升级后需要重新检查这些扩展的配置是否与新版PHP兼容。