【发布时间】: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/ 吗?