在我的托管控制面板上,我为服务器名称设置了我的服务器 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 证书certbot
。https://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;