默认情况下,Debian 9 附带 PHP 7,但我对用于旧网站的 PHP 5 也很感兴趣。
我尝试遵循/改编本指南(不是特定于 virtualmin) https://pehapkari.cz/blog/2017/03/27/multiple-php-versions-the-easy-way/
但这是我收到的错误(因为 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