Как мне заставить мое приложение laravel работать на сервере Nginx? - PullRequest
0 голосов
/ 09 ноября 2018

Я только что развернул свое приложение Laravel на DigitalOcean, используя стек LEMP с сервером Nginx.

Однако при переходе на IP-адрес сервера я получаю сообщение об ошибке 403 Forbidden. Затем, когда я захожу на xxx.xx.xxx.xx / public, я могу видеть свою домашнюю страницу правильно, даже если я уже установил свой root в свою общую папку. Кроме того, когда я нажимаю на любую ссылку на моей домашней странице, это дает мне 404 Not Found.

Это мой etc / nginx / sites-available / default:

Что я делаю не так? Пожалуйста, не отмечайте мой вопрос как дубликат, потому что большинство похожих тем, которые я вижу, забывают добавить Index.php в свой список индексов или забывают связать их корень с их общей папкой, однако я делаю и то и другое правильно.

Мой конфигурационный файл:

# Default server configuration 
#
server {
    listen 80 default_server;
    listen [::]:80 default_server; 

    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Note: You should disable gzip for SSL traffic.
    # See: https://bugs.debian.org/773332
    #
    # Read up on ssl_ciphers to ensure a secure configuration.
    # See: https://bugs.debian.org/765782
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf; 

    root /var/www/html/public/; 

    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm index.nginx-debian.html; 

    server_name 159.65.192.29; 

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ /index.php?$query_string; 
    } 

    # pass PHP scripts to FastCGI server
    #
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
    #
    #   # With php-fpm (or other unix sockets):
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    #   # With php-cgi (or other tcp sockets):
    #   fastcgi_pass 127.0.0.1:9000; 
    }
}

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Я использую это на моем сервере. проверить это:

server {
        root         /var/www/html/public;
        server_name [your_ip_address];
        index index.php;
        # Load configuration files for the default server block.
        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

## Laravel Production
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Content-Type-Options "nosniff";
        charset utf-8;
        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }
        location ~ /\.(?!well-known).* {
                deny all;
        }

        location ~ \.php$ {
                try_files $uri /index.php =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }

}
0 голосов
/ 09 ноября 2018

Попробуйте изменить server.php имя на index.php в корне вашего проекта, а также создайте файл nginx.conf со следующим:

# nginx configuration location ~* (\.css|\.mp4|\.woff|\.js|\.png|\.jpg|\.gif|robots\.txt)$ { } location ~ /public/ { } location / { if (!-e $request_filename){ rewrite ^/(.*)/$ /$1 redirect; } if (!-e $request_filename){ rewrite ^(.*)$ /index.php break; } if (!-e $request_filename){ rewrite ^/(css|js|images|favicon|fonts|videos|storage)/(.*)$ /public/$1/$2 break; } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...