在 Alibaba Cloud Linux 3.2104(基于 CentOS/RHEL 8/9 体系)上安装 PHP 7.4,不建议直接使用默认的 yum install php命令,因为默认仓库通常提供的是 PHP 8.0+。
以下是 最推荐、最稳定 的安装方法:使用 Remi 源 或 Alibaba Cloud Linux 官方兼容的 EPEL + Remi 源。
✅ 推荐方案:使用 Remi Repository(社区广泛验证)
Remi 是 RHEL/CentOS 系统上安装特定版本 PHP 的标准方式。
步骤 1:启用 EPEL 和 Remi 源
# 安装 EPEL 源
sudo dnf install epel-release -y
# 安装 Remi 源(需要下载 remi-release RPM)
# 注意:Alibaba Cloud Linux 3 兼容 RHEL 8,所以使用 el8 版本
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
⚠️ 如果上述 URL 无法访问,可尝试从 Remi 官网 手动下载对应版本的
.rpm文件上传后安装。
步骤 2:重置并启用 PHP 7.4 Module Stream
Alibaba Cloud Linux 3 使用 dnf module 管理多版本软件。
# 列出可用的 PHP 模块流
dnf module list php
# 启用 PHP 7.4 模块(如果存在)
# 如果上面没有直接显示 php:remi-7.4,则可能需要通过以下方式启用:
sudo dnf module enable php:remi-7.4 -y
❗ 注意:在某些新系统中,Remi 可能不直接作为
module提供,而是作为普通包。如果dnf module enable失败,请跳到 步骤 3a。
步骤 3a:如果未启用模块,直接安装 PHP 7.4 包
# 先禁用默认 PHP 模块(如果已启用)
sudo dnf module disable php -y
# 安装 PHP 7.4 及其常用扩展
sudo dnf install php php-fpm php-mysqlnd php-pdo php-gd php-mbstring php-xml php-json php-curl php-zip php-opcache -y
步骤 3b:确保启动 PHP-FPM(Web 服务器通常配合使用)
# 启动 PHP-FPM
sudo systemctl start php-fpm
# 设置开机自启
sudo systemctl enable php-fpm
# 检查状态
systemctl status php-fpm
🔄 备选方案:从源码编译安装(最灵活,但复杂)
如果 Remi 源不可用或不兼容,可以手动编译。
1. 安装依赖
sudo dnf groupinstall "Development Tools" -y
sudo dnf install libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel freetype-devel curl-devel sqlite-devel oniguruma-devel readline-devel -y
2. 下载 PHP 7.4 源码
cd /usr/src
sudo wget https://www.php.net/distributions/php-7.4.33.tar.gz
sudo tar xzf php-7.4.33.tar.gz
cd php-7.4.33
3. 配置与编译
./configure
--prefix=/usr/local/php
--with-config-file-path=/usr/local/php/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-dir
--with-png-dir
--with-freetype-dir
--with-pear
--enable-mbstring
--enable-xml
--enable-sockets
--enable-zip
--enable-opcache
make && sudo make install
4. 配置 PHP-FPM 和 PHP.ini
sudo cp php.ini-production /usr/local/php/etc/php.ini
sudo cp sapi/fpm/php-fpm.service /etc/systemd/system/
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
# 编辑 www.conf,确保 user/group 为 nginx 或 apache
sudo vi /usr/local/php/etc/php-fpm.d/www.conf
# 修改:user = nginx, group = nginx
# 重新加载 systemd
sudo systemctl daemon-reload
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
🔍 验证安装
php -v
# 应输出:PHP 7.4.x (cli) ...
php-fpm -v
# 应输出:PHP 7.4.x (fpm-fcgi) ...
💡 重要提示
- 阿里云官方建议:Alibaba Cloud Linux 3 更推荐使用其自带的
alinux3仓库中的高版本 PHP(如 8.0/8.1)。如果你必须用 PHP 7.4,请确保你的应用兼容性良好。 - 安全更新:PHP 7.4 已于 2022 年 11 月结束官方支持,不再接收安全补丁。在生产环境中强烈建议升级到 PHP 8.0+。
- Web 服务器配置:
- 如果使用 Nginx,需在
nginx.conf中配置fastcgi_pass unix:/run/php-fpm/www.sock;或类似路径。 - 如果使用 Apache,需启用
mod_proxy_fcgi并指向 PHP-FPM socket。
- 如果使用 Nginx,需在
✅ 总结:最快路径
# 一键执行(假设网络畅通且允许外部源)
sudo dnf install epel-release -y
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
sudo dnf module disable php -y
sudo dnf install php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl php-zip php-opcache -y
sudo systemctl enable --now php-fpm
如遇权限或网络问题,请考虑使用 源码编译 或升级至 PHP 8.0+。
PHPWP博客