Nginx
無法在 nginx 上的 html 中執行 php
我正在嘗試在 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 執行的惡意腳本。