Apache 2.0 auf Solaris 10

Im Rahmen einer Solaris 10 Installation kann auch der HTTP Server Apache2 installiert werden. Wer allerdings WebDAV mit LDAP-Authentifizierung benötigt, der wird enttäuscht werden. Das seit Version 2.0.41 zum Lieferumfang gehörende mod_auth_ldap Modul ist nicht dabei.
In diesem Fall hilft nur ein manuelles Übersetzen des Apache Webservers.

Das Kommando

pkginfo | grep apch

ergibt, dass zwei Pakete installiert wurden:

  • SUNWapch2u (usr)
  • SUNWapch2r (root)

Ein

pkgchk -l SUNWapch2u | grep Pathname

ergibt dass der usr-Anteil von Apache nach /usr/apache2 installiert wurde. Der root-Anteil wurde respektive nach /etc/apache2 und /var/apache2 installiert. Theoretische könnte man diese Apache2 Installation auf dem Rechner belassen und zusätzlich eine nach /usr/local installieren – der Übersicht wegen habe ich aber diese Pakete entfernt, habe aber zwei Dateien aus den Paketen nach /tmp kopiert.

  • /lib/svc/method/http-apache2
  • /var/svc/manifest/network/http-apache2.xml
    • Die zweite Datei ist das SMF Manifest welches das erste Skript zum Starten/Stoppen des Daemons benötigt.Jetzt kann’s losgehen. Als Vorraussetzungen müssen einige SMC Pakete von hier.Danach den aktuellen tarball herunterladen und auspacken. Es folgt der configure Schritt

      ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all
      --enable-ssl=shared --enable-ssl --with-ssl=/usr/local/ssl
      --enable-proxy --enable-proxy-connect --enable-proxy-ftp
      --enable-proxy-http --enable-ldap --enable-auth-ldap

      Bei meiner, unabsichtlich unvollständigen, Installation lief dies sofort auf einen Fehler:

      Checking for C compiler default output file...
      configure: error: C compiler cannot create executables

      Das Problem ist, dass der von Sunfreeware installierte gcc Compiler alle SUNW Entwicklerpakete benötigt, die normalerweise nach /usr/ccs installiert werden, siehe dazu folgenden Kommentar. Ergänzend muss noch erwähnt werden dass natürlich PATH und LD_LIBRARY_PATH für den make Vorgang um die Entwicklerpfade ergänzt werden müssen.
      Danach lief der configure Schritt ohne Probleme, aber make blieb nach einiger Zeit hängen:

      util_ldap.c:43:2 #error mod_ldap requires APR-util to have
      LDAP support built in

      Das Problem ist hier dass die APR (Apache Portable Runtime) entweder schon auf dem Rechner war (bei mir durch svn) oder zuvor durch den autoconfigure Schritt ohne LDAP Support erstellt wurde.
      Daher müssen folgende Schritte durchgeführt werden:

      1. APR mit LDAP erstellen (bspw. nach /usr/local/apache2-apr)
      2. APR-util mit LDAP erstellen (ins gleiche Verzeichnis)
      3. Apache2 gegen diese APR linken

      Auch diese Schritte sind nochmals hier (Apache Mailinglist) erklärt.
      Diese Schritte führten dann endlich zu einem Apache2 Webserver unter /usr/local/apache2

      Man könnte den Webserver jetzt schon durch das Startscript apachectl in /usr/local/apache2/bin starten, jedoch sollten wir die zwei am Anfang nach /tmp kopierten Files anpassen, zurückkopieren und unseren Apache2 über das Solaris10 eigene Service Management Facility starten. Im einzelnen war dies

        im Skript /lib/svc/method/http-apache2 die Pfade anpassen und ein switch restart einfügen
        in /var/svc/manifest/network/http-apache2.xml den Namen im Abschnitt service_bundle auf „http-apache2“ ändern und einen Abschnitt „restart“ einführen

    Abschliessend wird dass Manifest geprüft, in das SMF Repository eingefügt und der Dienst gestartet. Die Kommandos lauten

    svccfg validate http-apache2.xml
    svccfg import http-apache2.xml
    svcadm enable svc:/network/http:apache2

Ein Gedanke zu „Apache 2.0 auf Solaris 10“

  1. Sowohl validate als auch import müssen nochmals angewendet werden, falls man am Manifest etwas ändert. Man beachte dass man bei der http-apache2.xml ev. noch einen Pfad dazusetzen muss.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.