因此,我使用 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
位于要加载的正确位置。