502 Bad Gateway for Laravel 5.4 with nginx and php7.0-fpm in



我在Ubuntu 16.04服务器中设置了我的Laravel 5.4应用程序,nginxphp7.0-fpm,它给出了

502 Bad Gateway

Nginx 虚拟主机配置,

server {
    listen   80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default ipv6only=on; ## listen for ipv6
    root /var/www/html/laravel/public;
    index index.php index.html;
    # Make site accessible from http://localhost/
    server_name localhost;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ .php$ {
        try_files $uri /index.php =404;
        include                  fastcgi_params;
        fastcgi_keep_conn on;
        fastcgi_index            index.php;
        fastcgi_split_path_info  ^(.+.php)(/.+)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/var/run/php7.0-fpm.sock;
    }
}

尝试了以下方法,但仍然无法正常工作,

fastcgi_pass unix:/var/run/php7.0-fpm.sock;更改为fastcgi_pass 127.0.0.1:9000;

try_files $uri $uri/ /index.php?$query_string;更改为try_files $uri $uri/ /index.php$is_args$args;

每次更改后重新启动服务,

service nginx restart
service php7.0-fpm restart

我只能使用此配置访问主路由,

server {
        listen   80; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6
        root /var/www/html/laravel/public;
        index index.html index.htm index.php;
        # Make site accessible from http://localhost/
        server_name localhost;
        location / {
                try_files $uri $uri/ =404;
        }
        location ~ .php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
        location ~ /.ht {
                deny all;
        }
}

使用默认的基于 php 的配置更新一行有效,

server {
        listen   80; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6
        root /var/www/html/laravel/public;
        index index.html index.htm index.php;
        # Make site accessible from http://localhost/
        server_name localhost;
        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ .php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
        location ~ /.ht {
                deny all;
        }
}

这里将try_files $uri $uri/ =404;更改为try_files $uri $uri/ /index.php?$query_string;

首次安装:sudo apt install php-fpm

然后检查/etc/php/7.4/fpm,确保你的版本是php 7.0-fpm.sock,php 7.4-fpm.sock或7.x

fastcgi_pass unix:/run/php/php7.4-fpm.sock;

就我而言

  1. 我将项目文件夹的所有者更改为 www-data:$ sudo chown -R www-data:www-data ./my_project_folder

  2. 然后在nginx.conf文件/etc/nginx/中更改了nginx本身的用户(这取决于你的nginx版本)

它对我有用。

最新更新