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