403 Запрещено на nginx/1.4.6 (Ubuntu) - Ларавел

Я продолжаю получать 403 Forbidden

введите описание изображения здесь


Мои настройки:

/etc/nginx/sites-available/default

по умолчанию

server {
        listen   80;


        root home/laravel-app/;

        index index.php index.html index.htm;

        server_name example.com;

        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /usr/share/nginx/www;
        }

        # pass the PHP скриптs to FastCGI server listening on the php-fpm socket
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;

        }

}

Обновление

Я выполнил эту инструкцию: здесь


Любые подсказки/предложения по этому поводу будут огромной помощью!

Ответы

Ответ 1

Вам нужно указать абсолютный путь для вашей директивы root. Nginx использует набор каталогов во время компиляции с помощью переключателя --prefix. По умолчанию это /usr/local/nginx.

Это означает, что ваш root, который в настоящее время настроен на root home/laravel-app/, вызывает nginx для поиска файлов в /usr/local/nginx/home/laravel-app/, которые, предположительно, не там, где находятся ваши файлы.

Если вы установите директиву root на абсолютный путь, такой как /var/www/laravel-app/public/ nginx найдет файлы.

Аналогичным образом вы заметите, что я добавил /public/ к указанному выше пути. Это потому, что Laravel хранит там файл index.php. Если бы вы просто указали на /laravel-app/, там не был бы индексный файл, и он дал бы вам 403.

Ответ 2

вам нужно иметь правило для php файлов (в файле по умолчанию)

# pass the PHP скриптs to FastCGI server listening on (...)
#
location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

        # With php5-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}

Ответ 3

Ошибка, добавленная вами в обновление, указывает, что nginx пытается указать индекс каталога из вашей папки ssc-portal. Поскольку вы, как представляется, используете базовую установку nginx, единственная причина, по которой индекс каталогов должен прерываться, заключается в том, что nginx не может найти перечисленные параметры индекса.

В вашем блоке сервера вы сообщаете nginx, чтобы попробовать следующие местоположения, когда запрашивается список каталогов (URI, который заканчивается конечной косой чертой): index.php, index.html, затем index.htm.

Если ни один из этих файлов не найден, запрос индекса каталога не выполняется.

Мое лучшее предположение: у вас есть файл index.php в неправильном месте. Вы переместили его из папки ssc-портала?