Nginx重新编译

        今天在Mac上装了Homebrew后,下载的第一个软件是Nginx服务器,一行命令 brew nginx 就搞定了,真的是很省事。自动下载,编译,启动Nginx后,查看Nginx的加载模块。nginx -V

       

configure arguments: --prefix=/Users/david/repo/homebrew/Cellar/nginx/1.6.0_1 --with-http_ssl_module --with-pcre --with-ipv6 --sbin-path=/Users/david/repo/homebrew/Cellar/nginx/1.6.0_1/bin/nginx --with-cc-opt='-I/Users/david/repo/homebrew/Cellar/pcre/8.35/include -I/Users/david/repo/homebrew/Cellar/openssl/1.0.1g/include' --with-ld-opt='-L/Users/david/repo/homebrew/Cellar/pcre/8.35/lib -L/Users/david/repo/homebrew/Cellar/openssl/1.0.1g/lib' --conf-path=/Users/david/repo/homebrew/etc/nginx/nginx.conf --pid-path=/Users/david/repo/homebrew/var/run/nginx.pid --lock-path=/Users/david/repo/homebrew/var/run/nginx.lock --http-client-body-temp-path=/Users/david/repo/homebrew/var/run/nginx/client_body_temp --http-proxy-temp-path=/Users/david/repo/homebrew/var/run/nginx/proxy_temp --http-fastcgi-temp-path=/Users/david/repo/homebrew/var/run/nginx/fastcgi_temp --http-uwsgi-temp-path=/Users/david/repo/homebrew/var/run/nginx/uwsgi_temp --http-scgi-temp-path=/Users/david/repo/homebrew/var/run/nginx/scgi_temp --http-log-path=/Users/david/repo/homebrew/var/log/nginx/access.log --error-log-path=/Users/david/repo/homebrew/var/log/nginx/error.log --with-http_gzip_static_module

    发现没有DAV模块,查看文档。原来这个模块是默认不加载的,如果需要使用就必须重新编译nginx的源代码。说干就干,这里记录一下编译过程:

    由于使用的时homebrew下载的nginx,所以源代码在/Library/Caches/Homebrew下面,进入目录后找到nginx-1.6.0.tar.gz的压缩包,tar -xvf nginx-1.6.0.tar.gz解开压缩包。进入解压缩的目录,

     

drwxr-xr-x  15 david  admin     510 Apr 30 01:40 .
drwxr-xr-x   9 david  admin     306 Apr 30 01:39 ..
-rw-r--r--   1 david  admin  234891 Apr 24 20:52 CHANGES
-rw-r--r--   1 david  admin  357716 Apr 24 20:52 CHANGES.ru
-rw-r--r--   1 david  admin    1397 Apr 24 20:52 LICENSE
-rw-r--r--   1 david  admin     435 Apr 30 01:41 Makefile
-rw-r--r--   1 david  admin      49 Apr 24 20:52 README
drwxr-xr-x  23 david  admin     782 Apr 24 20:52 auto
drwxr-xr-x  11 david  admin     374 Apr 24 20:52 conf
-rwxr-xr-x   1 david  admin    2369 Apr 24 20:52 configure
drwxr-xr-x   6 david  admin     204 Apr 24 20:52 contrib
drwxr-xr-x   4 david  admin     136 Apr 24 20:52 html
drwxr-xr-x   3 david  admin     102 Apr 24 20:52 man
drwxr-xr-x  11 david  admin     374 Apr 30 01:41 objs
drwxr-xr-x   8 david  admin     272 Apr 24 20:52 src

    可以看到是使用make的,可以使用configure命令来编译。首先来编辑configure的命令,配置是在原来的基础上加上-with-http_dav_module,所以命令如下:

   

  

./configure --prefix=/Users/david/repo/homebrew/Cellar/nginx/1.6.0_1 --with-http_ssl_module --with-pcre --with-ipv6 --sbin-path=/Users/david/repo/homebrew/Cellar/nginx/1.6.0_1/bin/nginx --with-cc-opt='-I/Users/david/repo/homebrew/Cellar/pcre/8.35/include -I/Users/david/repo/homebrew/Cellar/openssl/1.0.1g/include' --with-ld-opt='-L/Users/david/repo/homebrew/Cellar/pcre/8.35/lib -L/Users/david/repo/homebrew/Cellar/openssl/1.0.1g/lib' --conf-path=/Users/david/repo/homebrew/etc/nginx/nginx.conf --pid-path=/Users/david/repo/homebrew/var/run/nginx.pid --lock-path=/Users/david/repo/homebrew/var/run/nginx.lock --http-client-body-temp-path=/Users/david/repo/homebrew/var/run/nginx/client_body_temp --http-proxy-temp-path=/Users/david/repo/homebrew/var/run/nginx/proxy_temp --http-fastcgi-temp-path=/Users/david/repo/homebrew/var/run/nginx/fastcgi_temp --http-uwsgi-temp-path=/Users/david/repo/homebrew/var/run/nginx/uwsgi_temp --http-scgi-temp-path=/Users/david/repo/homebrew/var/run/nginx/scgi_temp --http-log-path=/Users/david/repo/homebrew/var/log/nginx/access.log --error-log-path=/Users/david/repo/homebrew/var/log/nginx/error.log --with-http_gzip_static_module --with-http_dav_module

 

   执行后,在目录里可以看到生成的objs目录,make install编译安装后使用sudo nginx -s reload重新加载nginx服务器后再使用nginx -V查看nginx是否加载了这个模块。

   剩下来得就是配置dav的服务,用编辑器打开/Users/david/repo/homebrew/etc/nginx/nginx.conf加入dav服务的配置,可以参考文档:

   

location / {
  root     /data/www;
  client_body_temp_path  /data/client_temp;
 
  dav_methods  PUT DELETE MKCOL COPY MOVE;
 
  create_full_put_path   on;
  dav_access             group:rw  all:r;
 
  limit_except  GET {
    allow  192.168.1.0/32;
    deny   all;
  }
}

 

  重启,测试,大功告成。 

猜你喜欢

转载自david-je.iteye.com/blog/2057319