Linux系统下双PHP版本安装指南
linux 安装两个php

首页 2024-12-13 18:08:50



Linux 上安装两个 PHP 版本:全面指南 在现代 Web 开发中,PHP 是一种广泛使用的服务器端脚本语言,其灵活性和丰富的社区支持使得它成为许多项目的首选

    然而,有时候你可能需要在同一台服务器上运行多个 PHP 版本,以满足不同项目的需求

    例如,一个老项目可能依赖 PHP 5.6,而新项目则要求 PHP 7.4 或更高版本

    在 Linux 系统上实现这一目标虽然具有一定的挑战性,但完全可行

    本文将详细介绍如何在 Linux 系统(以 Ubuntu 为例)上安装和管理多个 PHP 版本

     一、准备工作 在开始之前,请确保你的系统已经更新到最新版本,并且拥有 root 权限或通过`sudo` 命令提升权限的能力

    以下是更新系统的步骤: sudo apt update sudo apt upgrade -y 二、安装 PHP 5.6 由于 Ubuntu 官方仓库不再直接提供 PHP 5.6 的包,我们需要从 Ondřej Sury 提供的 PPA(Personal Package Archive)中安装

    PPA 提供了广泛的 PHP 版本,包括已经过时的版本

     1.添加 PPA sudo add-apt-repository ppa:ondrej/php -y sudo apt update 2.安装 PHP 5.6 sudo apt install php5.6 php5.6-cli php5.6-common php5.6-curl php5.6-dev php5.6-fpm php5.6-gd php5.6-json php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-opcache php5.6-readline php5.6-sqlite3 php5.6-xml php5.6-zip -y 这条命令会安装 PHP 5.6 及其一系列常用扩展

    根据你的需求,可以调整安装的扩展列表

     3.验证安装 通过运行以下命令来确认 PHP 5.6 是否正确安装: php5.6 -v 你应该会看到类似 `PHP 5.6.xx-xx+ubuntu18.04.1+deb.sury.org+1 (cli)(built: ...)` 的输出

     三、安装 PHP 7.4 接下来,我们安装 PHP 7.4

    由于这是较新的版本,它通常已经包含在 Ubuntu 的默认仓库中,或者通过 Ondřej Sury 的 PPA 提供

     1.安装 PHP 7.4 sudo apt install php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-dev php7.4-fpm php7.4-gd php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-sqlite3 php7.4-xml php7.4-zip -y 同样,根据你的需求调整扩展列表

     2.验证安装 php7.4 -v 你应该会看到类似 `PHP 7.4.xx (cli)(built: ...)` 的输出

     四、配置多版本 PHP 并行运行 现在我们已经安装了 PHP 5.6 和 PHP 7.4,接下来需要配置它们以便能够并行运行

     1.管理 PHP-FPM PHP-FPM(FastCGI Process Manager)是处理 PHP 请求的高效方式

    为了区分不同版本的 PHP-FPM,我们需要为它们设置不同的监听端口和配置文件

     编辑 PHP 5.6 的 FPM 配置 sudo cp /etc/php/5.6/fpm/pool.d/www.conf /etc/php/5.6/fpm/pool.d/www56.conf sudo nano /etc/php/5.6/fpm/pool.d/www56.conf 修改以下部分: listen = 127.0.0.1:9005 将监听端口改为 9005 或其他未被占用的端口

     编辑 PHP 7.4 的 FPM 配置 sudo cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/www74.conf sudo nano /etc/php/7.4/fpm/pool.d/www74.conf 修改以下部分: listen = 127.0.0.1:9006 将监听端口改为 9006 或其他未被占用的端口

     2.启动并启用服务 确保两个版本的 PHP-FPM 服务都在运行: sudo systemctl start php5.6-fpm sudo systemctl enable php5.6-fpm sudo systemctl start php7.4-fpm sudo systemctl enable php7.4-fpm 3.配置 Nginx 或 Apache 根据你的 Web 服务器类型,配置不同的 PHP 版本处理请求

    这里以 Nginx 为例

     Nginx 配置示例 编辑你的 Nginx 配置文件,为不同的站点指定不同的 PHP-FPM 端口

    例如: server { listen 80; server_name oldproject.com; root /var/www/oldproject; index index.php index.html index.htm; location/ { try_files $uri $uri/ =404; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass 127.0.0.1:9005; # 使用 PHP 5.6 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; incl