Odoo + Ripcord PHP XMLRPC 库:"Could not access https://demo.odoo.com/start"
Odoo + Ripcord PHP XMLRPC library: "Could not access https://demo.odoo.com/start"
我正在尝试建立从我的 PHP 脚本到 Odoo 服务器的连接,但是 运行 遇到不一致的连接问题。
我有 3 个测试地点:
- 本地主机
- 域 A
- 域 B
和 2 个测试脚本:
Odoo 演示:
require_once("ripcord.php");
$info = ripcord::client('https://demo.odoo.com/start')->start();
print_r($info);
Odoo 目标服务器:
require_once("ripcord.php");
$common = ripcord::client("###.###.###.##:8069/xmlrpc/2/common");
print_r($common->version());
这给我带来了奇怪且不一致的结果:
- Localhost + Odoo 演示:成功
- 本地主机 + Odoo 目标服务器:成功
- 域 A + Odoo 演示:成功
- 域 A + Odoo 目标服务器:无法访问###.###.###.##:8069
- 域 B + Odoo 演示:无法访问 https://demo.odoo.com/start
- 域 B + Odoo 目标服务器:无法访问###.###.###.##:8069
版本:
本地主机:
- PHP版本:7.0.15
- Ripcord 版本:0.9
服务器(域A和域B):
- PHP版本:5.6.30
- Ripcord 版本:0.9
奇怪的是域A和域B在同一台服务器上。哪些因素可以决定请求是否成功?更重要的是,如何从A域和B域成功访问Odoo目标服务器?
原来我的问题有两个:
- 域 B 的默认 RipcurlTransport (Stream) 似乎有问题;可能是文件系统权限的问题。改用Curl解决了无法连接Odoo演示数据库的问题
- 服务器在防火墙后面,需要允许到端口 8069 的传出连接。这解决了无法连接到生产数据库的问题。
我正在尝试建立从我的 PHP 脚本到 Odoo 服务器的连接,但是 运行 遇到不一致的连接问题。
我有 3 个测试地点:
- 本地主机
- 域 A
- 域 B
和 2 个测试脚本:
Odoo 演示:
require_once("ripcord.php");
$info = ripcord::client('https://demo.odoo.com/start')->start();
print_r($info);
Odoo 目标服务器:
require_once("ripcord.php");
$common = ripcord::client("###.###.###.##:8069/xmlrpc/2/common");
print_r($common->version());
这给我带来了奇怪且不一致的结果:
- Localhost + Odoo 演示:成功
- 本地主机 + Odoo 目标服务器:成功
- 域 A + Odoo 演示:成功
- 域 A + Odoo 目标服务器:无法访问###.###.###.##:8069
- 域 B + Odoo 演示:无法访问 https://demo.odoo.com/start
- 域 B + Odoo 目标服务器:无法访问###.###.###.##:8069
版本:
本地主机:
- PHP版本:7.0.15
- Ripcord 版本:0.9
服务器(域A和域B):
- PHP版本:5.6.30
- Ripcord 版本:0.9
奇怪的是域A和域B在同一台服务器上。哪些因素可以决定请求是否成功?更重要的是,如何从A域和B域成功访问Odoo目标服务器?
原来我的问题有两个:
- 域 B 的默认 RipcurlTransport (Stream) 似乎有问题;可能是文件系统权限的问题。改用Curl解决了无法连接Odoo演示数据库的问题
- 服务器在防火墙后面,需要允许到端口 8069 的传出连接。这解决了无法连接到生产数据库的问题。