Я ударил стену при установке нового локального хоста на Windows 8. Установка была сделана с помощью Laragon (3.0.5) и состоит из:
Файл конфигурации для 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 и ожидаемую строку.
Вы используете силу Ларагона, но вы уничтожили ее с неправильной настройкой и неправильным URL.
Ваша настройка должна выглядеть так: (обратите внимание на общественности /)
root "C:/lar/laragon/www/new_project/dir1/public/";
Теперь ваша жизнь стала проще — этот URL должен работать:
new_project / dir1 / является частью вашего root
директива, и она не должна быть в запросе, так как все операции поиска файлов и скриптов выполняются относительно нее. Правильный запрос http://new_project.dev:8080/public/foo
С вашей текущей конфигурацией я думаю, что это работает. Я обновил расположение файла 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