PHP SOAP 客户端访问超时
admin
2023-06-28 13:03:58
0次

今天在windows机器上做PHP+SOAP的测试。

服务端环境: windows

客户端环境: windows

服务端和客户端都在一个环境(windows)上。


遇到的问题:服务端能正常的启动,客户端访问服务端的时候,一直显示超时 504错误。

找了很久的资料都没解决,当看到有一篇文章里写到:


我的开发环境是nginx+php,准备作一个soap的实验,soapclient和soapserver都是在我的开发机上,用soapclient访问soapserver的时候,总是返回504错误,相同的代码放到apache+php_module的环境下没有问题。
nginx的错误日志显示,client和server的错误都是fastcgi超时,我一度怀疑是soapserver的问题,soapserver超时不响应,导致了soapclient的超时。
但是我用cli模式执行client,server能正常返回,说明不是soapserver的问题。
用nginx下的client访问apache上的server,正常
用apache下的client访问nginx上的server,正常

我恍然大悟,是不是进程数的问题,先怀疑nginx,后怀疑php-cgi,一查资料,如果用php-cgi -b9000直接器fastcgi的话,同时只能处理一个请求,soapclient和soapserver需要两个进程,soapclient把进程挂 起等soap server返回,但是soapserver等待soapclient释放phpcgi的进程,所以一直都是返回504了。

赶紧打个fpm的补丁,困惑n天的问题解决了。

网上有篇这样的解决办法不过看不明白啊,也不知道好不好用

来自: http://www.oschina.net/question/1404650_133899


好,看完后,我的情况的和描述的一样,那就照着这个思路去做吧,相信我,是成功的。

首先: 给PHP开启多个进程,因为默认的是一个进程,windows环境需要类似fpm这样的php进程管理,在网上找了个xxfpm,附件里面有


配置: 

启动fastcgi 一般的配置

D:/php55n/php-cgi.exe -b 127.0.0.1:9000 -c D:/php55n/php.ini
xxfpm D:/php55n/php-cgi.exe -n 2 -p 9000
xxfpm D:/php55n/php-cgi.exe -n 2 -p 9001

上面是三个开启php进程的命令啊。


其次:配置nginx

    #服务端配置
    server {
        listen 80;
        server_name server.com;
        index index.html index.htm index.php;
        root D:/php_workplace/php_soap;
        location / {
            try_files $uri $uri/ /index.php;
        }

        location ~*\.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

    }
    
    #客户端配置
     server {
        listen 81;
        server_name client.com;
        index index.html index.htm index.php;
        root D:/php_workplace/php_soap;
        location / {
            try_files $uri $uri/ /index.php;
        }

        location ~*\.php$ {
            fastcgi_pass 127.0.0.1:9001;
            fastcgi_index index.php;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

    }


最后:开始测试
测试地址:http://client.com:81/client.php
返回:哈哈,能能访问啦

附件里面有测试代码哦。
附件:http://down.51cto.com/data/2365582

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...