5

我按照此链接的教程在带有 apache 的 Centos 6.5 上使用 php7 或 phpng。

我可以在控制台中执行 php 脚本,但我希望能够使用 Apache 服务器运行 php 脚本。

我需要一些帮助,因为我找不到 libphp7.so 模块。我不知道我是否必须构建它或什么。

4

3 回答 3

4

我相信您需要添加--with-apxs2到您的配置脚本中。根据您提供的链接,我在配置标志中没有看到。--with-apxs2将“构建共享的 Apache 2.0 处理程序模块”。您可能还需要确保在您的 apache 配置中具有:

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

我第一次构建 php7 时它只是显示源代码而不是执行它,但添加它会导致它执行代码。

如果您想使用 Docker 进行尝试,我刚刚在https://registry.hub.docker.com/u/silintl/php7/上为 PHP7 创建了一个 Docker 映像,您也可以查看包含所有命令的 Dockerfile安装和配置它。

于 2015-05-22T03:33:01.753 回答
2

/etc/httpd/conf.modules.d/15-php.conf由父配置文件加载的配置文件中,/etc/httpd/conf/httpd.conf我找到了以下默认配置:

<IfModule !mod_php5.c>
  <IfModule prefork.c>
  LoadModule php7_module modules/libphp7.so
  </IfModule>
</IfModule>

<IfModule !mod_php5.c>
  <IfModule !prefork.c>
    LoadModule php7_module modules/libphp7-zts.so
  </IfModule>
</IfModule>

使用@JanePage 和@PhilipShipley 提供的信息,我将其更改为:

LoadModule php7_module modules/libphp7.so
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

和 Apache 开始工作正常。

于 2019-12-20T08:32:16.990 回答
1

感谢菲利普为这个问题提供了一些线索,但就我而言,我已经通过这种方式解决了我的问题:

1 - 使用以下命令复制库 php7.so 到 apache 模块目录:sudo cp /etc/httpd/modules/libphp7.so /opt/bitnami/apache2/modules

2 - 在您的 Apache 配置文件中添加以下代码:

LoadModule php7_module ./modules/libphp7.so SetHandler application/x-httpd-php

之后 PHP 运行良好!

于 2018-01-16T11:45:28.763 回答