Akela: Apache-Service crashed - per commandline startet er

Hallo,

ich starte meine Apache-Sitzungen i.d.R. über einen Service-Eintrag unter Windows.
Heute habe ich in der php.ini die php_mysqli freigeschaltet und jetzt stürzt der Apache ab. Im eventlog steht nur drin, das ein Service abgebrochen wurde und im errorlog des Apache finde ich als letzten Eintrag.

mod_ssl/2.2.11 compiled against Server: Apache/2.2.11, Library: OpenSSL/0.9.8i

Merkwürdig ist jedoch, daß der Apache-Start per commandline ohne Fehler funktioniert und ich mysqli auch nutzen kann.

Hat jemand eine Idee wo ich hinfassen muß?

  • WindowsXP -> alle updates
  • Apache 2.2.11
  • PHP 5.2.10

ciao Akela

  1. Hi,

    ich starte meine Apache-Sitzungen i.d.R. über einen Service-Eintrag unter Windows.
    Heute habe ich in der php.ini die php_mysqli freigeschaltet und jetzt stürzt der Apache ab. Im eventlog steht nur drin, das ein Service abgebrochen wurde und im errorlog des Apache finde ich als letzten Eintrag.

    mod_ssl/2.2.11 compiled against Server: Apache/2.2.11, Library: OpenSSL/0.9.8i

    Merkwürdig ist jedoch, daß der Apache-Start per commandline ohne Fehler funktioniert und ich mysqli auch nutzen kann.

    Unter welchem Nutzeraccount läuft der Apache, wenn du ihn als Service startest, und unter welchem bei Start über die Commandline?

    Hat ersterer Zugriffsrechte auf die Verzeichnisse, wo der MySQL-relevante Kram liegt?

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hi ChrisB,

      der Service läuft ganz normal unter dem Systemkonto. Ich habe testweise den user geändert, das bringt aber keine Besserung.
      Das Systemkonto hat alle Rechte auf das Verzeichnis und die entsprechende dll.
      Da der httpd.exe regelrecht abschmiert, vermute ich eher ein Problem mit einer Bibliothek.

      ciao Akela

    2. Hi,

      ich habe jetzt mal folgendes probiert.
      Downgrade von PHP 5.2.10 auf 5.2.9-1
      Jetzt habe ich keinen crash mehr und ich bekomme eine Fehlermeldung in der php.log

      Unable to load dynamic library 'C:\dev\php5\ext\php_mysql.dll' - Das angegebene Modul wurde nicht gefunden.

      Die php_mysql.dll ist da und lesbar!
      Ich hatte sowas schon bei anderen Modulen. Da fehlt eine andere dll, von der die mysql-dll abhängig ist. Nur welche ist das?

      ciao Akela

      1. Hi!

        Unable to load dynamic library 'C:\dev\php5\ext\php_mysql.dll' - Das angegebene Modul wurde nicht gefunden.
        Die php_mysql.dll ist da und lesbar!
        Ich hatte sowas schon bei anderen Modulen. Da fehlt eine andere dll, von der die mysql-dll abhängig ist. Nur welche ist das?

        Genau. Diese Information steht im PHP-Handbuch unter MySQL-Installation.

        Lo!

        1. Hi,

          deshalb sollte das Ganze trotzdem nicht einfach wortlos abschmieren!

          ciao Akela

          1. Hi!

            deshalb sollte das Ganze trotzdem nicht einfach wortlos abschmieren!

            Wieso wortlos? Es gab doch eine Meldung. Eine Instanz hat festgestellt, dass eine DLL nicht geladen werden konnte. Die Ursache ist jedoch tiefer zu suchen, und diese Fehlermeldung, so es eine gab, ist nicht nach oben durchgereicht worden. Shit happens. Ob nun PHP dran schuld ist oder Windows' DLL-Lademechanismus, wer weiß ...

            Lo!

            1. Hi,

              es gab unter PHP 5.2.9-1 eine Fehlermeldung. In meinem ersten Post habe ich aber 5.2.10 verwendet und da kommt direkt der MS-debugger hoch. In den Logs finde ich dann leider keine Fehlermeldung.

              Ich verwende PHP zwar gerne als Websprache aber es ist doch immer wieder, je nach Modul, eine Bastelei. Wirklich ungeschmeidug wird es oft auch, wenn sich Module ausschließen oder eine neue PHP-Version andere libraries erfordert.
              Damit werden wir wohl leben müssen :-(

              ciao Akela

  2. Hi,

    just for info.

    Das Problem hat sich erledigt. php_mysql.dll benötigt libmySQL.dll
    Diese DLL muß in seinem Suchpfad liegen.
    Ich habe die dll jetzt kurzerhand in mein apache-bin Verzeichnis kopiert und jetzt läuft es wieder.

    ciao Akela