windows下使用nginx服务器执行curl_exec超时问题解决:windows下手动拉起php-cgi子进程实现nginx并发处理

1 篇文章 0 订阅
1 篇文章 0 订阅
场景简述

window系统下使用phpstudy搭建集成开发环境,使用的是PHP5.6+Nginx组合,在本地项目中执行curl_exec()请求时,提示:

Maximum execution time of 30 seconds exceeded

但奇怪的是使用apache服务器却可以正常执行。

原因:

windows 下 nginx+php环境,并不支持并发。

解决方案:

windows下不支持自动拉起子进程实现并发,那么要实现并发,只能通过手动进行子进程拉起操作。实现步骤如下:

  1. 在配置nginx vhost时,增加fastcgi_pass的监听端口号
http {
    # 其他配置省略,增加以下代码
    upstream fastcgi_backend {
        server 127.0.0.1:9000;
        server 127.0.0.1:9001;
    }
}
  1. 在对应的sever配置中修改请求转发配置:
server{
    //其他配置省略,在server对应的转发配置修改如下
    location ~ \.php(.*)$  {
		fastcgi_pass   fastcgi_backend;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
		include        fastcgi_params;
		#fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
		#fastcgi_param  PATH_INFO  $fastcgi_path_info;
		#fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
	}
}

  1. 通过cmd启动多个php-cgi进程
  • 打开cmd 或bash 命令行运行:
<path>/php-cgi.exe -b 127.0.0.1:9000 -c <path>/php.ini
  • 打开新的命令行窗口
<path>/php-cgi.exe -b 127.0.0.1:9001 -c <path>/php.ini

其中 更换为对应执行文件的本地路径即可(直接物理路径), 两个窗口都需要保持打开状态。

解决方案二:
打开phpstudy的nginx.conf文件,修改配置项如下:

worker_processes  2;//设置worker进程数量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值