一聚教程网:一个值得你收藏的教程网站

热门教程

Cygwin安装nginx启用cgi并转为daemon模式

时间:2022-06-30 18:51:00 编辑:袖梨 来源:一聚教程网

Cygwin安装nginx就不多说了,需要PCRE和zlib,我这安装的1.2.6版本,因为是windows环境,需要修改主配置worker_connections到64以下,超过64会报错,可以用如下方式解决。

•把ngx_select_module事件处理模块去掉,通过在执行configure时指定参数—without-select_module。
•修改nginx的配置文件(c:nginxconfnginx.conf),把这个文件第13行的1024改为64(worker_connections指令的值)。
•在执行configure时指定额外的编译选项(–with-cc-opt=”-D FD_SETSIZE=2048”),这同样也可以解决上面的问题。
关键在于如何加载cgi,老外有个安装php-fpm的文章将的比较详细,也有翻译过来的,那个需要修改多个源码文件,文章具体地址我就懒的再找了,自己搜。这里不用php-fpm,php-cgi.exe就可以实现类似的功能,测试环境性能完全可以忽略了,php-cgi -b :9000 -c D:Program Filesphp-5.3.10-Win32-VC9-x86php.ini 监听9000端口。
这里贴一个通用的PHP cgi调用,需要解析php的地方直接包含这个文件就可以了。

conf/php5

 代码如下 复制代码

location ~* .php($|/) {
 include fastcgi_params;
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_param SCRIPT_FILENAME   $winPath$fastcgi_script_name;
 fastcgi_param SERVER_NAME       $server_name;
 fastcgi_param PATH_INFO         $fastcgi_script_name;
}


$winPath是上层配置中设置的,$document_root是cygwin格式的,应该就是root设置的那个路径。但是PHP在windows中(没有在cygwin中安装PHP)只认识windows格式的路径,所以需要单独设置这个路径。

 代码如下 复制代码

conf/conf.d/test.conf

server {
 listen       80;
 server_name  test;
 root /cygdrive/e/document/www_root/test;

 set $winPath e:/document/www_root/test;

 location / {

 }
 include php5;
}

php-cgi转为daemon模式

web server环境没问题了,但是每次都要开着cgi的窗口,而且开机需要手动启动。

cygwin可以把程序安装成windows的系统服务,这样就可以后台运行并且自动启动了,cgi的参数睁大眼睛看清楚了。

 代码如下 复制代码

$ cygrunsrv -I php-fcgi -p /cygdrive/d/Program Files/php-5.3.10-Win32-VC9-x86/php-cgi.exe -a "-b 127.0.0.1:9000 -c "D:Program Filesphp-5.3.10-Win32-VC9-x86php.ini""
$ cygrunsrv -S php-fcgi

虽然在cygwin下,但是php-cgi.exe本质是windows程序所以-c不能使用cygwin格式的路径。

也可以使用bat脚本实现开机自动启动

热门栏目