404 проблема с Laravel 5.4.24 и Nginx 1.12

Я ударил стену при установке нового локального хоста на Windows 8. Установка была сделана с помощью Laragon (3.0.5) и состоит из:

  • php 7.1.5
  • Laravel 5.4.24
  • nginx 1.12.0

Файл конфигурации для nginx

server {
listen 8080;
server_name new_project.dev *.new_project.dev;
root "C:/lar/laragon/www/new_project/dir1/";

index index.html index.htm index.php;

location / {
try_files $uri $uri/ /index.php$is_args$args;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass php_upstream;
#fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}charset utf-8;

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt  { access_log off; log_not_found off; }
location ~ /\.ht {
deny all;
}
}

в маршрутах / web.php я добавил следующий маршрут

Route::get('/foo', function () {
return 'Everything is awesome!';
});

Я ожидаю, когда собираюсь http://new_project.dev:8080/dir1/public/foo чтобы увидеть строку «Все круто!», вместо этого я получаю 404 от nginx.

Абсолютно любая помощь будет более чем оценена.

—- ОБНОВЛЕНИЕ 1 —-

Опять в маршрутах / web.php есть следующий маршрут

Route::get('/', function () {
return 'You are on the home page.';
});

Когда я иду в http://new_project.dev:8080/dir1/public/ Я получаю 200 и ожидаемую строку.

0

Решение

Вы используете силу Ларагона, но вы уничтожили ее с неправильной настройкой и неправильным URL.

Ваша настройка должна выглядеть так: (обратите внимание на общественности /)

 root "C:/lar/laragon/www/new_project/dir1/public/";

Теперь ваша жизнь стала проще — этот URL должен работать:

http://new_project.dev:8080/foo

2

Другие решения

new_project / dir1 / является частью вашего root директива, и она не должна быть в запросе, так как все операции поиска файлов и скриптов выполняются относительно нее. Правильный запрос http://new_project.dev:8080/public/foo

0

С вашей текущей конфигурацией я думаю, что это работает. Я обновил расположение файла try_files index.php

server {
listen 8080;
server_name new_project.dev *.new_project.dev;
root "C:/lar/laragon/www/new_project/dir1/";

index index.html index.htm index.php;

location / {
try_files $uri $uri/ /public/index.php$is_args$args;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass php_upstream;
#fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}charset utf-8;

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt  { access_log off; log_not_found off; }
location ~ /\.ht {
deny all;
}
}

Хотя я не уверен в вашей конфигурации, я бы посоветовал вам установить корневой каталог вашего проекта в общую папку вместо необходимости делать / public. Затем вы должны оставить try_files сверху, как это было раньше.

Laravel Homestead также является отличным выбором для создания среды разработки: https://laravel.com/docs/5.4/homestead

0
По вопросам рекламы [email protected]