Apache-Httpd

使用 buildroot 建構的嵌入式 apache Web 伺服器中的 PHP

  • December 21, 2017

所以我使用 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它位於要載入的正確位置。

引用自:https://unix.stackexchange.com/questions/412145