2015-04-15 9 views
2

Я пытаюсь настроить Lumen - «микро-каркас», построенный поверх компонентов Laravel. На стороне сервера есть nginx + php-fpm.Lumen + nginx = ошибка 500, перезапись или внутренний цикл перенаправления при внутреннем перенаправлении на «/index.php»

Вот мой 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

Yay первый Lumen вопрос! :) Я уверен, что вам нужно установить 'root' в'/var/www/lumen/public' – lukasgeiter

+0

@lukasgeiter проклятье, как я могу это пропустить? :) Пожалуйста, отделите свой комментарий, чтобы ответить, чтобы я мог его принять. Спасибо! –

ответ

3

root вариант должен указывать на общедоступном каталоге: появляется

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

ошибка, потому что он пытается вызвать /index.php?$query_string, который по отношению к корню. Поэтому он пытается найти /var/www/lumen/index.php в бесконечном цикле.

+1

Кстати, спасибо за ваш вклад в Lumen! –

+0

HI. И как сделать то же самое на веб-сервере в Интернете? Использование .htaccess в корневом каталоге? – Zl3n

+0

@zlen Это зависит от сервера и хостера. Для apache вы должны использовать конфигурацию виртуального хоста – lukasgeiter