当我仅使用时,我能够成功访问 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://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;
}