我正在尝试安装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_name
和root
。
这怎么可能?
答案 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/
然后该应用程序完美运行。 希望这可以帮助你。