Forum: NGINX Building nginx from Source on Windows

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
9fe63c8c724eec66b9a63a8e71786682?d=identicon&s=25 Igal @ Lucee.org (Guest)
on 2015-12-27 07:15
(Received via mailing list)
Hi,

I posted a question at
http://stackoverflow.com/questions/34478016/buildi...
-- copied below:

I'm trying to build nginx from source on Windows. I got the following
done:

1) Installed mingw, gcc, and msys

2) Downloaded the nginx source code

3) Ran the following in the msys console from the nginx source folder:

|$ auto/configure --with-cc=gcc --without-http_rewrite_module
--without-http_gzip_module (output omitted) $ make -f objs/Makefile
(output omitted) $ make install -f objs/Makefile (output omitted) |

This produced the nginx.exe file in the objs folder, but when I tried to
run it I get the following error:

|$ nginx.exe nginx: [alert] could not open error log file: CreateFile()
"/usr/local/nginx/logs/error.log" failed (3: The system cannot find the
path specified) 2015/12/26 21:49:25 [emerg] 10200#9700: CreateFile()
"/usr/local/nginx/conf/nginx.conf" failed (3: The system cannot find the
path specified) |

But when I run|ls /usr/local/nginx|I see that
the|conf|and|logs|directories are there, and the conf directory has some
files in it:

|$ ls -l conf total 34 -rw-r--r-- 1 Admin Administrators 1077 Dec 26
21:30 fastcgi.conf -rw-r--r-- 1 Admin Administrators 1077 Dec 26 21:30
fastcgi.conf.default -rw-r--r-- 1 Admin Administrators 1007 Dec 26 21:30
fastcgi_params -rw-r--r-- 1 Admin Administrators 1007 Dec 26 21:30
fastcgi_params.default -rw-r--r-- 1 Admin Administrators 2837 Dec 26
21:30 koi-utf -rw-r--r-- 1 Admin Administrators 2223 Dec 26 21:30
koi-win -rw-r--r-- 1 Admin Administrators 3957 Dec 26 21:30 mime.types
-rw-r--r-- 1 Admin Administrators 3957 Dec 26 21:30 mime.types.default
-rw-r--r-- 1 Admin Administrators 2656 Dec 26 21:30 nginx.conf
-rw-r--r-- 1 Admin Administrators 2656 Dec 26 21:30 nginx.conf.default
-rw-r--r-- 1 Admin Administrators 636 Dec 26 21:30 scgi_params
-rw-r--r-- 1 Admin Administrators 636 Dec 26 21:30 scgi_params.default
-rw-r--r-- 1 Admin Administrators 664 Dec 26 21:30 uwsgi_params
-rw-r--r-- 1 Admin Administrators 664 Dec 26 21:30 uwsgi_params.default
-rw-r--r-- 1 Admin Administrators 3610 Dec 26 21:30 win-utf |

I tried to run|$ chmod -R 0777 conf|but that did not seem to make a
difference.

What am I doing wrong? And how can I change it so that the logs and conf
files will be searched in the local directory of nginx.exe and not in
the|/usr/local/nginx folder|(which I found after some searching
at|msys\1.0\local\nginx|)?

Thanks!



--

Igal Sapir
Lucee Core Developer
Lucee.org <http://lucee.org/>
9fe63c8c724eec66b9a63a8e71786682?d=identicon&s=25 Igal @ Lucee.org (Guest)
on 2015-12-27 20:44
(Received via mailing list)
update:  so I ran the following command:

auto/configure --with-cc=gcc --prefix= --conf-path=conf/nginx.conf
--pid-path=nginx.pid --http-log-path=logs/access.log
--error-log-path=logs/error.log--without-http_gzip_module
--without-http_rewrite_module

and it creates the objs/Makefile (35kb) and Makefile (1kb) and directory
structure of the sources.  there is also an autoconf.err file with a
single line in it:  checking for gcc -pipe switch

running:

make -f objs/Makefile

populates the directory structure with .o files, and produces nginx.exe
which is about 3.14 MB (3,293,712 bytes).  can I just use that file or
do I still need to run "make install"?  running

make install -f objs/Makefile

generates an error:

test -d '' || mkdir -p ''
mkdir: `': No such file or directory
make: *** [install] Error 1

running the nginx.exe file creates two processes named nginx, but
requests to localhost:8080 (I changed the port in nginx.conf) hang, and
error.log shows the following:

2015/12/27 11:22:48 [alert] 10032#9464: GetQueuedCompletionStatus()
returned operation error (1236: The network connection was aborted by
the local system)
2015/12/27 11:22:48 [alert] 10032#9464: *1 connection already closed
while waiting for request, client: 127.0.0.1, server: 0.0.0.0:8080
A8108a0961c6087c43cda32c8616dcba?d=identicon&s=25 Maxim Dounin (Guest)
on 2015-12-28 15:53
(Received via mailing list)
Hello!

On Sun, Dec 27, 2015 at 11:44:16AM -0800, Igal @ Lucee.org wrote:

> update:  so I ran the following command:
>
> auto/configure --with-cc=gcc --prefix= --conf-path=conf/nginx.conf
> --pid-path=nginx.pid --http-log-path=logs/access.log
> --error-log-path=logs/error.log--without-http_gzip_module
> --without-http_rewrite_module

The "--with-select_module" option is missing, and that's what
causes your troubles.

[...]

> populates the directory structure with .o files, and produces nginx.exe
> which is about 3.14 MB (3,293,712 bytes).  can I just use that file or do I
> still need to run "make install"?  running

Running "make install" won't do anything good with an empty
prefix.  Just run the nginx.exe binary.

See also this howto article:

http://nginx.org/en/docs/howto_build_on_win32.html

It describes how to build nginx using MS Visual C as currently
done for official win32 builds.

--
Maxim Dounin
http://nginx.org/
9fe63c8c724eec66b9a63a8e71786682?d=identicon&s=25 Igal @ Lucee.org (Guest)
on 2015-12-28 20:45
(Received via mailing list)
Thank you, Maxim!

I prefer to build with gcc if that is possible.  MS Visual C is a mess
IMO.  As a Java developer I'm used to more intuitive tools and options,
I guess.

I will try to add --with-select_module and hopefully that will do the
trick.  I will report back once I have some findings.
A8108a0961c6087c43cda32c8616dcba?d=identicon&s=25 Maxim Dounin (Guest)
on 2015-12-28 20:49
(Received via mailing list)
Hello!

On Mon, Dec 28, 2015 at 11:44:32AM -0800, Igal @ Lucee.org wrote:

> Thank you, Maxim!
>
> I prefer to build with gcc if that is possible.  MS Visual C is a mess IMO.
> As a Java developer I'm used to more intuitive tools and options, I guess.
>
> I will try to add --with-select_module and hopefully that will do the trick.
> I will report back once I have some findings.

MinGW's gcc is expected to work fine as well.  The difference is
that you have to specify --with-cc=gcc (instead of cl) and run
make instead of nmake.

--
Maxim Dounin
http://nginx.org/
84328cdcc24a172582eb8a2f71f830d8?d=identicon&s=25 Raputin Putin (raputin)
on 2016-12-03 19:31
Hey! I found an updated guide on how to install nginx from source code
here
http://tutorials.technology/tutorials/00-install-n...
This topic is locked and can not be replied to.