You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否无需ppa:ondrej/php在Ubuntu20.04 Apache中安装PHP8.1并与7.4共存?

在Ubuntu 20.04 Apache服务器上无需ppa:ondrej/php同时运行PHP7.4与PHP8.1

可以实现,以下是两种安全可控的方案,均无需依赖第三方PPA:

方案1:手动编译PHP8.1(推荐,完全可控)

Ubuntu 20.04官方源仅提供PHP7.4,手动编译PHP8.1能避免第三方依赖,适合敏感生产环境:

  1. 安装编译依赖(均为官方源安全包):
sudo apt update
sudo apt install build-essential libxml2-dev libssl-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libzip-dev libonig-dev
  1. 下载并解压PHP8.1源码:
    选择PHP官方稳定版本(如8.1.26),下载到服务器:
wget https://www.php.net/distributions/php-8.1.26.tar.gz
tar -xzf php-8.1.26.tar.gz
cd php-8.1.26
  1. 配置编译参数(针对Apache FPM,多版本共存更灵活):
./configure --prefix=/usr/local/php8.1 \
            --enable-fpm \
            --with-fpm-user=www-data \
            --with-fpm-group=www-data \
            --with-openssl \
            --with-curl \
            --with-jpeg \
            --with-png \
            --with-freetype \
            --with-zip \
            --with-mysqli \
            --with-pdo-mysql \
            --enable-mbstring \
            --enable-xml

--prefix指定独立安装路径,避免与系统PHP7.4冲突。

  1. 编译并安装:
make -j$(nproc)
sudo make install
  1. 配置PHP8.1 FPM服务:
    复制默认配置文件并设置开机自启:
sudo cp /usr/local/php8.1/etc/php-fpm.conf.default /usr/local/php8.1/etc/php-fpm.conf
sudo cp /usr/local/php8.1/etc/php-fpm.d/www.conf.default /usr/local/php8.1/etc/php-fpm.d/www.conf
sudo cp sapi/fpm/php-fpm.service /etc/systemd/system/php8.1-fpm.service

sudo systemctl daemon-reload
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm
  1. Apache多版本PHP配置:
    通过虚拟主机配置为不同站点指定PHP版本:
  • 需使用PHP8.1的站点,在虚拟主机配置中添加:
<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost/"
</FilesMatch>
  • 保留PHP7.4的站点,使用默认配置:
<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost/"
</FilesMatch>

配置完成后重启Apache生效:sudo systemctl restart apache2

方案2:使用Ubuntu官方Backports(仅当可用时)

检查Ubuntu 20.04的backports源是否提供PHP8.1:

sudo apt update
sudo apt-cache policy php8.1

若backports中有PHP8.1,直接安装(官方源包安全有保障):

sudo apt install -t focal-backports php8.1 php8.1-fpm php8.1-cli php8.1-common php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml

后续Apache多版本配置同方案1。

关键注意事项

  • 手动编译完成后,可删除源码包及编译依赖(保留运行时依赖)以减少服务器冗余。
  • 生产环境优先使用FPM而非mod_php,性能更优且多版本管理更灵活。
  • 验证版本:创建info.php文件(内容<?php phpinfo(); ?>),访问后确认PHP版本正确。
  • 定期更新:手动编译版本需重新下载新版本源码编译;backports版本通过sudo apt update && sudo apt upgrade更新。

内容的提问来源于stack exchange,提问作者Fabri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 13:32:37