nginx-build
- provides a command to build nginx seamlessly.
go get -u github.com/cubicdaiya/nginx-build
If you don't have go-runtime, you may download the binary from here.
If you are Mac OS X user, you can use Homebrew.
brew tap cubicdaiya/nginx-build
brew install nginx-build
$ nginx-build -d work
nginx-build: 0.4.4
Compiler: gc go1.5
2015/08/30 11:36:26 Download nginx-1.9.4.....
2015/08/30 11:36:28 Extract nginx-1.9.4.tar.gz.....
2015/08/30 11:36:28 Generate configure script for nginx-1.9.4.....
2015/08/30 11:36:28 Configure nginx-1.9.4.....
2015/08/30 11:36:35 Build nginx-1.9.4.....
2015/08/30 11:36:40 Complete building nginx!
nginx version: nginx/1.9.4
built by clang 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
configure arguments: --with-cc-opt=-Wno-deprecated-declarations
2015/08/30 11:36:40 Enter the following command for install nginx.
$ cd work/1.9.4/nginx-1.9.4
$ sudo make install
$
nginx-build
provides a mechanism for customizing configuration for building nginx.
Prepare a configure script like the following.
#!/bin/sh
./configure \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
Give this file to nginx-build
with -c
.
$ nginx-build -d work -c configure.example
From v0.4.0
, nginx-build
allows to use nginx's configure options directly.
$ nginx-build -d work \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--with-http_stub_status_module \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--with-debug \
--with-http_gzip_static_module \
--with-http_spdy_module \
--with-http_ssl_module \
--with-pcre-jit \
nginx-build
allows to use multiple --add-module
from v0.4.2
.
$ nginx-build \
-d work \
--add-module=../nginx/ngx_small_light \
--add-module=../nginx/ngx_dynamic_upstream
On the other hand, nginx-build
allows to embed multiple 3rd party modules with the single --add-module
like the following, too.
$ nginx-build \
-d work \
--add-module=../nginx/ngx_small_light,../nginx/ngx_dynamic_upstream
The values of --add-module
of nginx-build
must be separated by ','. This feature is introduced in v0.4.0
.
There are the limitations for the direct configuration below.
--with-pcre
(force PCRE library usage) is not allowed--with-pcre=DIR
(set path to PCRE library sources) is allowed--with-libatomic
(force libatomic_ops library usage) is not allowed--with-libatomic=DIR
(set path to libatomic_ops library sources) is allowed
The limitations above are attributed by the flag package of Go. (multiple and different types from each other are not allowed)
Give -zlib
to nginx-build
.
$ nginx-build -d work -zlib
-zlibversion
is an option to set a version of zlib.
$ nginx-build -d work -zlib -zlibversion=1.2.8
Give -pcre
to nginx-build
.
$ nginx-build -d work -pcre
-pcreversion
is an option to set a version of PCRE.
$ nginx-build -d work -pcre -pcreversion=8.37
Give -openssl
to nginx-build
.
$ nginx-build -d work -openssl
-opensslversion
is an option to set a version of OpenSSL.
$ nginx-build -d work -openssl -opensslversion=1.0.2d
nginx-build
provides a mechanism for embedding 3rd-party modules.
Prepare a ini-file below.
[echo-nginx-module]
form=git
url=https://github.com/openresty/echo-nginx-module.git
rev=v0.58
[ngx_devel_kit]
form=git
url=https://github.com/simpl/ngx_devel_kit
rev=v0.2.19
Give this file to nginx-build
with -m
.
$ nginx-build -d work -m modules.cfg.example
nginx-build
supports to build OpenResty.
$ nginx-build -d work -openresty -pcre
If you don't install PCRE on your system, it is required to add the option -pcre
.
And there is the limitation for the support of OpenResty.
nginx-build
does not allow to use OpenResty's unique configure options directly.
But you can use the common options of nginx and OpenResty directly.
nginx-build
supports to build Tengine.
$ nginx-build -d work -tengine
There is the limitation for the support of Tengine.
nginx-build
does not allow to use Tengine's unique configure options directly.
But you can use the common options of nginx and Tengine directly.