• windows下nginx+php-cgi多端口


    windows下nginx+php-cgi

    win10
    phpstudy php7.2+nginx

    我们知道在Linux下是由php-fpm来管理php-cgi的,就是提供fastcgi接口的,但是phpstudy没有提供对php-cgi
    的管理方法。

    启动phpstudy
    打开CMD
    netstat -ano
    可以找到一个 127.0.0.1:9000 的服务,也就是说phpstudy只开启了一个fastcgi进程,这就导致,我们在本机
    的一个项目里面使用fastcgi(php-cgi)的方式访问本机的另外一个项目的时候是一直处于阻塞状态的,并且其他
    经过127.0.0.1:9000的请求都会被阻塞。

    在Linux下,我们可以通过设置php-fpm来设置进程个数来提高并发能力,那么在windows+phpstudy模式下如何多开几个php-cgi呢?

    实际上是没有很好的办法的。

    以下是折中的办法。

    php-cgi -h 查看参数
    
    D:phpStudyPHPTutorialphpphp-7.2.1-ntsphp-cgi.exe -b 127.0.0.1:9001 -c D:phpStudyPHPTutorialphpphp-7.2.1-ntsphp.ini
    
    • 1
    • 2
    • 3

    批处理start.bat

    start "fcgi服务" /MIN D:phpStudyPHPTutorialphpphp-7.2.1-ntsphp-cgi.exe -b 127.0.0.1:9000 -c D:phpStudyPHPTutorialphpphp-7.2.1-ntsphp.ini
    start "fcgi服务" /MIN D:phpStudyPHPTutorialphpphp-7.2.1-ntsphp-cgi.exe -b 127.0.0.1:9001 -c D:phpStudyPHPTutorialphpphp-7.2.1-ntsphp.ini
    
    • 1
    • 2

    查看
    netstat -ano

    并且设置某个项目的

    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    为什么要配置多端口,那是因为一个端口只能被一个进程监听,多个php-cgi监听同一个端口,实际上是不成功的;同样的,php-fpm也只有Master监听9000,其他的php-fpm都是worker,是没有监听的。

  • 相关阅读:
    编程题--简易消除
    条件随机场理论分析CRF(Conditional Random Field)
    受限玻尔兹曼机和深度置信网络
    深度学习的起源、发展和现状
    条件随机场matlab程序下载
    Matlab 运行C程序出现的编译出错问题
    python爬取安居客二手房网站数据
    小白开始
    prctl系统调用设置进程名
    Java 中的 super 关键字
  • 原文地址:https://www.cnblogs.com/66w66/p/14044184.html
Copyright © 2020-2023  润新知