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

时间:2014-11-04 09:37:49

标签: php laravel nginx

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

在网上搜索导致了一些关于unix-socket错误权限的答案。但我使用完全相同的参数功能的其他域的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部分)

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

如上所述,此配置可以正常使用完全相同的设置。唯一改变为服务器指令的是server_nameroot

这怎么可能?

2 个答案:

答案 0 :(得分:3)

显然Zend的OPCache正在发生一些事情。如果您在php.ini中禁用它,就像这样

opcache.enable=0

该应用程序突然运行。

为什么呢?我不知道,这困扰着我。但是现在它有效。如果有人知道背后的原因:我会接受你的答案,而不是我的答案。

答案 1 :(得分:0)


我想你的nginx配置可能会有一些错误 所以我使用你的nginx配置在我的VPS上创建了一个全新的应用程序。就像你一样,我收到了502 Bad Gateway错误。然后我复制了一个工作正常的配置文件,我得到了“异常处理程序中的错误”。运行后出错。它表明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/

然后该应用程序完美运行。 希望这可以帮助你。