Apache2 在安装 5.6 时使用 PHP 5.4

Apache2 using PHP 5.4 while 5.6 is installed

我目前正在使用 Raspbian Wheezy 7.0。由于 PHP 5.6 在 wheezy 的 apt 存储库中不可用,我决定从源代码构建它。构建工作完美,我没有收到任何错误。

所以当我使用 php -v 它给了我以下输出。

PHP 5.6.10 (cli) (built: Sep 18 2016 09:23:21) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

好吧,我想。完美,所有内容都按应有的方式更新。

这就是问题所在。出于某种原因,当我在我的 apache2 服务器上使用 phpinfo() 时。它说我还在使用 5.4.45.

版本

我的第一个猜测是位于 /usr/lib/apache2/modules/ 中的模块 apache 使用的 libphp5.so 已经过时。但是,我不知道我刚安装的新 php 版本的 libphp5.so 模块在哪里。

如果有人能帮助我解决这个问题或为我指明正确的方向,那就太好了。我使用的是 Apache 版本 2.2.

如您在控制台中所见,php -vCLI 二进制文件。构建 PHP 时,您可以为不同的 SAPI(服务器 API)构建许多不同的二进制文件,其中之一是 CLI。 Apache2 Handler 或 mod_php 将是另一个。为了将 PHP 构建为 Apache httpd 模块,您需要确保在从源代码编译时包含 --with-apxs2 配置选项。这意味着 运行 ./configure --with-apxs2make; make install; 二进制文件之前。然后,您需要确保将新建的 libphp5.somod_php.so(无论您如何构建)直接加载到适当的位置,并从您的 Apaache httpd 配置加载它。新编译的二进制文件的存储位置取决于编译时配置选项和环境,但通常它们位于 $PREFIX/$HOME/bin 中。因此,例如,如果您编译 --with-prefix=/usr,您可能会得到 /usr/php/bin/libphp5.so,但通常二进制文件会为您移动 make install。您确实需要确保重新启动 httpd 才能加载新构建的二进制文件。

有关详细信息,请参阅 PHP manual on installation