Все маршруты, возвращающие 404, кроме '/' - PullRequest
0 голосов
/ 14 июня 2019

Я успешно установил приложение 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

1 Ответ

0 голосов
/ 14 июня 2019

Laravel требует, чтобы вы немного изменили файл nginx.conf, чтобы он работал правильно.

Проверьте этот пример файла конфигурации, который доступен в Документация Laravel .

server {
    listen 80;
    server_name example.com;
    root /example.com/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 $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/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...