<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>You should, yes, to make sure your build as closely mirrors what
      is in the Fedora repos.</p>
    <p><br>
    </p>
    <p>Thomas</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 1/6/21 11:19 PM, Phoenix Kiula
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAFWfU=uZMVM-+7jfL=3iSS7DKpOu_wtGUTkSaG80kzkGMZTNOw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div class="gmail_default" style="font-size:large">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? </div>
        <div class="gmail_default" style="font-size:large"><br>
        </div>
        <div class="gmail_default" style="font-size:large"><br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Wed, Jan 6, 2021 at 10:55
          PM Thomas Ward <<a href="mailto:teward@thomas-ward.net"
            moz-do-not-send="true">teward@thomas-ward.net</a>> wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div>
            <p>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.</p>
            <p>I'm not familiar with Fedora and the `dnf` command - but
              `dnf install` installs the repositories-available-version
              of NGINX for Fedora's repos.</p>
            <p>The next steps you would take by hand are:</p>
            <p>(1) Install **all build dependencies and runtime
              dependencies** for NGINX and the modules you're compiling
              dynamically.</p>
            <p>(2) Download the tarball to temporary space.</p>
            <p>(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:</p>
            <p>./configure
              --add-dynamic-module=/path/to/third/party/module/source/directory<br>
              make<br>
              <br>
              **This does not install nginx, this is the compiling of
              the binaries.**</p>
            <p>(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.</p>
            <p><br>
            </p>
            <p>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.<br>
            </p>
            <p><br>
            </p>
            <p>Thomas<br>
            </p>
            <div>On 1/6/21 10:47 PM, Phoenix Kiula wrote:<br>
            </div>
            <blockquote type="cite">
              <div dir="ltr">
                <div dir="ltr">
                  <div class="gmail_default" style="font-size:large">Thank
                    you Thomas. Much appreciate this, it sounds
                    promising. Appreciate your clarity.  </div>
                  <div class="gmail_default" style="font-size:large"><br>
                  </div>
                  <div class="gmail_default" style="font-size:large">So
                    if I: </div>
                  <div class="gmail_default" style="font-size:large"><br>
                  </div>
                  <div class="gmail_default" style="font-size:large">1.
                    Compile nginx via `dnf install nginx` and that
                    becomes my system's Nginx, installed usually in
                    `/etc/nginx` <br>
                    <br>
                  </div>
                  <div class="gmail_default" style="font-size:large">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 <br>
                    <br>
                  </div>
                  <div class="gmail_default" style="font-size:large">3.
                    Copy over the modules into the usual
                    `/etc/nginx/modules` folder from Step 1 </div>
                  <div class="gmail_default" style="font-size:large"><br>
                  </div>
                  <div class="gmail_default" style="font-size:large"><br>
                  </div>
                  <div class="gmail_default" style="font-size:large">....in
                    this sequence of steps, how do I make sure that: </div>
                  <div class="gmail_default" style="font-size:large"><br>
                  </div>
                  <div class="gmail_default" style="font-size:large"><br>
                  </div>
                  <div class="gmail_default" style="font-size:large">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) </div>
                  <div class="gmail_default" style="font-size:large"><br>
                  </div>
                  <div class="gmail_default" style="font-size:large">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? </div>
                  <div class="gmail_default" style="font-size:large"><br>
                  </div>
                  <div class="gmail_default" style="font-size:large">Many
                    thanks! </div>
                  <div class="gmail_default" style="font-size:large"><br>
                  </div>
                  <div class="gmail_default" style="font-size:large"><br>
                  </div>
                  <div class="gmail_default" style="font-size:large"><br>
                  </div>
                </div>
                <br>
                <div class="gmail_quote">
                  <div dir="ltr" class="gmail_attr">On Wed, Jan 6, 2021
                    at 10:19 PM Thomas Ward <<a
                      href="mailto:teward@thomas-ward.net"
                      target="_blank" moz-do-not-send="true">teward@thomas-ward.net</a>>
                    wrote:<br>
                  </div>
                  <blockquote class="gmail_quote" style="margin:0px 0px
                    0px 0.8ex;border-left:1px solid
                    rgb(204,204,204);padding-left:1ex">
                    <div>
                      <p>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.</p>
                      <p>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).</p>
                      <p>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.</p>
                      <p><br>
                      </p>
                      <p>Thomas</p>
                      <p><br>
                      </p>
                      <div>On 1/6/21 5:30 PM, Phoenix Kiula wrote:<br>
                      </div>
                      <blockquote type="cite">
                        <div dir="ltr">
                          <div class="gmail_quote">
                            <div><span class="gmail_default"
                                style="font-size:large">Thank you
                                Miguel. But you misunderstood the
                                question. This suggestion...</span></div>
                            <div><span class="gmail_default"
                                style="font-size:large"><br>
                              </span></div>
                            <div><span class="gmail_default"
                                style="font-size:large"></span> </div>
                            <blockquote class="gmail_quote"
                              style="margin:0px 0px 0px
                              0.8ex;border-left:1px solid
                              rgb(204,204,204);padding-left:1ex">
                              <div dir="auto">
                                <div dir="auto">nginx blog as a great
                                  guide on it though <a
                                    href="https://www.nginx.com/blog/compiling-dynamic-modules-nginx-plus/"
                                    target="_blank"
                                    moz-do-not-send="true">https://www.nginx.com/blog/compiling-dynamic-modules-nginx-plus/</a></div>
                                <div dir="auto"><br>
                                </div>
                              </div>
                            </blockquote>
                            <div><br>
                            </div>
                            <div><br>
                            </div>
                            <div><br>
                            </div>
                            <div>
                              <div style="font-size:large">...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. </div>
                              <div style="font-size:large"><br>
                              </div>
                              <div style="font-size:large">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? </div>
                              <div style="font-size:large"><br>
                              </div>
                              <div style="font-size:large">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? </div>
                              <div style="font-size:large"><br>
                              </div>
                              <div style="font-size:large">Hope this
                                makes sense. Have I correctly understood
                                how nginx compilation works? Appreciate
                                any pointers. </div>
                              <div style="font-size:large"><br>
                              </div>
                            </div>
                            <div style="font-size:large">Thank you. </div>
                            <div style="font-size:large"><br>
                            </div>
                          </div>
                        </div>
                        <br>
                        <fieldset></fieldset>
                        <pre>_______________________________________________
nginx mailing list
<a href="mailto:nginx@nginx.org" target="_blank" moz-do-not-send="true">nginx@nginx.org</a>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank" moz-do-not-send="true">http://mailman.nginx.org/mailman/listinfo/nginx</a></pre>
                      </blockquote>
                    </div>
                  </blockquote>
                </div>
              </div>
            </blockquote>
          </div>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>