我有一个旧的 PHP 工具正在运行,它不容易适应 PHP7。所以我必须在服务器上运行 PHP5。
如何在 Ubuntu Bionic Beaver 上安装 PHP5?
答案1
不建议继续使用 PHP 5.6,其自 2018 年 12 月 31 日起即为 EOL!
但是你可以从 PPA 安装 PHP5.6:
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt install php5.6
答案2
您可能需要考虑在容器(例如 Docker)中运行 PHP 5 工具。PHP 5 即将结束使用寿命,如果您在同一台计算机上使用 PHP 7,可能会遇到冲突。
有多个适用于 PHP 5 的官方 Docker 镜像:https://hub.docker.com/_/php/
答案3
正如其他答案所提到的,有几种选择:
- 使用 Ondrej/php PPA repo 安装 PHP 5.6:
像这样:
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt install php5.6
使用 Docker 或 LXD 容器系统构建一个小型 PHP 5 环境,在 Ubuntu 18.04 中运行它,并将所有需要 PHP 5 的 Web 请求转发给它。我听说你实际上可以将整个 Ubuntu 12.04 或 14.04 的 VM 转换为带有 lxd-p2c 的容器,并在 Ubuntu 18.04 中运行它,就像他们在本演示文稿中所做的那样:“将物理系统转变为容器 迁移到系统容器”
您还可以设置第二台服务器(或虚拟机),只需在 18.04 主系统上安装 Apache 即可代理需要 PHP 5 的站点的请求。该系统不需要通过 Web 访问,因为 18.04 系统将暴露给外界。如果您需要 register_globals,您可以使用 Ubuntu 12.04 和不再受官方支持的 PHP 5.3.2,或者使用 Ubuntu 14.04 和 PHP 5.5.9,并在所有文件的开头添加代码片段来模拟 register_globals。我忘记了代码片段,但您可以查找一下。以下是相关的配置文件,它们应该可以用于将 SSL 站点从一台服务器代理到另一台服务器,假设您的其余配置正确并且启用了所需的模式:
在 Ubuntu 18.04 Apache 服务器上在 192.168.1.2 执行代理:
#requires mod_remoteip and mod_proxy
RemoteIPHeader X-Forwarded-For
TrustedProxy 192.168.1.2
SSLProxyEngine On
ProxyPreserveHost On
ProxyPass / https://example.org/ retry=0
ProxyPassReverse https://example.org/ retry=0
在 192.168.1.3 代理的 Ubuntu 14.04 服务器上:
#requires mod_proxy
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 192.168.1.2
RemoteIPInternalProxy 192.168.1.1 #assuming your router IP is 1.1