我正在尝试从我的PHP脚本连接到Odoo服务器,但遇到不一致的连接问题 .
我有3个测试地点:
-
Localhost
-
域名A.
-
域B
和2个测试脚本:
Odoo Demo :
require_once("ripcord.php");
$info = ripcord::client('https://demo.odoo.com/start')->start();
print_r($info);
Odoo Target Server :
require_once("ripcord.php");
$common = ripcord::client("###.###.###.##:8069/xmlrpc/2/common");
print_r($common->version());
这给了我奇怪和不一致的结果:
-
Localhost Odoo演示: success
-
Localhost Odoo目标服务器: success
-
Domain A Odoo演示: success
-
域名Odoo目标服务器: Could not access ###.###.###.##:8069
-
Domain B Odoo演示: Could not access https://demo.odoo.com/start
-
Domain B Odoo目标服务器: Could not access ###.###.###.##:8069
Versions :
本地主机:
-
PHP版本: 7.0.15
-
Ripcord版本: 0.9
服务器(域A和域B):
-
PHP版本: 5.6.30
-
Ripcord版本: 0.9
令其陌生的是,域A和域B在同一台服务器上 . 哪些因素可以决定请求是否成功?更重要的是,如何从域A和B成功访问Odoo目标服务器?
1 回答
事实证明我的问题是双重的:
域B似乎与默认的RipcurlTransport(Stream)有一个问题;可能是文件系统权限的问题 . 切换到Curl解决了无法连接到Odoo演示数据库的问题 .
服务器位于防火墙后面,后者需要允许到端口8069的传出连接 . 这解决了无法连接到 生产环境 数据库的问题 .