André Laugks: Apache 2.0.x: DSO mod_auth_pgsql

Hallo!

Ich möchte mod_auth_pgsql und mod_auth_mysql in den Apache 2.0.55 einbinden.

mod_auth_pgsql

Ich bekomme eine Meldung, dass das Modul erfolgreich ("Libraries have been installed in: /usr/local/apache2.2/modules") installiert wurde. Leider wird aber die so-Datei nicht erstellt. Im Verzeichnis "modules" wird die Datei mod_auth_pgsql.a und mod_auth_pgsql.la abgelegt. Unter http://www.pb82.de/_extern/mod_auth_pgsql.txt liegt der gesamte Kompilierungsvorgang. Die Pfade existieren.

==================================================================================================
Warning!  dlname not found in /usr/local/apache2.2/modules/mod_auth_pgsql.la.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/local/apache2.2/modules/mod_auth_pgsql.so
chmod: cannot access `/usr/local/apache2.2/modules/mod_auth_pgsql.so': No such file or directory
apxs:Error: Command failed with rc=65536

Installationsanleitung:
http://www.giuseppetanzilli.it/mod_auth_pgsql2/#compile

In der /etc/ld.so.conf ist /usr/local/pgsql/lib eingetragen. Es sollte aber auch ohne gehen.

André Laugks

--
Die Frau geht, die Hilti bleibt!
  1. hallo André,

    Ich möchte mod_auth_pgsql und mod_auth_mysql in den Apache 2.0.55 einbinden.
    "Libraries have been installed in: /usr/local/apache2.2/modules"

    Gibt es da nicht einen _kleinen_ Widerspruch in der Apache-Version? Mit Apache 2.2.x ändern sich einige Modulnamen (und auch ihre Funktionen zum Teil) drastisch.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hallo!

      Gibt es da nicht einen _kleinen_ Widerspruch in der Apache-Version? Mit Apache 2.2.x ändern sich einige Modulnamen (und auch ihre Funktionen zum Teil) drastisch.

      Upps, sorry! Ich hatte es zuvor unter Apache 2.2.x versucht. Weil sich das mit den Modulnamen geändert hat, habe ich noch einmal auf die Projektseite geschaut.

      ----------------------------------------><8--------------------------------------------------
      This page documents version 2.0.3 (2006 01 05) of mod_auth_pgsql require Apache >= 2.0.40 and PostreSQL >=  7.x
      ----------------------------------------><8--------------------------------------------------

      Dann habe ich den Apache 2.0.55 verwendet. Auf der Webseite habe ich auch nichts vom Apache 2.2 gelesen.

      -> Libraries have been installed in: /usr/local/apache2/modules

      Mit mod_auth_mysql habe ich das selbe Problem. Im 1.3 hab eich es installiert bekommen. Ich benötige aber den Apache2.

      André Laugks

      --
      Die Frau geht, die Hilti bleibt!
      1. hallo André,

        Upps, sorry! Ich hatte es zuvor unter Apache 2.2.x versucht.

        Es sieht fast so aus, als hättest du dir nur die Module dazugeladen (ich kann mich da irren). Wirf deinen Apache nochmal ganz und gar raus und kompiliere ihn dir danach vollständig neu - das müßte ausreichen.

        Und: ja, mit mod_auth_mysql hatte ich solche Probleme sowohl bei Apache 2.0.x wie auch mit Apache 2.2.x auch schon. Neu kompilieren und aufsetzen hat geholfen.

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. Hallo Christoph!

          Es sieht fast so aus, als hättest du dir nur die Module dazugeladen (ich kann mich da irren).

          Ich habe den Apache mit DSO übersetzt. Aber das ist doch der Vorteil, dass man Module nachladen kann.

          Und: ja, mit mod_auth_mysql hatte ich solche Probleme sowohl bei Apache 2.0.x wie auch mit Apache 2.2.x auch schon. Neu kompilieren und aufsetzen hat geholfen.

          Ja, das hat geholfen. Ich habe jetzt so eine Halb(DSO)-und-Halb(Statische)-Lösung.

          ./configure --prefix=/usr/local/apache2
          --sysconfdir=/etc/httpd2
          --with-layout=SuSE
          --enable-suexec
          --with-suexec-caller=wwwrun
          --with-suexec-uidmin=500
          --with-suexec-gidmin=100
          --with-suexec-docroot=/www
          --enable-module=so
          --enable-shared=max
          --enable-dav
          --enable-dav-fs
          --enable-dav-lock
          --with-module=auth_pgsql:/usr/src/mod_auth_pgsql-2.0.3/mod_auth_pgsql.c

          web1:/etc/httpd2 # /usr/local/apache2/bin/httpd -l
          Compiled in modules:
            ...
            mod_auth_pgsql.c
            ...

          Ich habe die Authentifizierung über mod_auth_pgsql noch nicht probiert. Testhalber habe ich mal eine Directive in die httpd.conf geschrieben und ein configtest gebacht. das habe ich mit OK bestätigt bekommen.

          Dann werde ich das jetzt noch einmal mit mod_auth_mysql machen.

          Vielen Dank für Deinen Tipp!

          André Laugks

          --
          Die Frau geht, die Hilti bleibt!
        2. Hallo!

          Und: ja, mit mod_auth_mysql hatte ich solche Probleme sowohl bei Apache 2.0.x wie auch mit Apache 2.2.x auch schon. Neu kompilieren und aufsetzen hat geholfen.

          Ich bekomme beim compilieren die Fehlermeldung, das die mysql.h nicht gefunden werden kann. Die liegt unter /usr/include/mysql. Was ja eigentlich das Standard-Include-Verzeichnis ist.

          Dann habe ich versucht, Flags zu setzen. Leider bringt der ./configure-Vorgang ab.

          Ich habe mal andere Module entfernt

          ./configure CPPFLAGS=I/usr/include/mysql LDFLAGS=-L/usr/lib/mysql --prefix=/usr/local/apache2
          --sysconfdir=/etc/httpd2
          --with-layout=SuSE
          --enable-suexec
          --with-suexec-caller=wwwrun
          --with-suexec-uidmin=500
          --with-suexec-gidmin=100
          --with-suexec-docroot=/www
          --enable-module=so
          --enable-shared=max --with-module=auth_mysql:/usr/src/mod_auth_mysql-3.0.0/mod_auth_mysql.c

          =======================================================================================================
          web1:/usr/src/httpd-2.0.55 # ./configure CPPFLAGS=I/usr/include/mysql LDFLAGS=-L/usr/lib/mysql --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2 --with-layout=SuSE --enable-suexec --with-suexec-caller=wwwrun --with-suexec-uidmin=500 --with-suexec-gidmin=100 --with-suexec-docroot=/www --enable-module=so --enable-shared=max --with-module=auth_mysql:/usr/src/mod_auth_mysql-3.0.0/mod_auth_mysql.c
          checking for chosen layout... Apache
          checking for working mkdir -p... yes
          checking build system type... i686-pc-linux-gnu
          checking host system type... i686-pc-linux-gnu
          checking target system type... i686-pc-linux-gnu

          Configuring Apache Portable Runtime library ...

          checking for APR... reconfig
          configuring package in srclib/apr now
          checking build system type... i686-pc-linux-gnu
          checking host system type... i686-pc-linux-gnu
          checking target system type... i686-pc-linux-gnu
          Configuring APR library
          Platform: i686-pc-linux-gnu
          checking for working mkdir -p... yes
          APR Version: 0.9.7
          checking for chosen layout... apr
          checking for gcc... gcc
          checking for C compiler default output file name... configure: error: C compiler cannot create executables
          See `config.log' for more details.
          configure failed for srclib/apr

          Die config.log sagt leider auch nichts aus.

          Hast Du vielleicht eine Idee?

          André Laugks

          --
          Die Frau geht, die Hilti bleibt!
          1. hallo André,

            checking for C compiler default output file name... configure: error: C compiler cannot create executables
            See `config.log' for more details.
            configure failed for srclib/apr

            Hast Du vielleicht eine Idee?

            Ja. Da ist die falsche libapreq oder gar keine vorhanden.

            Grüße aus Berlin

            Christoph S.

            --
            Visitenkarte
            ss:| zu:) ls:& fo:) va:) sh:| rl:|
            1. Hallo!

              Ja. Da ist die falsche libapreq oder gar keine vorhanden.

              Was macht den die libapreg?

              Ich habe da jetzt aber ein Verständnisproblem! Der eine kann ohne den anderen nicht. Der Apache braucht die installierte libapreg, und die libapreg möchte schon im Apache eingebunden sein.

              libapreq

              web1:/usr/src/libapreq2-2.0 # ./configure
              --with-apache2-apxs=/usr/local/apache2/bin --with-apache2-httpd=/usr/local/apache2/bin --with-apache2-src=/usr/src/httpd-2.0.55

              configure: error: invalid apr-config location (/usr/src/httpd-2.0.55/srclib/apr/apr-config)- did you forget to configure apr?

              Apache

              web1:/usr/src/httpd-2.0.55 # ./configure --help | grep apr
                --with-apr=DIR|FILE     prefix for installed APR, path to APR build tree,
                                        or the full path to apr-config
                --with-apr-util=DIR     prefix for installed APU, or path to APU build tree

              André Laugks

              --
              Die Frau geht, die Hilti bleibt!
              1. hallo André,

                Was macht den die libapreg?
                Ich habe da jetzt aber ein Verständnisproblem! Der eine kann ohne den anderen nicht.

                Vielleicht hilft dir hier die Doku weiter.

                configure: error: invalid apr-config location

                Es sieht so aus, als hättest du deine libapreq einfach nur am falschen Ort (Pfad) liegen.

                Grüße aus Berlin

                Christoph S.

                --
                Visitenkarte
                ss:| zu:) ls:& fo:) va:) sh:| rl:|
                1. Hallo!

                  Vielleicht hilft dir hier die Doku weiter.

                  Ja, aber das ist ja mein Verständnisproblem. Wenn ich den Apache installiere, steht mir apxs ja nocht nicht zur Verfügung. Der Apache benötigt aber APR, wenn ich ihn mit mod_auth_mysql übersetzen möchte. APR kann ich aber nur mit apxs installieren.

                  configure: error: invalid apr-config location

                  Es sieht so aus, als hättest du deine libapreq einfach nur am falschen Ort (Pfad) liegen.

                  Ich kann libapreq nicht installieren, weil ich dazu den Apache benötigt. Das ./configure-Script sucht nach eine Apache-Installation.

                  André Laugks

                  --
                  Die Frau geht, die Hilti bleibt!
                  1. hallo André,

                    Ja, aber das ist ja mein Verständnisproblem. Wenn ich den Apache installiere, steht mir apxs ja nocht nicht zur Verfügung. Der Apache benötigt aber APR, wenn ich ihn mit mod_auth_mysql übersetzen möchte. APR kann ich aber nur mit apxs installieren.

                    Ich verstehe ja deine Frustration: das ist eine Katze, die sich selber in den Schwanz beißt ...

                    Ich kann libapreq nicht installieren

                    Mir war vorhin aufgefallen, daß es in deinem posting unterschiedliche Pfadangaben gibt. Kopiere dir den ganzen Kram doch einfach mal hin und her, bis du auf allen diesen Pfaden das liegen hast, was du wahrscheinlich benötigst. Das ist zwar eine Holzhacker-Methode, aber manchmal hilfts ja.

                    Andrerseits: wenn ich deine postings richtig verstanden habe, benutzt du eine SUSE. Und die hat nun einmal eine Menge Eigenarten und Macken. Noch ein Kompromißvorschlag: hole dir deinen Apache einfach mal über YaST. Mit YOU (YaST Online Update) solltest du, wenn ich das richtig gesehen habe, jetzt auch einen Apache 2.0.55 bekommen, und da wird dann als Abhängigkeit die richtige libapr0 mitinstalliert. Und wenn du das hast, kompilierst du ihn dir halt nochmal in einem temporären Verzeichnis neu und schiebst dann alle Dateien, die du damit verändert hast, dorthin, wo sie hingehören. Das ist eine reine Verzweiflungstat, das weiß ich auch - aber wenn das eingesetzte Basissystem partout etwas andres will als du, mußt du eben nach Wegen suchen, auf denen du es überlisten kannst.

                    Ich habe im Moment nur eine SUSE 10.0 als virtuelle Maschine (VMware) hier laufen, udn da ist alles völlig glatt gegangen. Das wird dich kaum trösten, bis auf den Hinweis, daß das, was du gerne machen möchtest, durchaus auch mit einer SUSE funktionieren kann.

                    Grüße aus Berlin

                    Christoph S.

                    --
                    Visitenkarte
                    ss:| zu:) ls:& fo:) va:) sh:| rl:|
                    1. Hallo!

                      Das wird dich kaum trösten, bis auf den Hinweis, daß das, was du gerne machen möchtest, durchaus auch mit einer SUSE funktionieren kann.

                      Komisch ist, dass ich mod_auth_mysql unter Apache 1.3 installiert bekommen habe. Ich lasse das jetzt mal ein paar Tage ruhen und dann setze ich mich noch einmal dran.

                      mod_auth_pgsql läuft ja. PostgreSQL gefällt mit eh besser. Durch AdoDB muß ich das Benutzertool nicht neu programmieren.

                      Mein Schweinehund möchte aber auf dem Liveserver mod_auth_mysql noch ans laufen bekommen...

                      André Laugks

                      --
                      Die Frau geht, die Hilti bleibt!