CentOS 8 PHP 7.4 安装与卸载全攻略:三种方法对比详解

一、CentOS 8 系统准备

在开始安装PHP 7.4之前,首先需要确保CentOS 8系统已更新到最新状态。执行以下命令更新系统并安装必要的工具包:

# 切换到root用户
sudo su -

# 更新系统包
dnf update -y

# 安装常用工具
dnf install -y wget curl vim git epel-release

注意事项

  • 如果系统已安装其他版本的PHP,建议先卸载以避免冲突
  • 确保系统有足够的磁盘空间(至少2GB可用空间)
  • 建议关闭SELinux以提高兼容性:setenforce 0并编辑 /etc/selinux/configSELINUX=enforcing改为 SELINUX=disabled

二、方法一:使用Remi仓库安装PHP 7.4(推荐)

2.1 添加EPEL和Remi仓库

CentOS 8默认仓库中的PHP版本较旧,需要通过第三方仓库获取PHP 7.4:

# 安装EPEL仓库
dnf install epel-release -y

# 安装Remi仓库
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y

# 安装dnf工具
dnf install dnf-utils -y

2.2 启用PHP 7.4模块

# 重置PHP模块
dnf module reset php -y

# 启用PHP 7.4模块
dnf module enable php:remi-7.4 -y

2.3 安装PHP 7.4及常用扩展

# 安装PHP核心包
dnf install php php-cli php-common php-fpm -y

# 安装常用扩展
dnf install php-mysqlnd php-gd php-mbstring php-xml php-opcache php-curl php-zip php-json php-bcmath -y

2.4 验证安装

# 查看PHP版本
php -v

# 查看已安装的扩展
php -m

如果显示类似 PHP 7.4.x (cli)的输出,说明安装成功。

2.5 启动PHP-FPM服务

# 启动服务
systemctl start php-fpm

# 设置开机自启
systemctl enable php-fpm

# 查看服务状态
systemctl status php-fpm

三、方法二:使用SCL(Software Collections)安装PHP 7.4

3.1 安装SCL工具

# 安装SCL工具
dnf install centos-release-scl -y

# 安装PHP 7.4 SCL包
dnf install rh-php74 -y

3.2 启用PHP 7.4环境

# 启用PHP 7.4环境
scl enable rh-php74 bash

# 验证版本
php -v

3.3 安装扩展

# 安装常用扩展
dnf install rh-php74-php-mysqlnd rh-php74-php-gd rh-php74-php-mbstring rh-php74-php-xml rh-php74-php-opcache -y

3.4 配置环境变量(可选)

为了让PHP 7.4在系统启动时自动启用,可以编辑环境变量:

# 编辑bash配置文件
vim ~/.bashrc

# 添加以下内容
source scl_source enable rh-php74

# 使配置生效
source ~/.bashrc

四、方法三:源码编译安装PHP 7.4

4.1 安装编译依赖

# 安装开发工具组
dnf groupinstall "Development Tools" -y

# 安装依赖库
dnf install libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel libwebp-devel libXpm-devel freetype-devel oniguruma-devel libzip-devel sqlite-devel -y

4.2 下载PHP源码

# 创建源码目录
mkdir -p /usr/local/src
cd /usr/local/src

# 下载PHP 7.4源码
wget https://www.php.net/distributions/php-7.4.33.tar.gz

# 解压源码
tar -zxvf php-7.4.33.tar.gz
cd php-7.4.33

4.3 配置编译参数

# 配置编译选项
./configure --prefix=/usr/local/php74 \
--with-config-file-path=/usr/local/php74/etc \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg \
--with-png \
--with-webp \
--with-xpm \
--with-freetype \
--with-bz2 \
--with-libzip \
--with-onig \
--enable-mbstring \
--enable-sockets \
--enable-opcache \
--enable-zip \
--with-pear

4.4 编译并安装

# 编译(根据CPU核心数调整,4核示例)
make -j4

# 安装
make install

4.5 配置PHP

# 复制配置文件
cp php.ini-production /usr/local/php74/etc/php.ini
cp sapi/fpm/php-fpm.conf /usr/local/php74/etc/
cp sapi/fpm/www.conf /usr/local/php74/etc/php-fpm.d/

# 创建软链接
ln -s /usr/local/php74/bin/php /usr/bin/php74
ln -s /usr/local/php74/bin/phpize /usr/bin/phpize74
ln -s /usr/local/php74/bin/php-config /usr/bin/php-config74

4.6 配置PHP-FPM服务

# 复制服务文件
cp sapi/fpm/php-fpm.service /etc/systemd/system/php74-fpm.service

# 启动服务
systemctl start php74-fpm
systemctl enable php74-fpm

五、三种安装方法对比

方法 优点 缺点 适用场景
Remi仓库 安装简单、依赖自动解决、易于管理 版本更新受仓库维护影响 生产环境、快速部署
SCL 多版本共存、易于切换 需要手动管理环境变量 开发环境、测试多版本
源码编译 高度定制化、性能优化 安装复杂、依赖手动解决 特殊需求、性能优化

