Frage zu Apache2 und Php

(DE) Anwendungen für Office, Multimedia und Spiele, Werkzeuge, Hilfsprogramme, etc
(EN) Applications for Office, Multimedia or Games, Tools, Utilities, e.g.
Antworten
LotharI
Beiträge: 42
Registriert: Mo 9. Mär 2015, 15:43

Frage zu Apache2 und Php

Beitrag von LotharI »

Hallo,

ich habe Apache2 v2.4.2 und php5 v5.6.12 installiert um ein Php Programm zu testen. Wie in der readme von php5 beschrieben habe ich die Datei modphp5.dll aus dem Php5\Apache2 Unterverzeichnis nach Apache2\modules kopiert. Im Apache2 Verzeichnis die startup.cmd und die httpd.conf angepasst. Nach Aufruf der startup.cmd wird das Programm mit folgender Fehlermeldung abgebrochen:

bin\\httpd: Syntax error on line 297 of ./conf/httpd.conf: Cannot load E:/apache2/modules/modphp5.dll into server: SYS0002: Die angegebene Datei konnte nicht gefunden werden. (PHP5)

Die Fehlermeldung SYS0002 ist normalerweise Quatsch, da die Dll im selben Verzeichnis steht wie die anderen Dlls die problemlos geladen werden. Etwas irritiert mich der Zusatz (php5), sucht das Programm die Dll woanders? Bei verschiedenen Tests erschien dort der komplette Pfad zu dem Verzeichnis der Dlls.

Oder liege ich damit falsch und die Programmversionen passen nicht zusammen?
Mein System: eCs 2.1 deutsch

Vielleicht hat jemand einen Tipp der mich weiter bringt.

Lothar
Andi B.
Beiträge: 742
Registriert: Di 24. Dez 2013, 16:40
Kontaktdaten:

Beitrag von Andi B. »

Ich habe die php5.dll auch in \moduls\. Warum weiß ich nicht, aber ev. hatte ich den gleichen Fehler.

P:\AMPOS2\apache2\modules\php5.dll

Allerdings läuft hier

Code: Alles auswählen

Apache/2.2.29 (OS/2) PHP/5.4.36 mod_ssl/2.2.29 OpenSSL/1.0.1i DAV/2
LotharI
Beiträge: 42
Registriert: Mo 9. Mär 2015, 15:43

Beitrag von LotharI »

Leider hat es nicht geholfen. Es kommt folgende Meldung:

Es ist ein nicht behebbarer Fehler aufgetreten.
Der Prozess wurde beendet.
Benutzeravatar
LotharS
Beiträge: 968
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von LotharS »

Hier habe ich nur ältere Versionen im Einsatz und neuere noch nicht ausgepackt. Deshalb nur zum einfachen Vergleich:

Die Zeile in der httpd.conf lautet hier: "LoadModule php5_module modules/modphp5.dll" (mit Schrägstrich und als letzte der Module-Aufzählung). Entsprechend befindet sich die dll ebenfalls in \apache2\modules.
Meine zugehörige php5.dll liegt in \apache2\bin kopiert (davon stand zwar nichts in der PHP-readme.os2, aber irgendwie muss sie ja in den libpath...).

Die php5.6.12 benötigt auch schon die libc066.dll, wozu auch immer.
LotharI
Beiträge: 42
Registriert: Mo 9. Mär 2015, 15:43

Beitrag von LotharI »

Genau so habe ich es in die httpd.conf geschrieben. Sobald ich aber die php5.dll in ein Verzeichnis kopiere das im Libpath steht kommt die Fehlermeldung ' Es ist ein nicht behebbarer Fehler aufgetreten'. Die libc066.dll habe ich in c:\ecs\dll.
Ich werde es mal mit älteren Versionen probieren.
Benutzeravatar
LotharS
Beiträge: 968
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von LotharS »

Pardon: Bist Du ganz sicher, dass Du im langen LIBPATH nur eine - nämlich die aktuelle - php5.dll hast? :)
Denn auch bei mir erscheint ein "nicht behebbarer Fehler", wenn ich mal aus Spaß eine frühere php5.dll weiter nach vorne platzierte...

In den LIBPATH gehört mehr... :idea:
Ich starte httpd über ein Programmsymbol *): cmd.exe mit Parameter </C "g:\apache2\startupLS.cmd"> (ohne die Spitzen!) und g:\apache2 als Arbeitsverzeichnis. Dabei lautet startupLS.cmd =

Code: Alles auswählen

@echo off
rem adjust as necessary
set beginlibpath=g:\apache2\bin;g:\apache2\modules;g:\mysql51\bin;
bin\httpd -d . 2>&1
*) eCs-Fenster, (produktiv:) beim Starten Symbolgröße und beim Beenden schließen
- php5.dll liegt in apache2\bin, modphp5.dll in apache2\modules. (mysqld.exe kann ich anschließend starten, wenn ich's brauche)

Dazu analog ein weiteres mit shutdownLS.cmd =

Code: Alles auswählen

/* Rexx script to shut down Apache */
pid = linein("logs\httpd.pid")
'kill.exe -TERM 'pid
mit einem Eintrag in httpd.conf: <PidFile logs/httpd.pid> (ohne die Spitzen!). kill.exe kommt mit eCS daher...

Das Problem dürfte kaum etwas mit den Versionen selbst zu tun haben, sonst hätten schon Mehrere geschrieen ;)
Viel Erfolg! :!:
LotharI
Beiträge: 42
Registriert: Mo 9. Mär 2015, 15:43

Beitrag von LotharI »

