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:\phpStudy\PHPTutorial\php\php-7.2.1-nts\php-cgi.exe -b 127.0.0.1:9001 -c D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\php.ini
- 1
- 2
- 3
批处理start.bat
start "fcgi服务" /MIN D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\php-cgi.exe -b 127.0.0.1:9000 -c D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\php.ini
start "fcgi服务" /MIN D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\php-cgi.exe -b 127.0.0.1:9001 -c D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\php.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,是没有监听的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现