关于同一台服务器上两个PHP项目相互访问超时的问题

  • 当一台服务器部署多个PHP项目,各自运行时并无干扰, 即使都使用 9000端口来跑php

  • 但是有一种情况,当其中一个项目需要调用另一个php项目的接口时,便会超时,这是因为php是单线程的同步的

  • 也许设置超时时间为0,不等待接口返回是一个方法,但更多时候我们需要等待返回结果

  • 这时,我们便需要给其中一个项目另开一个端口来运行php

以本地服务器为例,windows

  • 将其中一个项目的php指向9001端口,默认是9000
    ···
    location ~ .php(.*)$ {
    fastcgi_pass 127.0.0.1:9001;
    fastcgi_index index.php;
    fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
    fastcgi_param SCRIPT_FILENAME (document_root)fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param PATH_TRANSLATED (document_root)fastcgi_path_info;
    include fastcgi_params;
    include pan_params.conf;
    }
    ···

  • 重启phpStudy或其他集成环境

  • cmd命令行运行以下命令,再开启一个PHP进程, 相关路径改成你自己的路径即可。
    php-cgi.exe -b 127.0.0.1:9001 -c D:phpStudyPHPTutorialphpphp-7.1.13-ntsphp.ini

原文地址:https://www.cnblogs.com/lz0925/p/11726629.html