win7停编译nginx和nginx-gridfs

win7下编译nginx和nginx-gridfs
win7下编译nginx
1、安装cygwin
http://www.cygwin.com/ 
163的mirror,安装如下内容:

1. gcc: gcc、core、g++、gdb、make
2. pcre
3. openssl
4. zlib
5. crypt
6. iconv(1.xxx以上需要)

2、编译nginx源码
http://nginx.org/
下载源码
gzip -d, tar vxf
解压后
configure --prefix=/cygdrive/c/nginx
make
即可编译生成nginx.exe
3、运行nginx
2008/01/12 16:34:56 [emerg] 2496#0: the maximum number of files supported by select() is 64
,这表示FD_SETSIZE的值比nginx配置文件中worker_connections指令所指定的值小,那么有什么办法解决这个问题呢?
第一种解决方法:把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”),这同样也可以解决上面的问题。


---------------

MongoDB GridFS 介绍 PPT 两则
http://www.oschina.net/question/12_28876

规范
http://www.mongodb.org/display/DOCS/GridFS+Specification
文档
http://www.mongodb.org/display/DOCS/GridFS
示例
http://blog.csdn.net/zhangzhaokun/article/details/6287309
http://www.open-open.com/lib/view/open1330171884015.html


1、编译时,报错:
src/core/ngx_times.c: In function ‘ngx_time_update’:
src/core/ngx_times.c:136: error: ‘timezone’ undeclared (first use in this function)
src/core/ngx_times.c:136: error: (Each undeclared identifier is reported only once
src/core/ngx_times.c:136: error: for each function it appears in.)
make[1]: *** [objs/src/core/ngx_times.o] Error 1
make: *** [build] Error 2

这是因为在nginx中,timezone是作为函数使用的。而在cgwin环境下,把timezone当成了个变量。
修改头文件os\unix\ngx_posix_config.h中timezone的定义:
#define timezonevar
改为:
extern long timezone __asm__ ("__timezone");
再编译即可。

cgywin timezone的问题,具体请参照(http://cygwin.com/ml/cygwin/2008-01/msg00449.html)


2、由于gcc编译时指定的选项-Werror导致的,将所有的警告视为错误。可以在Makefile中将它去掉。