0%

Yar Error Timeout was reached

Yar RPC 扩展:

我在使用 Yar_client(‘http://www.local.com/Yar_service.php') 返回错误信息:
curl exec failed ‘Timeout was reached’ (Yar_Client_Transport_Exception)

后使用 curl 测试请求错误返回码是 CURLE_COULDNT_RESOLVE_HOST (6) – 无法解析主机, 指定的远程主机无法解析。因为 www.local.com 只在 nginx 中设置并未在 hosts 中指定

解决方法也非常简单, vim /etc/hosts 加入:

1
127.0.0.1 www.local.com

注意: 如果你用 docker 作为 php 运行环境

1
2
当你退出 docker (docker stop CONTAINER-ID, Ctrl-D or exit)
被外部强制退出docker(docker, 终端意外退出等)

cat /etc/hosts 中的数据可能已被重置, 也会导致上述问题出现( 一开始我是不相信的,测了半天才忽然想起是不是 docker hosts 有问题).

启动 docker(docker attach CONTAINER-ID or docker run -it IMAGES_NAME) 后,可使用 快捷键 detach, 可避免外部强制退出问题。
另外经测试发现 docker commit 也无法保存 hosts 的设置(若有哪位大神知道的请告知一下,在此先谢过啦~ ).