在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
。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复