Я успешно установил приложение laravel на сервер nginx, работающий на Arch Linux.Однако, когда я пытаюсь просмотреть приложение в веб-браузере, все маршруты возвращают 404, кроме значения по умолчанию '/'.Я знаю это, потому что у меня есть make: auth, но я не могу зайти на страницу регистрации и входа в систему.
Я следовал инструкциям, найденным через Google, и создал две папки, sites-available
и sites enabled
в /etc/nginx/
,Затем я создал файл конфигурации для приложения laravel в /etc/nginx/sites-available
, который называется niko
на доступных сайтах, и символическую ссылку на него примерно так: ln --symbolic /etc/nginx/sites-available/niko /etc/nginx/sites-enabled/niko
.
Вот содержимое моего файла конфигурации /etc/nginx/sites-available/niko
.
server {
listen 80;
server_name niko;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html/niko/public;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
root /usr/share/nginx/html/niko/public;
include fastcgi.conf;
}
}
В моем /etc/nginx/nginx.conf
эта строка чуть выше закрывающего }
блока http {}
:
include /etc/nginx/sites-enabled/*;
Когда я проверяю журнал ошибок nginx (/var/log/nginx/error.log
), янайдите эти записи:
2019/06/14 10:59:22 [error] 5429#5429: *3 directory index of "/usr/share/nginx/html/niko/" is forbidden, client: 192.168.1.101, server>
2019/06/14 10:59:36 [error] 5429#5429: *3 open() "/usr/share/nginx/html/niko/public/login" failed (2: No such file or directory), clie>
2019/06/14 10:59:36 [error] 5429#5429: *3 open() "/usr/share/nginx/html/niko/public/login" failed (2: No such file or directory), clie>
2019/06/14 10:59:38 [error] 5429#5429: *3 open() "/usr/share/nginx/html/niko/public/login" failed (2: No such file or directory), clie>
2019/06/14 10:59:38 [error] 5429#5429: *3 open() "/usr/share/nginx/html/niko/public/login" failed (2: No such file or directory), clie>
2019/06/14 11:26:53 [error] 5429#5429: *7 open() "/usr/share/nginx/html/niko/public/login" failed (2: No such file or directory), clie>
2019/06/14 11:26:53 [error] 5429#5429: *7 open() "/usr/share/nginx/html/niko/public/login" failed (2: No such file or directory), clie>
2019/06/14 11:27:01 [error] 5429#5429: *7 open() "/usr/share/nginx/html/niko/index.php/login" failed (2: No such file or directory), c>
2019/06/14 11:27:01 [error] 5429#5429: *7 open() "/usr/share/nginx/html/niko/index.php/login" failed (2: No such file or directory), c>
2019/06/14 11:27:04 [error] 5429#5429: *7 open() "/usr/share/nginx/html/niko/index.php/login" failed (2: No such file or directory), c>
2019/06/14 11:27:04 [error] 5429#5429: *7 open() "/usr/share/nginx/html/niko/index.php/login" failed (2: No such file or directory),
Я вырывал свои волосы часами, потому что я не знаю, где проверить.Я пробовал несколько вещей, но ничего не получается.Ваша поддержка приветствуется.
ОБНОВЛЕНИЕ: Мой новый /etc/nginx/sites-available/niko
уже здесь
server {
listen 80;
server_name niko;
root /usr/share/nginx/html/niko/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
ОБНОВЛЕНИЕ 1 : namei -l /usr/share/nginx/html/niko/
дает:
f: /usr/share/nginx/html/niko/
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root share
drwxr-xr-x root root nginx
drwxr-sr-x kali root html
drwxr-sr-x kali root niko