You should, yes, to make sure your build as closely mirrors what is in
the Fedora repos.
Thomas
On 1/6/21 11:19 PM, Phoenix Kiula wrote:
Perfect. This is clear Thomas. Much appreciated...between Miguel's
original pointer and this clarity from you I think it solves what I'm
looking for. One last question: the `nginx -T` options...I'll add
those to the ./configure command, yes?
On Wed, Jan 6, 2021 at 10:55 PM Thomas Ward <tew...@thomas-ward.net
<mailto:tew...@thomas-ward.net>> wrote:
This is where **manually compiling by hand** is the problem. You
would do the compilation in a separate directory **NOT** inside
the space of the system's control - usually I spawn new `/tmp`
directories or destructable directories in my home space.
I'm not familiar with Fedora and the `dnf` command - but `dnf
install` installs the repositories-available-version of NGINX for
Fedora's repos.
The next steps you would take by hand are:
(1) Install **all build dependencies and runtime dependencies**
for NGINX and the modules you're compiling dynamically.
(2) Download the tarball to temporary space.
(3) At the *very* least (though I suggest you go digging in the
source of Fedora's repos to get their build options, you can find
them with `nginx -T` output though) you need to do this:
./configure
--add-dynamic-module=/path/to/third/party/module/source/directory
make
**This does not install nginx, this is the compiling of the
binaries.**
(4) Dig in the completed compile and find your .so file and put it
in /etc/nginx/modules (I believe that's where it is on your
system, but I can't validate that - again I'm not a Fedora user so
I can't verify that's exactly where you drop the module files
themselves.
These're the *basic* steps - but again this will **not** install
your manually compiled nginx to overwrite what `dnf` installs -
this simply compiles everything and it's up to you to go digging
to get the components you need and put them where you need them to
be for your system to recognize them.
Thomas
On 1/6/21 10:47 PM, Phoenix Kiula wrote:
Thank you Thomas. Much appreciate this, it sounds promising.
Appreciate your clarity.
So if I:
1. Compile nginx via `dnf install nginx` and that becomes my
system's Nginx, installed usually in `/etc/nginx`
2. In a totally separate folder, say, `/usr/src`, I then download
a tarball of Nginx and compile it along with the dynamic modules
-- which will produce the .so files for said modules
3. Copy over the modules into the usual `/etc/nginx/modules`
folder from Step 1
....in this sequence of steps, how do I make sure that:
A. The compilation in Step 2 does not become my "system's nginx"
(so when I do an `nginx -v` at the command prompt it should be
refer to the nginx installed in Step 1 above, and *not* the one
compiled via Step 2)
B. The compile in Step 2 will use the "same libraries" that DNF
used? In the DNF version of life I didn't pick any libraries
manually...DNF found what was on my system. Will the manual
compile not do the same?
Many thanks!
On Wed, Jan 6, 2021 at 10:19 PM Thomas Ward
<tew...@thomas-ward.net <mailto:tew...@thomas-ward.net>> wrote:
I'm fairly familiar with the 'compiling process' for dynamic
modules - the process is the same for NGINX Open Source as
wel as NGINX Plus.
You would need to compile the modules alongside NGINX and
then harvest the compiled .so files and put them into
corresponding locations on the system you want to load the
dynamic modules. In Ubuntu, we do this (or at least, I do)
by using the same OS and libraries as installed on the target
system (as well as the same NGINX version).
This being said, **compiling** NGINX is different than
**installing** NGINX - you can *compile* the nginx version
1.18.0 with the dynamic modules and the same configuration as
the Fedora version, and then **take the compiled module** and
load it up in your installed nginx instance. Compiling NGINX
to make the dynamic module does NOT require you to then
install that NGINX version, provided that you match the
`make` steps and installed/available libraries to those used
in the original nginx compile done in Fedora.
Thomas
On 1/6/21 5:30 PM, Phoenix Kiula wrote:
Thank you Miguel. But you misunderstood the question. This
suggestion...
nginx blog as a great guide on it though
https://www.nginx.com/blog/compiling-dynamic-modules-nginx-plus/
<https://www.nginx.com/blog/compiling-dynamic-modules-nginx-plus/>
...misses the very first question in this thread: we cannot
compile nginx from source on our server. At least not in a
way that that compiled version would become the nginx
installed in our *system*. We need to install nginx via the
default Fedora dnf package manager, which at this time
installs 1.18.0.
Now, what I don't mind doing is to compile nginx in some
self-contained folder somewhere, then use that compilation
to create the .so or whatever the module file for that
version is....if all of this module compiling does *not*
affect the system-installed dnf version of nginx. Is this
possible?
If so, the instructions do not help with this. The first
step in that official tutorial is to compile nginx and that
compiled nginx then becomes the system's main nginx. It
replaces whatever was installed via "dnf install nginx". Yes?
Hope this makes sense. Have I correctly understood how nginx
compilation works? Appreciate any pointers.
Thank you.
_______________________________________________
nginx mailing list
nginx@nginx.org <mailto:nginx@nginx.org>
http://mailman.nginx.org/mailman/listinfo/nginx
<http://mailman.nginx.org/mailman/listinfo/nginx>
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx