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

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

把ngx_select_module事件处理模块去掉,通过在执行configure时指定参数—without-select_module。

修改nginx的配置文件(c:\nginx\conf\nginx.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 Files\php-5.3.10-Win32-VC9-x86\php.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 Files\php-5.3.10-Win32-VC9-x86\php.ini\""

$ cygrunsrv -S php-fcgi

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

也可以使用bat脚本实现开机自动启动,因为windows下可以穿透cygwin直接执行shell命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值