PHP 重启后 Yii2 Facebook 身份验证成功一次,之后失败
Yii2 Facebook auth success once after PHP restarts, fails afterwards
我按照本教程在我的 Yii2 应用程序上使用 facebook 登录:https://mushtaqtahir.com/blog/2/facebook-authentication-using-yii2-authclient
几个月都没有问题,突然出现问题。当我尝试登录时,在成功登录 Facebook 并 return 到应用程序后出现错误 502。我尝试在服务器上重新启动 PHP FPM。 PHP 重新启动后它只工作一次,但之后继续失败。
我查看 nginx 错误日志发现:
2017/05/31 05:49:30 [error] 7368#7368: *151 recv() failed (104: Connection reset by peer)
while reading response header from upstream, client: 103.47.104.104, server: my.app, request:
"GET /site/auth?authclient=facebook&code=AQA5h_.....gIdRKg&state=6a424...7efc
HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "my.app"
可能是什么问题?
解决了!感谢@vijay-nathji 指出了正确的方向!
这实际上是 PHP 7 (Bug #73310 PECL OAuth segfaults when OPcache is enabled in PHP 7) 中的错误。这个问题应该在 PHP 7.1.3 中修复,但我需要一个快速的解决方案。
所以我所做的是仅在处理 Facebook 登录的特定功能上禁用 OPC。我添加了 frontend/config/main.php
:
'on beforeRequest' => function(){
if(strpos($_SERVER['REQUEST_URI'], 'auth') !== false){
ini_set('opcache.enable', false);
}
},
我按照本教程在我的 Yii2 应用程序上使用 facebook 登录:https://mushtaqtahir.com/blog/2/facebook-authentication-using-yii2-authclient
几个月都没有问题,突然出现问题。当我尝试登录时,在成功登录 Facebook 并 return 到应用程序后出现错误 502。我尝试在服务器上重新启动 PHP FPM。 PHP 重新启动后它只工作一次,但之后继续失败。
我查看 nginx 错误日志发现:
2017/05/31 05:49:30 [error] 7368#7368: *151 recv() failed (104: Connection reset by peer)
while reading response header from upstream, client: 103.47.104.104, server: my.app, request:
"GET /site/auth?authclient=facebook&code=AQA5h_.....gIdRKg&state=6a424...7efc
HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "my.app"
可能是什么问题?
解决了!感谢@vijay-nathji 指出了正确的方向!
这实际上是 PHP 7 (Bug #73310 PECL OAuth segfaults when OPcache is enabled in PHP 7) 中的错误。这个问题应该在 PHP 7.1.3 中修复,但我需要一个快速的解决方案。
所以我所做的是仅在处理 Facebook 登录的特定功能上禁用 OPC。我添加了 frontend/config/main.php
:
'on beforeRequest' => function(){
if(strpos($_SERVER['REQUEST_URI'], 'auth') !== false){
ini_set('opcache.enable', false);
}
},