见bbs

http://bbs.csdn.net/topics/390803643/close

正常的配置情况下,window的php-cgi是不会出现多线程/子进程的,例如以下配置

fastcgi_pass   127.0.0.1:9000;

这时也就意味着当二个php文件同一时候请求解析时,就会出现堵塞处理,处理时间就会是a.php+b.php,而不是并行,是串行时间了.

如a.php

sleep(100);echo 1;

b.php

echo 2;

先执行a.php,100秒后输出1.在执行a.php的同一时候,执行b.php,2却出如今100秒以后.如果...却不是一执行就立马出现,由于上面的配置受影响导致解析是串行时间了.

在google.翻了几个小时.

找到

The problem is that the PHP_FCGI_CHILDREN environment variable is ignored under windows, therefore php-cgi does not spawn children, and when PHP_FCGI_MAX_REQUESTS is reached the process terminates.





Check on PHP's source, file cgi_main.c, around line 1982:





#ifndef PHP_WIN32

  /* Pre-fork, if required */

  if (getenv("PHP_FCGI_CHILDREN")) {

    char * children_str = getenv("PHP_FCGI_CHILDREN");

...





So, php with fast-cgi will **never** work on Windows.





The question is, why is forking disabled under windows?









-------------https://bugs.php.net/bug.php?

id=49859-----------

得知window不支持??

???

看到网上有非常多人不懂怎么处理.而我的是測试server,认为就算了.灵机一动.就手工的开起几个php-cgi等着吧.

于是变通方案时.

手工开起n个php-cgi等着

::window不支持 nginx的多线程,仅仅能手工生成多个php-cgi

start "fcgi服务" /MIN  /D "%batDir%php"  php-cgi.exe -b 127.0.0.1:9000 -c "%batDir%php/php.ini"

start "fcgi服务" /MIN  /D "%batDir%php"  php-cgi.exe -b 127.0.0.1:9001 -c "%batDir%php/php.ini"

start "fcgi服务" /MIN  /D "%batDir%php"  php-cgi.exe -b 127.0.0.1:9002 -c "%batDir%php/php.ini"

start "fcgi服务" /MIN  /D "%batDir%php"  php-cgi.exe -b 127.0.0.1:9003 -c "%batDir%php/php.ini"



start "nginx服务" /MIN  /D "%batDir%nginx" nginx.exe

然后nginx的



http {

#window 不能派生子进程,仅仅能人工配 PHP_FCGI_CHILDREN 在window不起作用的

upstream fastcgi_backend {

server 127.0.0.1:9000;

server 127.0.0.1:9001;

server 127.0.0.1:9002;

server 127.0.0.1:9003;

}

弄一个备用server

域名配置时,使用转发到备用server

server {

listen       80;

server_name  q.qq;

access_log ./../log/q.qq.access.txt;

root d:/web/www;



location ~ \.php$ {

fastcgi_pass   fastcgi_backend;

}

}

ok.同一时候打开4个php是能够独立解析了,并行,可是5个呢?第5个还是要等等吧..........

window+nginx+php-cgi的php-cgi线程/子进程问题的更多相关文章

  1. Nginx 解析PHP的原理 | CGI、FastCGI及php-fpm的关系

    Nginx解析PHP的原理,CGI/FastCGI以及PHP-Fpm的关系. 一.PHP+Nginx应运而生的场景.随着互联网的发展,用户对此接受面广,数据流的增大使得Web端的运行承载压力日益增大, ...

  2. Nginx解析PHP的原理 | CGI、FastCGI及php-fpm的关系

    Nginx解析PHP的原理,CGI/FastCGI以及PHP-Fpm的关系. 一.PHP+Nginx应运而生的场景.随着互联网的发展,用户对此接受面广,数据流的增大使得Web端的运行承载压力日益增大, ...

  3. window nginx 中文路径, 文件名乱码问题解决

    window nginx 中文路径, 文件名乱码, error, not found 此问题是由于windows系统编码与nginx编码设置不一致导致的,因此我们要统一二者的编码 nginx编码设置 ...

  4. 解决boa网页操作出现502 Bad Gateway The CGI was not CGI/1.1 compliant的一种可能

    最近在把一套网页操作的接口从原来Android5.0上移植到Android7.0上. 客户端连接验证的时候主页显示异常 502 Bad Gateway The CGI was not CGI/1.1 ...

  5. boa + ajax + cgi ajax请求cgi

    最近公司要做一个通讯管理机,然后需要和另外一个同事一起做,我们需要用到boa+Ajax+CGI,以前没试过与CGI交互,一开始发现问题挺大的,用ajax请求cgi,总是不返回数据,又或者请求回来的是c ...

  6. window+nginx+php

    今天在Windows上配置了下nginx,看了不少其他大牛们记录的博客,自己也操作了一番,记录一下备忘. nginx download: http://nginx.org/en/download.ht ...

  7. window nginx 启动无提示错误,却没有listen 80port

    一直使用虚拟机来使用web+hostonly方式; 今天为了測试一个php平台的window系统兼容性, 在官方下载了window-nginx 1.9.1版本号; 解压到文件夹, 执行nginx.ex ...

  8. window nginx 简单搭建服务器访问静态资源

    nginx命令: 启动: start nginx 停止:nginx -s stop ||  nginx -s quit 注:stop是快速停止nginx,可能并不保存相关信息:quit是完整有序的停止 ...

  9. Window nginx+tomcat+https部署方案 支持ios9

    客户端和 Nginx 之间走的 HTTPS 通讯,而 Nginx 到 Tomcat 通过 proxy_pass 走的是普通 HTTP 连接. 下面是详细的配置(Nginx 端口 80/443,Tomc ...

随机推荐

  1. 关于定位中left和right,top和bottom的权重问题

    关于定位中left和right,top和bottom的权重问题 在共同类中设置了定位并且设置了left等定位,如果你引用这个类并加入其他的类中也有left和right等定位,那么你设置的right或是 ...

  2. iOS设计模式——Category和 Extension

    什么是Category Category模式用于向已经存在的类添加方法从而达到扩展已有类的目的,在很多情形下Category也是比创建子类更优的选择.新添加的方法同样也会被被扩展的类的所有子类自动继承 ...

  3. Sqoop hive 和mysql 交互 完整案例

    本文完成:在hive里建管理表:注入部分数据:利用sqoop导入mysql中 期间:解决中文乱码问题   飞行报告故障表 建表命令 查看表 人工灌入少量数据 Windows系统向Linux系统数据传输 ...

  4. ajax的底层前后台交互

    为什么用ajax或者它的优点: 异步加载数据,无需切换页面 更加的用户体验,局部刷新,及时验证,操作步骤简化: 节省流量 js控制数据的加载,更加灵活多用. 底层就是XMLHttpRequest对象: ...

  5. js统计图表插件 Echarts

    Echarts 用于制作数据统计图表,一个纯 Javascript 的图表库,快捷简便的生成统计图表. 官网:https://www.echartsjs.com/ 效果 html <!DOCTY ...

  6. vue启动

    首先在终端terminal连上npm 镜像库 npm config set registry https://registry.npm.taobao.orgnpm installnpm run loc ...

  7. Anaconda安装xgboost的过程和踩过的坑

    win10下安装xgb,安装的过程波折起伏,花了5个小时,给后来人做参考喽 第一次尝试 利用以下两个软件 Git for Windows.MINGW进行安装. 安装可以参考:(https://blog ...

  8. Luogu P1991 无线通讯网

    P1991 无线通讯网 题目描述 国防部计划用无线网络连接若干个边防哨所.2 种不同的通讯技术用来搭建无线网络: 每个边防哨所都要配备无线电收发器:有一些哨所还可以增配卫星电话. 任意两个配备了一条卫 ...

  9. Makefile,Shell command,Shell Language 之间的联系

    1. Makefile 首先要知道Makefile 是什么东西,Makefile 是一个指令文件,里面存储着自定义的命令(可以借助已有的命令创造而来)在不同的系统下对Makefile 的区别不一样,L ...

  10. CCF201612-2 工资计算 java(100分)

    试题编号: 201612-2 试题名称: 工资计算 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资.假 ...