在使用 ISPConfig 管理服务器时,默认情况下系统只包含发行版自带的 PHP 版本。本教程将详细介绍如何在 Debian 11 或 Debian 12 服务器上,通过添加 SURY 第三方仓库,安装 PHP 5.6 至 PHP 8.4 的多个版本,并在 ISPConfig 中灵活切换 PHP-FPM 和 FastCGI 模式,适用于 Apache 和 Nginx 服务器。
一、前置说明
本教程通过添加 SURY 第三方仓库(packages.sury.org)来安装各版本 PHP 包。请注意,更新此仓库后,OpenSSL 等基础包也会随之升级,卸载后无法恢复,因此安装后请勿移除该仓库来源。
注意事项:PHP-FPM 可同时用于 Apache 和 Nginx 服务器,而 FastCGI 模式仅适用于 Apache 服务器。
二、添加 SURY 仓库
首先安装必要的依赖包:
apt-get install -y apt-transport-https lsb-release ca-certificates
添加仓库签名密钥:
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg >/dev/null 2>&1
添加仓库配置文件:
echo "deb https://packages.sury.org/php/ $(lsb_release -c -s) main" > /etc/apt/sources.list.d/php.list
更新软件包列表,并升级已有软件包:
apt-get update apt-get upgrade
三、安装各版本 PHP
您无需安装以下所有版本,选择需要的版本即可。以下命令中的软件包列表包含各版本的 CLI、CGI、FPM、常用扩展和 OPcache。
3.1 安装 PHP 5.6
apt-get install php5.6 php5.6-cli php5.6-cgi php5.6-fpm php5.6-gd php5.6-mysql php5.6-imap php5.6-curl php5.6-intl php5.6-pspell php5.6-recode php5.6-sqlite3 php5.6-tidy php5.6-xmlrpc php5.6-xsl php5.6-zip php5.6-mbstring php5.6-soap php5.6-opcache libicu65 php5.6-common php5.6-json php5.6-readline php5.6-xml
3.2 安装 PHP 7.0
apt-get install php7.0 php7.0-cli php7.0-cgi php7.0-fpm php7.0-gd php7.0-mysql php7.0-imap php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-zip php7.0-mbstring php7.0-soap php7.0-opcache php7.0-common php7.0-json php7.0-readline php7.0-xml
3.3 安装 PHP 7.1
apt-get install php7.1 php7.1-cli php7.1-cgi php7.1-fpm php7.1-gd php7.1-mysql php7.1-imap php7.1-curl php7.1-intl php7.1-pspell php7.1-recode php7.1-sqlite3 php7.1-tidy php7.1-xmlrpc php7.1-xsl php7.1-zip php7.1-mbstring php7.1-soap php7.1-opcache php7.1-common php7.1-json php7.1-readline php7.1-xml
3.4 安装 PHP 7.2
apt-get install php7.2 php7.2-cli php7.2-cgi php7.2-fpm php7.2-gd php7.2-mysql php7.2-imap php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl php7.2-zip php7.2-mbstring php7.2-soap php7.2-opcache php7.2-common php7.2-json php7.2-readline php7.2-xml
3.5 安装 PHP 7.3
apt-get install php7.3 php7.3-cli php7.3-cgi php7.3-fpm php7.3-gd php7.3-mysql php7.3-imap php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl php7.3-zip php7.3-mbstring php7.3-soap php7.3-opcache php7.3-common php7.3-json php7.3-readline php7.3-xml
3.6 安装 PHP 7.4
apt-get install php7.4 php7.4-cli php7.4-cgi php7.4-fpm php7.4-gd php7.4-mysql php7.4-imap php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7.4-xmlrpc php7.4-xsl php7.4-zip php7.4-mbstring php7.4-soap php7.4-opcache php7.4-common php7.4-json php7.4-readline php7.4-xml
3.7 安装 PHP 8.0
apt-get install php8.0 php8.0-cli php8.0-cgi php8.0-fpm php8.0-gd php8.0-mysql php8.0-imap php8.0-curl php8.0-intl php8.0-pspell php8.0-sqlite3 php8.0-tidy php8.0-xsl php8.0-zip php8.0-mbstring php8.0-soap php8.0-opcache php8.0-common php8.0-readline php8.0-xml
3.8 安装 PHP 8.1
apt-get install php8.1 php8.1-cli php8.1-cgi php8.1-fpm php8.1-gd php8.1-mysql php8.1-imap php8.1-curl php8.1-intl php8.1-pspell php8.1-sqlite3 php8.1-tidy php8.1-xsl php8.1-zip php8.1-mbstring php8.1-soap php8.1-opcache php8.1-common php8.1-readline php8.1-xml
3.9 安装 PHP 8.2
apt-get install php8.2 php8.2-cli php8.2-cgi php8.2-fpm php8.2-gd php8.2-mysql php8.2-imap php8.2-curl php8.2-intl php8.2-pspell php8.2-sqlite3 php8.2-tidy php8.2-xsl php8.2-zip php8.2-mbstring php8.2-soap php8.2-opcache php8.2-common php8.2-readline php8.2-xml
3.10 安装 PHP 8.3
apt-get install php8.3 php8.3-cli php8.3-cgi php8.3-fpm php8.3-gd php8.3-mysql php8.3-imap php8.3-curl php8.3-intl php8.3-pspell php8.3-sqlite3 php8.3-tidy php8.3-xsl php8.3-zip php8.3-mbstring php8.3-soap php8.3-opcache php8.3-common php8.3-readline php8.3-xml
3.11 安装 PHP 8.4
apt-get install php8.4 php8.4-cli php8.4-cgi php8.4-fpm php8.4-gd php8.4-mysql php8.4-imap php8.4-curl php8.4-intl php8.4-pspell php8.4-sqlite3 php8.4-tidy php8.4-xsl php8.4-zip php8.4-mbstring php8.4-soap php8.4-opcache php8.4-common php8.4-readline php8.4-xml
四、恢复系统默认 PHP 版本
安装后需将系统默认 PHP 恢复为原始版本,运行以下命令逐个配置:
update-alternatives --config php update-alternatives --config php-cgi update-alternatives --config php-fpm.sock
版本选择参考:Debian 12 建议选择 PHP 8.2;Debian 11 建议选择 PHP 7.4;Debian 10 建议选择 PHP 7.3。
五、在 ISPConfig 中添加 PHP 版本
在 ISPConfig 3 管理界面中,依次进入 系统 → Additional PHP Versions → Add new PHP version,按以下信息配置各版本。
5.1 各发行版默认 PHP 版本
首先添加服务器已预装的默认 PHP 版本:Debian 10 对应 PHP 7.3;Debian 11 对应 PHP 7.4;Debian 12 对应 PHP 8.2。
5.2 各版本配置路径(以 PHP 5.6 为例)
Fast-CGI 模式:
- PHP FastCGI 二进制路径:
/usr/bin/php-cgi5.6 - php.ini 目录路径:
/etc/php/5.6/cgi/
PHP-FPM 模式:
- PHP-FPM 初始化脚本:
php5.6-fpm - php.ini 目录路径:
/etc/php/5.6/fpm/ - PHP-FPM 池配置目录:
/etc/php/5.6/fpm/pool.d/
PHP-CLI 模式(用于定时任务):
- PHP CLI 二进制路径:
/usr/bin/php5.6 - PHP Jailkit 配置段:
php5_6
5.3 各 PHP 版本配置路径速查表
以下为各 PHP 版本的 ISPConfig 配置路径,将对应版本的数字替换即可:
- PHP 7.0:FastCGI 二进制
/usr/bin/php-cgi7.0,php.ini 目录/etc/php/7.0/cgi/,FPM 脚本php7.0-fpm,FPM 目录/etc/php/7.0/fpm/,CLI 路径/usr/bin/php7.0,Jailkitphp7_0 - PHP 7.1:
/usr/bin/php-cgi7.1,/etc/php/7.1/cgi/,php7.1-fpm,/etc/php/7.1/fpm/,/usr/bin/php7.1,php7_1 - PHP 7.2:
/usr/bin/php-cgi7.2,/etc/php/7.2/cgi/,php7.2-fpm,/etc/php/7.2/fpm/,/usr/bin/php7.2,php7_2 - PHP 7.3:
/usr/bin/php-cgi7.3,/etc/php/7.3/cgi/,php7.3-fpm,/etc/php/7.3/fpm/,/usr/bin/php7.3,php7_3 - PHP 7.4:
/usr/bin/php-cgi7.4,/etc/php/7.4/cgi/,php7.4-fpm,/etc/php/7.4/fpm/,/usr/bin/php7.4,php7_4 - PHP 8.0:
/usr/bin/php-cgi8.0,/etc/php/8.0/cgi/,php8.0-fpm,/etc/php/8.0/fpm/,/usr/bin/php8.0,php8_0 - PHP 8.1:
/usr/bin/php-cgi8.1,/etc/php/8.1/cgi/,php8.1-fpm,/etc/php/8.1/fpm/,/usr/bin/php8.1,php8_1 - PHP 8.2:
/usr/bin/php-cgi8.2,/etc/php/8.2/cgi/,php8.2-fpm,/etc/php/8.2/fpm/,/usr/bin/php8.2,php8_2 - PHP 8.3:
/usr/bin/php-cgi8.3,/etc/php/8.3/cgi/,php8.3-fpm,/etc/php/8.3/fpm/,/usr/bin/php8.3,php8_3 - PHP 8.4:
/usr/bin/php-cgi8.4,/etc/php/8.4/cgi/,php8.4-fpm,/etc/php/8.4/fpm/,/usr/bin/php8.4,php8_4
六、总结
通过本教程,您已在 Debian 11 或 Debian 12 服务器上成功配置了从 PHP 5.6 到 PHP 8.4 的多个版本。安装完成后,即可在 ISPConfig 管理面板中为不同网站灵活选择所需的 PHP 版本,分别在 PHP-FPM 或 FastCGI 模式下运行。立海世纪(www.leehay.com)建议生产环境中谨慎评估各 PHP 版本的生命周期状态,优先使用安全支持期限内的稳定版本。如有更多 ISPConfig 配置疑问,欢迎访问立海世纪官网获取技术支持。