【问题标题】:Installing multiple PHP versions on Ubuntu Server在 Ubuntu 服务器上安装多个 PHP 版本
【发布时间】:2016-03-23 02:15:45
【问题描述】:

初始情况:

我有一个 Ubuntu 12.04 服务器托管 3 个网站(使用 Apache 2.2.22)

如何只为其中一个网站安装不同的 PHP 版本? (其他两个应该保持原样)

当前 PHP 版本:PHP 5.3.10 所需的 PHP 版本:PHP 5.6.16

到目前为止我所做/理解的事情:

我已经试用过 PHPBrew: http://phpbrew.github.io/phpbrew/

我设法为命令行安装了 PHP 5.6.16(使用 PHPBrew),但 Apache 仍然使用 PHP 5.3.10。

我知道我最终应该得到一个 *.so 文件,我需要将它放在 /etc/apache2/httpd.conf 文件中。 (此文件目前为空) (通过 LoadModule...)

但是:我没有任何 *.so 文件。 我是这样安装 PHPBrew 的:

phpbrew install 5.6.16 +default +mysql +mcrypt

我想我应该添加 +apxs2=/usr/bin/apxs2 但如果我这样做我会收到错误“异常:apxs 二进制文件不可执行:/usr/bin/apxs2”。

我该如何解决这个问题?

或者有没有更好的方法在一台服务器上运行不同的 PHP 版本? 最好的方法是什么?

【问题讨论】:

  • 为了修复“apxs 二进制文件不可执行”,我设法执行了 sudo apt-get install apache2-dev。我现在有了 php5.6.16.so 文件(使用 +apxs2=/usr/bin/apxs2 重新安装后)。在 etc/apache2/mods-available/php5.load 中是新的 php5.6.16.so 文件,重启 apache2 后它就可以工作了。剩下的最后一个问题是:是否可以为每个虚拟主机创建一个 php5.load 文件?
  • 当我尝试时,我得到了这个:以下信息可能有助于解决这种情况:以下包具有未满足的依赖关系:apache2-dev:依赖:libapr1-dev 但它不会已安装 取决于:libaprutil1-dev 但不会安装 E:无法纠正问题,您持有损坏的软件包。
  • 看来那个包已经不可用了。
  • 您确定没有 .so 文件吗?你检查过 /usr/lib/apache2/modules/ 吗?

标签: php ubuntu apache2


【解决方案1】:

仔细检查.so文件,它们应该在`/usr/lib/apache2/modules/``

然后您应该编辑您的/etc/apache2/mods-enabled/php5.load 并指定与您的安装相对应的.so 文件,在您的情况下:

LoadModule php5_module /usr/lib/apache2/modules/libphp5.6.16.so

在同一机器上运行多个 PHP 版本的替代解决方案是使用 Docker,请参阅我在另一个线程中的答案:Multiple PHP versions on the same box

请注意,使用此解决方案,不同的 PHP 版本将在不同的端口上可用。

【讨论】:

    猜你喜欢
    • 2015-09-08
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    相关资源
    最近更新 更多