最近在做本地项目测试时候发现以下问题
- nginx+php7.1
项目1 index.php(vhost配置server端口80)
<?php
$res = file_get_contents("http://127.0.0.1:81/index1.php");
var_dump($res);
项目2 index1.php (vhost配置server端口81)
<?php
echo 'dddddd';
运行项目卡死
其中一个项目通过curl进行get、post等请求,以及使用file_get_contents请求本地另一个项目时候卡死一直到超时才结束。这是由于php-cgi在进程管理的时候都使用了默认9000端口,请求方的项目在发起请求的时候已经占用了9000端口而一直等待中,这样在调用另一个项目的时候,被请求的项目由于端口被占用阻塞一直无法返回结果,这样请求方也就一直卡死。
解决办法
将server为81的fastcgi_pass端口改为9001,如下图所示
- 重启nginx服务
- 切换到对应php的安装目录下,运行cmd,运行命令php-cgi.exe -b 127.0.0.1:9001 -c php.ini 别关cmd窗口
- 此时再次运行项目即可顺利访问