我正在尝试使用PHP连接到外部SOAP服务,并编写了一个小的PHP测试脚本,它只连接到服务并执行一个简单的请求来检查一切是否正常。
这一切都正常,但是当我通过浏览器请求运行时,在40s的某个地方建立初始连接的速度很慢。当我在命令行上使用完全相同的脚本执行相同的请求时,它会立即通过。
有没有人对这可能是什么有任何想法?
干杯
答案 0 :(得分:3)
PHP将wsdl缓存在/ tmp中。如果首先从命令行运行,则缓存文件将由您运行脚本的任何用户拥有,并且apache将无法读取缓存。每次都必须下载和解析wsdl,这将很慢。
检查/ tmp / wsdl *。
的权限答案 1 :(得分:0)
也许external SOAP service
尝试检查您的IP,并且您的服务器允许ICMP,当您的本地网络 - 不是。
无论如何,external SOAP service
的管理员可能会更清楚地回答这个问题:)
答案 2 :(得分:0)
正在使用的php.ini
之间是否存在差异?
在标准的ubuntu服务器安装上:
diff /etc/php5/apache2/php.ini /etc/php5/cli/php.ini
//编辑:
另一个区别可能在于包含路径。如果在本地测试服务器上遇到麻烦,它实际上并没有使用包含的soap类(它没有包含任何内容,因为搜索路径无效),但它包含了内置的{{1 }。class。