Apache-Httpd
使用 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
除了載入模組(您的 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
等結尾的文件都將在發送到之前由 Apache 伺服器和 PHP 模組處理瀏覽器。不要忘記重新啟動 httpd 服務。
如果它仍然不起作用,請檢查引用要載入的模組的路徑,並確保
libphp7.so
它位於要載入的正確位置。