Nginx 开始下载 index.php,而不是执行

Nginx 开始下载 index.php,而不是执行

在我的托管控制面板上,我为服务器名称设置了我的服务器 api(让它成为dev.domainname.com)。

dev.domainname.com配置:

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

        root /var/www/dev.domainname.com/public;

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

        server_name dev.domainname.com;

        location / {
                try_files $uri $uri/ =404;
        }
}

我打开 dev.domainname.com 浏览器后,收到一个名为“下载”的文件。实际上我检查了该文件 - 它是我的index.php内部文件/public

怎么了?

一些附加信息:我已经使用 安装了 SSL 证书certbothttps://dev.domainname.com但仍然不可用,我得到了ERR_CONNECTION_TIMED_OUT

sudo tail -n 20 /var/log/nginx/error.log过去一小时没有任何错误。

hosts文件包含一行:

127.0.0.1 domainname domainname

sudo nginx -t也可以。

答案1

您需要告诉 nginx 如何处理 php 文件。我创建了一个“宏”,它只是一个包含以下内容的文件:

location ~ \.php$ {
    fastcgi_param PHP_VALUE "display_errors=Off";
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    include fastcgi.conf;
    fastcgi_send_timeout 600;
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}

然后将其存储起来/etc/nginx/macros并包含在

include macros/php;

相关内容