Nginx 提供 PHP 文件下载服务,而不是执行它们

Nginx 提供 PHP 文件下载服务,而不是执行它们

我有一个 Laravel 应用程序,我正尝试使用 Nginx 来提供服务,但当我导航到我的域时,我得到的只是一个名为“download”的文件,它会自动下载,其中包含 Laravel 的 public/index.php 的内容。没有提供任何 Laravel 应用程序。这是我的服务器块:

server {
    server_name example.com;
    listen 443 ssl;
    listen [::]:443 ssl;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    return 301 https://www.example.com$request_uri;
}

server {
    server_name www.example.com;
    listen 443 ssl;
    listen [::]:443;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    root /var/www/example.com/public;
    index index.html index.htm index.nginx-debian.html index.php;
    location / {
            try_files $uri $uri/ =404;
    }
}

如果我打开“下载”文件,它包含 Laravel 的 public/index.php 文件的内容。

如何配置我的服务器块来为我的 Laravel 应用程序提供服务?

答案1

首先让自己熟悉什么是 PHP。

了解 Nginx 只是一个 Web 服务器,而不是 php 应用服务器。

你可能想要类似的东西php-fpm

然后在官方 Nginx 文档你会发现如何最好地配置你的 Web 服务器

相关内容