我正试图在拉维尔组件的基础上建立“微型框架”。在服务器端有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;
    }
}

当我调用已定义的路由时,这个配置工作正常,例如打开Lumen时,我看到“lumen.”响应。但是当我试图打开未定义的路由时,比如http://lumen.dev我在浏览器中看到“500内部服务器错误”,并且在nginx错误日志中看到以下消息:
在内部重定向到“/index.php”时重写或内部重定向循环,客户端:127.0.0.1,服务器:lumen.dev
如何修复nginx配置以使其正常工作?

最佳答案

root选项必须指向公共目录:

server {
    server_name lumen.dev;
    root /var/www/lumen/public;

出现错误是因为它试图调用相对于根的/index.php?$query_string。所以它试图在一个无止境的循环中找到/var/www/lumen/index.php

09-05 02:19