Nginx

無法在 nginx 上的 html 中執行 php

  • September 18, 2018

我正在嘗試在 nginx 伺服器上的 html 中執行 php。發生的情況是 html 中的 php 程式碼只是被列印出來,而不是被執行。我可以很好地執行 php 獨立腳本。但不是 html 中的那些。我現在已經花了幾個小時。

這是我的站點可用/預設文件:

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;

# Add index.php to the list if you are using PHP 
index index.html index.htm index.nginx-debian.html index.php;

server_name _;

location / { 
   # First attempt to serve request as file, then
   # as directory, then fall back to displaying a 404.
   try_files $uri $uri/ =404;
   }  
}

我想我需要在這裡添加一個 location html 指令,但我不確定如何編寫它。我嘗試了幾個版本,但它們總是給我錯誤。有人知道如何從這裡開始嗎?

通常,當您使用 PHP 編寫網站程式碼時,您會為所有頁面添加 .php 副檔名。這是因為您希望 PHP 解析頁面並執行您定義的各種腳本功能。

預設情況下,當您將 PHP 放在 .html 文件中時,您的網路伺服器不知道將該文件發送到 PHP 進行解析。如果您想更改網路伺服器的預設功能並讓 .html 文件由 PHP 解析(它無法確定一個頁面何時具有它而下一個頁面沒有),您需要指示網路伺服器這樣做。

這個先前的問題有一個類似的問題,但他們在解析 PHP 擴展時遇到了問題。在您的情況下,您應該能夠使用它並將 .php$ 替換為 .html。我猜你已經有了 PHP 的配置設置,你現在只需要添加一個 HTML 部分。

我個人不會這樣做。我會將我的頁面的文件副檔名更改為 .php,以便您可以輕鬆分辨哪些內容應該被處理,哪些內容應該是純 HTML。此外,如果您將 .HTML 預設設置為由 PHP 處理,您可能會無意中允許使用者上傳其他 HTML 頁面,其中包含由 PHP 執行的惡意腳本。

引用自:https://serverfault.com/questions/931516