安装 SSL 证书后,php 文件正在下载而不是执行

安装 SSL 证书后,php 文件正在下载而不是执行

当我仅使用时,我能够成功访问 php 文件http但现在我安装了https,我无法再访问该页面,而是下载脚本。

这是我的文件在 /etc/nginx/sites-avaliable/default

server{
root /media/world/web/dev;

index index.php index.html index.htm index.nginx-debian.html;

server_name localhost  web.dev;

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

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/web.dev/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/web.dev/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

我学习过的教程

https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04

https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04

https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx (Nginx-Ubuntu 18.04)

https 正在运行,如果我执行 index.html,它可以正常工作。

有人能告诉我该如何调试这个问题吗?

答案1

您的/etc/nginx/sites-avaliable/default文件不包含 php 配置,或者您是否有另一个文件/etc/nginx/sites-avaliable/,如数字海洋链接?如果没有,则可能是您在配置 SSL 时意外删除了它。尝试在 Certbot 配置文件之前添加以下内容:

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

答案2

Nginx 不像其他一些 Web 服务器那样包含原生 PHP 处理。因此,在设置 PHP 配置之前,您需要使用php-fpm以下命令安装软件包:

sudo apt install php-fpm

然后在配置文件中设置其余配置:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}

相关内容