Da es eine Erstinstallation ist habe ich nur eine php5.dll auf meinem Rechner. Meine startup.cmd ist ähnlich Deiner:

@echo off
rem adjust as necessary
set beginlibpath=e:\apache2\bin;e:\apache2\modules;
bin\httpd -d . 2>&1

Die php5.dll habe ich nacheinander in verschiedene Verzeichnisse kopiert z.B. in \apache2\bin, \apache2\modules oder auch \ecs\dll. Es kam immer dieselbe Fehlermeldung.

Ich habe dann Apache2 v2.2.29 installiert, mit dieser Version gibt es keine Probleme, der Webserver läuft und Php Scripte auch. Vielleicht lag es auch daran das ich nur eine Kurzfassung der php.ini in \mptn\etc hatte. In dem Ziparchiv der v5.6.12 ist keine php.ini.sample dabei, ich habe dann eine aus einem älteren Paket genommen und angepasst.

Die php5.dll bleibt im Verzeichnis \php5, dafür steht das Verzeichnis mit in der startup.cmd.
_diver
Beiträge: 306
Registriert: Fr 27. Jun 2014, 10:57

Beitrag von _diver »

LotharI » Mi 2. Sep 2015, 15:17 hat geschrieben:Da es eine Erstinstallation ist habe ich nur eine php5.dll auf meinem Rechner. Meine startup.cmd ist ähnlich Deiner:

@echo off
rem adjust as necessary
set beginlibpath=e:\apache2\bin;e:\apache2\modules;
bin\httpd -d . 2>&1

Die php5.dll habe ich nacheinander in verschiedene Verzeichnisse kopiert z.B. in \apache2\bin, \apache2\modules oder auch \ecs\dll. Es kam immer dieselbe Fehlermeldung.

Ich habe dann Apache2 v2.2.29 installiert, mit dieser Version gibt es keine Probleme, der Webserver läuft und Php Scripte auch. Vielleicht lag es auch daran das ich nur eine Kurzfassung der php.ini in \mptn\etc hatte. In dem Ziparchiv der v5.6.12 ist keine php.ini.sample dabei, ich habe dann eine aus einem älteren Paket genommen und angepasst.

Die php5.dll bleibt im Verzeichnis \php5, dafür steht das Verzeichnis mit in der startup.cmd.
da der ältere läuft, bist du sicher du hast alle benötigten dll? Weil neuere Apache und PHP sachen meist auch neuere andere dll brauchen. chkdll32 oder pmdll helfen da.
LotharI
Beiträge: 42
Registriert: Mo 9. Mär 2015, 15:43

Beitrag von LotharI »

Ich gehe mal davon aus das bei den Dlls auf ziemlich aktuellen Stand bin. Ich habe Openoffice 4.1 und Seamonkey 2.28 installiert, die verlangen auch nach neuen Dlls.

Ich habe mir mal die beiden Apache2 Pakete angesehen. Die Version v2.4.2 wurde zuletzt 2012 aktualisiert, die v2.2.29 in 2014. D.h. das Paket mit der höheren Versionsnummer ist älter, ich habe somit mit der niedrigen Versionsnummer eine aktuellere Version installiert.
Ich habe nochmal die Version 2.4.2 installiert, die php.ini, httpd.conf und die startup.cmd habe ich beibehalten. Es kommt sofort die Fehlermeldung: Es ist ein nicht behebbarer Fehler aufgetreten.
Benutzeravatar
LotharS
Beiträge: 968
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von LotharS »

LotharI » Mi 2. Sep 2015, 20:39 hat geschrieben: Die Version v2.4.2 wurde zuletzt 2012 aktualisiert, die v2.2.29 in 2014. D.h. das Paket mit der höheren Versionsnummer ist älter.
Es sind unterschiedliche Entwicklungszweige mit unterschiedlichen 'Features', die Versionen 2.4.x und 2.2.x werden nebeneinander geführt. Näheres allgemein auf httpd.apache.org.

Paul Smedley hat eine "EXPERIMENTAL" 2.4.16 bereitgestellt und eine dazu passende modphp5.dll, beides hier zu finden. Vielleicht möchtest Du ihm ja beim Testen helfen? ;) Immerhin scheint mir die 2.2.29 eine durchaus sichere Wahl.

Bei mir läuft noch 2.2.24 (bzw. 2.2.22 auf Linux...), irgendeine 2.4er habe ich nie besessen.
_diver
Beiträge: 306
Registriert: Fr 27. Jun 2014, 10:57

Beitrag von _diver »

LotharI » Mi 2. Sep 2015, 20:39 hat geschrieben:Ich gehe mal davon aus das bei den Dlls auf ziemlich aktuellen Stand bin. Ich habe Openoffice 4.1 und Seamonkey 2.28 installiert, die verlangen auch nach neuen Dlls.
Davon ausgehen ist nicht wissen. Wie gesagt PMDLL oder chkdll32 sagen es dir genau.
Benutzeravatar
hanno
Beiträge: 97
Registriert: Do 9. Jan 2014, 22:20

Beitrag von hanno »

Hallo Lothar,

ich hatte ähnliche Schwierigkeiten und bin deshalb auf diesen Beitrag gestoßen. Bei mir fehlte "mmap", dann lief es :P

Schöne Grüße
Hanno

PS: Wenn Michael Oehlhof bereit wäre, wieder einmal ein aktuelles AMP4eCS zusammenzustellen, wäre das super. Da scheitert es aber vermutlich am "Sponsoring" auch von anderen ;)
Event. frage ich einmal bei ihm nach, ob er wieder was machen würde. Oder die Infos/Daten, wie er das Paket zusammengestöpselt hat, wären auch cool.
Antworten