我从 Apache 更改为 Nginx,现在遇到了一些问题。
- 当我尝试访问任何文件夹(例如,
http://devserver/monitor/web
我有一个 Symfony 项目)时,我收到 404 错误 - 当我尝试访问时,
http://devserver
我总是收到此消息File not found.
我的/etc/nginx/conf.d/default.conf
文件如下所示:
server {
listen 80;
server_name devserver;
location / {
root /var/www/html;
index index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}
那里有什么问题?
答案1
您将root
指令放在了错误的地方。
root
应该在块中定义server
,而不是在每个location
块中定义。这是最常见的 nginx 配置错误。
root
要解决该问题,请从每个块中删除所有指令location
,并将正确的root
指令放在server
块内,而不是任何内location
。
root
在块中使用它的唯一原因location
是当您实际上想要为其使用不同的文档根目录时location
,例如用于提供 nginx 默认错误消息(正如您在此处所做的那样)。