六、删除PHP 7.4的三种方法

6.1 方法一:删除Remi仓库安装的PHP

# 查看已安装的PHP包
rpm -qa | grep php

# 卸载PHP及相关包
dnf remove php php-cli php-common php-fpm php-mysqlnd php-gd php-mbstring php-xml php-opcache php-curl php-zip php-json php-bcmath -y

# 删除配置文件
rm -rf /etc/php*
rm -rf /var/lib/php
rm -rf /var/log/php*

# 清理残留包
dnf autoremove -y
dnf clean all

# 验证删除
php -v

6.2 方法二:删除SCL安装的PHP

# 查看已安装的SCL包
dnf list installed | grep rh-php74

# 卸载PHP SCL包
dnf remove rh-php74 rh-php74-php-mysqlnd rh-php74-php-gd rh-php74-php-mbstring rh-php74-php-xml rh-php74-php-opcache -y

# 删除SCL配置
rm -rf /opt/rh/rh-php74
rm -rf /etc/opt/rh/rh-php74

# 清理环境变量
sed -i '/rh-php74/d' ~/.bashrc
sed -i '/rh-php74/d' /etc/profile.d/scl.sh

# 重新加载配置
source ~/.bashrc
source /etc/profile

# 验证删除
php -v

6.3 方法三:删除源码编译安装的PHP

# 停止PHP-FPM服务
systemctl stop php74-fpm
systemctl disable php74-fpm

# 删除服务文件
rm -f /etc/systemd/system/php74-fpm.service

# 删除安装目录
rm -rf /usr/local/php74

# 删除软链接
rm -f /usr/bin/php74
rm -f /usr/bin/phpize74
rm -f /usr/bin/php-config74

# 删除源码目录
rm -rf /usr/local/src/php-7.4.33

# 清理环境变量
sed -i '/php74/d' ~/.bashrc
sed -i '/php74/d' /etc/profile

# 重新加载配置
source ~/.bashrc
source /etc/profile

# 验证删除
which php74

七、常见问题与解决方案

7.1 PHP-FPM启动失败

问题systemctl status php-fpm显示失败

解决方案

# 检查配置文件语法
php-fpm -t

# 查看错误日志
tail -f /var/log/php-fpm/error.log

# 常见错误:端口冲突
netstat -tlnp | grep 9000
# 如果端口被占用,修改 /etc/php-fpm.d/www.conf 中的 listen 参数

7.2 扩展未加载

问题php -m不显示已安装的扩展

解决方案

# 查看扩展配置文件
ls /etc/php.d/

# 检查扩展是否启用
php --ini

# 手动创建扩展配置
echo "extension=gd.so" > /etc/php.d/gd.ini
systemctl restart php-fpm

7.3 内存限制问题

问题:PHP脚本执行时提示内存不足

解决方案

# 编辑php.ini
vim /etc/php.ini

# 修改内存限制
memory_limit = 256M

# 重启PHP-FPM
systemctl restart php-fpm

八、性能优化建议

8.1 PHP-FPM配置优化

编辑 /etc/php-fpm.d/www.conf

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

8.2 OPcache配置优化

编辑 /etc/php.d/opcache.ini

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.fast_shutdown=1

8.3 PHP配置优化

编辑 /etc/php.ini

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300
max_input_vars = 3000

九、安全加固

9.1 禁用危险函数

编辑 /etc/php.ini

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

9.2 文件权限设置

# 设置PHP文件权限
chown -R nginx:nginx /var/www/html
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;

# 设置session目录权限
chown -R nginx:nginx /var/lib/php/session
chmod 755 /var/lib/php/session

9.3 隐藏PHP版本信息

编辑 /etc/php.ini

expose_php = Off

十、总结

通过本文介绍的三种方法,您可以根据实际需求选择合适的PHP 7.4安装方式。Remi仓库安装适合生产环境快速部署,SCL安装适合开发环境多版本测试,源码编译安装适合特殊定制需求。无论选择哪种方法,都建议在生产环境前进行充分测试,确保系统稳定运行。

关键注意事项

  1. 安装前备份重要数据
  2. 根据实际需求选择安装方法
  3. 安装后进行性能和安全配置
  4. 定期更新系统和PHP版本
  5. 监控系统日志,及时发现并解决问题

通过合理的安装和配置,PHP 7.4可以在CentOS 8上稳定运行,为Web应用提供强大的后端支持。

版权声明:本文为JienDa博主的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
若内容若侵犯到您的权益,请发送邮件至:platform_service@jienda.com我们将第一时间处理!
所有资源仅限于参考和学习,版权归JienDa作者所有,更多请访问JienDa首页。

给TA赞助
共{{data.count}}人
人已赞助
后端

CentOS 7 完整部署指南:Nginx + PHP + MySQL 环境搭建

2025-12-24 16:42:00

后端

VSCode + PHPStudy Pro:PHP开发环境配置全攻略

2025-12-24 16:50:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索