#php #laravel #ubuntu #nginx #webserver
#php #laravel #ubuntu #nginx #веб-сервер
Вопрос:
Я добавил блок location для обслуживания приложения Laravel из дополнительного URI (только) в / todos/
location /todos {
try_files $uri $uri/ /todos/$query_string;
index index.php index.html index.htm;
root /index.php;
location ~ .php$ {
fastcgi_index index.php;
fastcgi_read_timeout 300;
fastcgi_pass unix:/opt/bitnami/php/var/run/www.sock;
fastcgi_split_path_info ^(. .php)(/. )$;
fastcgi_param SCRIPT_FILENAME /opt/bitnami/nginx/html/todos/public/index.php;
fastcgi_param QUERY_STRING $query_string;
include fastcgi_params;
}
}
Но переход к / todos / URI не работает (запрещено обслуживать 403), это требует, чтобы я действительно вставил «index.php » — значит, Laravel работает только с /todos/index.php.
Что я делаю не так?
ОБНОВЛЕНИЕ: Рабочая конфигурация:
location /todos {
try_files $uri $uri/ /todos/index.php?$query_string;
index index.php index.html index.htm;
root /opt/bitnami/nginx/html/todos/public/;
location ~ .php$ {
fastcgi_index index.php;
fastcgi_read_timeout 300;
fastcgi_pass unix:/opt/bitnami/php/var/run/www.sock;
fastcgi_split_path_info ^(. .php)(/. )$;
fastcgi_param SCRIPT_FILENAME /opt/bitnami/nginx/html/todos/public/index.php;
fastcgi_param QUERY_STRING $query_string;
include fastcgi_params;
}
}
Ответ №1:
Ваш root должен быть:
root $directory_of_your_index.php_file;
И в местоположение добавить:
try_files $uri $uri/ /index.php?$query_string;
Комментарии:
1. Спасибо! Обновил вопрос рабочей конфигурацией.