编译了一个 PHP,如何在 Apache 中加载它?

编译了一个 PHP,如何在 Apache 中加载它?

我在 Ubuntu16 上从源代码编译并安装了 PHP7.1.7。我遵循了以下教程: http://www.shaunfreeman.name/installing-php-7-on-ubuntu-16-04/

我跟踪到了他在 modules.ini 文件中添加一些内容的地方。

现在,Apache 没有加载任何 php,因此我安装了

sudo apt-get install libapache2-mod-php

现在 apache 加载了 PHP,但版本不同,并且没有我编译时使用的 PDO 驱动程序。我使用 phpinfo() 检查了这一点

Apache 显示 7.0.18,而我安装的是 7.1.7。我不知道第二个版本是如何安装的(也许是 libapache2-mod-php ?)

另外,/usr/bin 中的 php 可执行文件是 7.0.18,所以我删除了它并创建了到我的 7.1.7 的符号链接,因此至少在终端中 php 可以使用正确的版本。

我需要让 Apache 能够与这个新版本一起工作。

尝试过的事情:

  • 许多其他答案(例如同一问题上,有人说我只需要在 apache2 配置中加载不同的模块。但我在系统上找不到与 php7.1.7 相关的模块。我确实有一个 php7.0,我相信这就是 apache 正在加载的。

答案1

有两种方法可以从 apache 执行 php 文件:使用模块(安装 mod_php 包后会提供给您)。如果您想这样做,您需要编辑 httpd.conf 文件并加载正确的模块。如果您希望编译版本减少混淆,我建议卸载打包版本。

通常,php 编译目录中“make install”的输出将为您提供有关将模块添加到 apache 配置的说明。

另一方面,您引用的页面正在讨论使用 PHP 的第二种方法:作为外部进程(在本例中,使用 FPM)。您需要配置 apache 才能与此外部进程通信。

在您最喜欢的浏览器中搜索“apache php fpm”应该会出现一些关于所需的 apache 配置的教程(注意:您还将看到 nginx 的配置示例;apache 和 nginx 的配置文件不能互换,因此请确保您查看的是正确的内容)。

相关内容