PHP通过浏览器缓慢处理soap请求但在命令行上很好

时间:2011-05-24 12:05:16

标签: soap php-5.3 php

我正在尝试使用PHP连接到外部SOAP服务,并编写了一个小的PHP测试脚本,它只连接到服务并执行一个简单的请求来检查一切是否正常。

这一切都正常,但是当我通过浏览器请求运行时,在40s的某个地方建立初始连接的速度很慢。当我在命令行上使用完全相同的脚本执行相同的请求时,它会立即通过。

有没有人对这可能是什么有任何想法?

干杯

3 个答案:

答案 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。