Alibaba Cloud Linux 3.2104 安装php7.4?

在 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) ...

💡 重要提示

  1. 阿里云官方建议:Alibaba Cloud Linux 3 更推荐使用其自带的 alinux3 仓库中的高版本 PHP(如 8.0/8.1)。如果你必须用 PHP 7.4,请确保你的应用兼容性良好。
  2. 安全更新:PHP 7.4 已于 2022 年 11 月结束官方支持,不再接收安全补丁。在生产环境中强烈建议升级到 PHP 8.0+。
  3. Web 服务器配置:
    • 如果使用 Nginx,需在 nginx.conf 中配置 fastcgi_pass unix:/run/php-fpm/www.sock; 或类似路径。
    • 如果使用 Apache,需启用 mod_proxy_fcgi 并指向 PHP-FPM socket。

✅ 总结:最快路径

# 一键执行(假设网络畅通且允许外部源)
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+。