我正在尝试设置基于Laravel组件构建的Lumen - “微框架”。在服务器端有nginx + php-fpm。
这是我的nginx配置:
server {
server_name lumen.dev;
root /var/www/lumen;
location / {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param SCRIPT_FILENAME /var/www/lumen/public/index.php;
try_files $uri $uri/ /index.php?$query_string;
}
}
当我调用定义的路由时,此配置正常工作,例如我看到“流明”。打开http://lumen.dev时的回复。但是,当我尝试打开未定义的路由,如http://lumen.dev/404时,我在浏览器中看到“500 Internal Server Error”,并在nginx错误日志中显示此消息:
重写或内部重定向循环,同时内部重定向到“/index.php”,客户端:127.0.0.1,服务器:lumen.dev
如何修复我的nginx conf以使其正常工作?
答案 0 :(得分:3)
root
选项必须指向公共目录:
server {
server_name lumen.dev;
root /var/www/lumen/public;
出现错误是因为它试图调用相对于根的/index.php?$query_string
。所以它试图在无限循环中找到/var/www/lumen/index.php
。