默认情况下,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