几个星期以来,我一直在尝试让 Nginx 和 php7.2 协同工作。我想编写带有嵌入 php 标签的 html 文件。php 文件运行良好。HTML 文件也运行良好。但是当我尝试将 php 嵌入 html 时,源代码会打印到 html 源中。我尝试了 nginx 默认配置文件中的各种设置,以及大量教程。似乎我遗漏了一些东西,但我不知道是什么。我弄乱了它,经历了各种无法操作的阶段,但我无法让嵌入的 php 部分工作。
这是我的 /etc/nginx/sites-available/default 页面:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=off;
root /home/tinker/public_html;
index index.html index.php index.htm;
server_name 192.168.1.103;
location / {
try_files $uri $uri/ =404;
autoindex on;
}
error_page 404 /404.html;
#error_page 500 502 503 504 /404.html;
location = /50x.html {
}
location ~ \.php$|\.html|\.htm {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
#
# # fastcgi_index index.php;
# #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_index index.php;
# fastcgi_param PATH_INFO $fastcgi_path_info;
# # fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
我怎样才能解决这个问题?
答案1
你应该安装 PHP 并更改 Nginx 配置文件
首先,安装 PHP 如下:
sudo apt install php7.2 php7.2fpm
并修改 Nginx 配置文件如下:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name server_domain_or_IP;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}