Apache2使用PHP 5.4,而安装5.6


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版本。

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

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

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