nginx 无法在 html 中运行 php

nginx 无法在 html 中运行 php

几个星期以来,我一直在尝试让 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;
    }
}

相关内容