问题描述
我正在尝试建立从我的 PHP 脚本到 Odoo 服务器的连接,但遇到了不一致的连接问题.
I'm trying to make a connection from my PHP script to an Odoo server, but running into inconsistent connection problems.
我有 3 个测试地点:
I have 3 test locations:
- 本地主机
- 域 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());
这给了我奇怪且不一致的结果:
This gives me strange and inconsistent outcomes:
- Localhost + Odoo 演示:成功
- Localhost + 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):
Server (Domain A & Domain B):
- PHP 版本:5.6.30
- Ripcord 版本:0.9
奇怪的是域 A 和域 B 在同一台服务器上.哪些因素可以决定请求是否成功?更重要的是,如何从域 A 和域 B 成功访问 Odoo 目标服务器?
What makes it stranger is that Domain A and Domain B are on the same server. What factors could determine whether or not the request succeeds? More importantly, how can I successfully access the Odoo Target Server from Domain A and B?
推荐答案
原来我的问题有两个:
- 域 B 的默认 RipcurlTransport (Stream) 似乎有问题;可能是文件系统权限问题.切换到 Curl 解决了无法连接 Odoo 演示数据库的问题.
- 服务器位于防火墙后面,需要允许到端口 8069 的传出连接.这解决了无法连接到生产数据库的问题.
这篇关于Odoo + Ripcord PHP XMLRPC 库:“无法访问 https://demo.odoo.com/start"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!