Installing dynamic modules when Nginx itself is installed via yum/dnf (Linux)

Phoenix Kiula phoenix.kiula at gmail.com
Thu Jan 7 03:47:09 UTC 2021


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 <teward at 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/
>>
>>
>
>
> ...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 listnginx at nginx.orghttp://mailman.nginx.org/mailman/listinfo/nginx
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20210106/06f0a0b9/attachment-0001.htm>


More information about the nginx mailing list