使用 buildroot 构建的嵌入式 apache Web 服务器中的 PHP

使用 buildroot 构建的嵌入式 apache Web 服务器中的 PHP

因此,我使用 buildroot 构建了一个嵌入式 apache Web 服务器,除了不运行 php 代码之外,它运行良好。我可以在系统的命令行中运行 .php 文件,但是当我在浏览器中打开这些 .php 文件时,它不会运行 php 代码,它只是忽略所有 php 代码并将其解释为 html。

我查看了 /etc/apache2/httpd.conf 文件,它有一行加载 php 模块:

LoadModule php7_module     modules/libphp7.so

有谁知道如何让php运行吗?

为了以防万一,我将留下一些可能相关的目录和文件的信息:

/ETC/

  • 阿帕奇2/

  • php-fpm.conf

  • php-fpm.d/

  • php.ini

/etc/apache2/

  • 额外的/

  • httpd.conf.bak

  • 哑剧类型

  • httpd.conf

  • 魔法

  • 原来的/

/usr/lib/php/

  • (空的)

/usr/modules/libphp7.so

答案1

除了加载模块(您的 httpd.conf 文件显示它是根据您的问题的内容执行的)之外,您还需要使用SetHandler指令*.php或其他适当的扩展。

像这样的东西应该有效,只需将其放在声明之后即可LoadModule

<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

上面的语句的作用是告诉 Apache 如何处理具有某些扩展名的文件。这.+\.ph(p[3457]?|t|tml)$是一个正则表达式 (regex),它匹配文件的几个不同结尾($表示字符串的结尾) - 因此以 、 、 等结尾的文件.php.php3发送.php4到浏览器。

不要忘记重新启动 httpd 服务。

如果仍然不起作用,请检查引用要加载的模块的路径,并确保该模块libphp7.so位于要加载的正确位置。

相关内容