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

502在其他php文件工作时运行默认laravel应用程序时网关错误,php,laravel,nginx,Php,Laravel,Nginx,我正在尝试安装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;

我正在尝试安装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.sock

srw-rw---- 1 www-data www-data 0 Nov  4 10:05 /var/run/php5-fpm.sock
在www.conf(php部分的配置)中

如上所述,此配置在完全相同的设置下工作正常。唯一更改为server指令的是
服务器名称
根目录

这怎么可能呢?


我猜您的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/
然后这个应用程序就完美地工作了。
希望这能对您有所帮助。

显然Zend的OPCache有问题。如果在
php.ini
中禁用它,如下所示

opcache.enable=0
这个应用程序突然工作了


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

laravel日志中有什么内容吗?我在哪里可以找到这个日志?/myapp/storage/logs文件夹完全为空。与.gitignore不同,它是空的。nginx error.log中有什么内容?这不起作用。与此配置文件不同的是fast\u cgi\u pass参数,该参数表示IP:端口而不是套接字。我的php设置为通过unix套接字运行;因为这对于其他非laravel项目来说效果很好……我只想补充一点:我正在为Nginx和PHP-FPM使用单独的Docker容器来设置laravel 5。关于502坏网关问题,我已经在SO和互联网上穷尽了所有其他答案;他们都没有为我工作过。是这个人干的,我和你一样不安,我不知道为什么。我希望将来能找到答案。不管怎样,谢谢你的提示。我也一样。我不得不在旧的PHP5.3.2服务器上安装Zend Opcache 7.0.5,结果出现了502错误。只有禁用opcache才能消除错误。Laravel很烂吗?好吧,如果框架不能正常安装而不让你感到痛苦,那么是的,它非常糟糕。不确定这是否是Laravel的问题-我在Wordpress、Prestashop和一些基于Silex的网站上也有类似的问题。一些(并非所有)php套接字在启用opcache后悄无声息地崩溃(日志中没有消息)。
opcache.enable=0