502在其他php文件工作时运行默认laravel应用程序时网关错误


502 Bad gateway when running default laravel app while other php files work

我正在尝试安装laravel(尝试了5和4),但不断收到502坏网关错误。

在网上搜索得到了一些关于unix套接字权限错误的答案。但是我为另一个域设置的php使用了与您所期望的完全相同的参数函数。

这是通过干净安装框架后的设置/配置

/data/$ laravel new myapp

nginx配置:

server {
    listen 80;
    root /data/myapp/public/;
    index index.php index.html index.htm;
    server_name example.net;
    location / {
            try_files $uri $uri/ index.php?$query_string;
    }
    location ~ '.php$ {
            try_files $uri /index.php =404;
            fastcgi_split_path_info ^(.+'.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }

}

ls-ahl/var/run/php5-fpm.stock

srw-rw---- 1 www-data www-data 0 Nov  4 10:05 /var/run/php5-fpm.sock

在www.conf(php部分的配置)

 listen = /var/run/php5-fpm.sock
 listen.owner = www-data
 listen.group = www-data

如前所述,这种配置在完全相同的设置下工作得很好。唯一更改为服务器指令的是server_nameroot

这怎么可能?

显然Zend的OPCache有问题。如果你在php.ini中禁用它,就像一样

opcache.enable=0

应用程序突然工作起来。

为什么?我不知道,这让我很困扰。但现在它起作用了。如果有人知道这背后的原因:我会接受你的答案而不是我的。


我想你的nginx配置中可能有一些错误
所以我在我的VPS上创建了一个全新的应用程序,使用你的nginx配置。和你一样,我也有一个502坏网关错误。然后我复制了一个运行良好的配置文件,运行后出现了"异常处理程序错误"错误。这表明nginx与我的Laravel应用程序运行良好,但只存在一些权限问题
这是我的配置:

server {
    listen 80;
    server_name yourdomain.com;
    root /root/to/yourapp/public;
    index index.html index.php;
    location / {
        try_files $uri $uri/ /index.php$is_args$query_string;
    }
    location ~ '.php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

然后我运行

sudo chmod -R 777 /root/to/yourapp/app/storage/

然后这个应用程序就可以完美运行了。希望这能对你有所帮助。