我在同一台服务器上托管多个域。我对 nginx 进行了以下配置:
server {
listen 80;
root /var/www/mydomain.com;
index index.php index.html index.htm;
server_name mydomain.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
它适用于我服务器上的所有域名。但是,今天我添加了一个新域名,并将其内容从另一台服务器转移过来(我从共享主机转移到 VPS)。在调整 DNS、移动文件、迁移数据库并完成所有操作后,新域名无法正常工作。它只返回 500 错误代码。nginx 的日志文件中没有显示任何日志消息。
答案1
让我抓狂的是,我在同一台服务器上的所有网站和域名都使用了相同的配置。除了这个,其他所有网站和域名都可以正常工作,尽管它们是完全匹配的。
ServerFault 上还有其他案例,问题可能来自 fastcgi 参数或 php-fpm。但就我而言,这太尴尬了。
这是因为.htaccess
我从我的主机托管中传输了一个隐藏文件。它包含不适用于新 VPS 的规则。我删除了该文件,Voala!运行起来非常好。
(我不能否认,几个小时以来我一直在自责,说我是世界上最差的系统管理员)。