如何在 Virtualmin 6、Debian 9 中安装多个 PHP 版本

如何在 Virtualmin 6、Debian 9 中安装多个 PHP 版本

默认情况下,Debian 9 附带 PHP 7,但我也对旧网站的 PHP 5 感兴趣。

我尝试遵循/适应本指南(不是特定于 virtualmin 的)。

但这是我收到的错误(因为 Virtualmin 检测到错误的 php 二进制文件):

[Tue Jan 22 15:08:58.713966 2019] [fcgid:warn] [pid 1023] (104)Connection reset by peer: [client MYIP:62256] mod_fcgid: error reading data from FastCGI server
[Tue Jan 22 15:08:58.714041 2019] [core:error] [pid 1023] [client MYIP:62256] End of script output before headers: test.php

答案1

因此,首先您需要添加 PHP 5.6 的存储库,“这里是直接来自 Debian PHP 软件包维护者 Ondřej Surý 的软件包。”

$ apt-get install apt-transport-https
$ curl https://packages.sury.org/php/apt.gpg | apt-key add -
$ echo 'deb https://packages.sury.org/php/ stretch main' > /etc/apt/sources.list.d/deb.sury.org.list
$ apt-get update

现在关键是安装正确的php包,在virtualmin运行默认FCGId模式的情况下,它是:

$ apt-get install php5.6-cgi

我还想要 mysql/i、gd 和 xml 支持,因此:

 $ apt-get install php5.6-mysql php5.6-gd php5.6-xml

这些也会安装一些依赖项。

最后:

service apache2 restart

现在您应该能够运行“系统设置”->“重新检查配置”并查找应显示如下内容的行:

The following PHP versions are available : 5.6.40 (/usr/bin/php-cgi5.6), 7.0.33 (/usr/bin/php-cgi7.0)

确保两个 bin 都是 -cgi 变体,这就是我的原因,因为我检测到没有 -cgi 位的普通 php5.6。

现在您应该可以转到“服务器配置”->“PHP 版本”并选择我们安装的新(旧)版本。

现在还要检查“服务”中是否有一个新选项来配置新的 5.6 php.ini,否则(例如,它是现有服务器)您需要转到“服务器配置”->“网站选项”并从FCGId 到 CGI 包装器并再次返回 FCGId,这将在新部分中生成 php.ini。

现在,最后您可能想注释掉我们之前添加的新 apt 源,以阻止您的“常规 debian”php 软件包从

#deb https://packages.sury.org/php/ stretch main

相关内容