我正在尝试安装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.
这怎么可能?
最佳答案
显然,Zend的OPCache正在进行某些操作.如果您在PHP.ini中将其禁用,就像这样
opcache.enable=0
该应用突然生效.
为什么?我不知道,这困扰着我.但是现在它可以了.如果有人知道其背后的原因:我会接受您的回答,而不是我的回答.