WinFuture-Forum.de: PHP 8.1 startet nicht - Fehler in der Ereignisanzeige - WinFuture-Forum.de

Zum Inhalt wechseln

Windows 10: Alle News, der Download sowie zahlreiche Screenshots und Videos zum neuen Betriebssystem von Microsoft. Jetzt im WinFuture Windows 10 - Special informieren!
Seite 1 von 1

PHP 8.1 startet nicht - Fehler in der Ereignisanzeige


#1 Mitglied ist offline   franc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 101
  • Beigetreten: 18. Oktober 05
  • Reputation: 1

geschrieben 03. Dezember 2022 - 19:32

Hallo
ich habe auf meinem Windows 10 PC mit Apache 2.4.54 lokal PHP 8.0 am Laufen, das geht auch.
Ich habe dann PHP 8.1 aus der ZIP in einen anderen Ordner (PHP81) und wollte umschalten, also im Apache mit:
	LoadModule php_module "c:/Program Files/PHP/8.1/php8apache2_4.dll"
	PHPIniDir "c:/Program Files/PHP/8.1/"

eingebunden, aber starte ich den Apache neu wird das PHP nicht gestartet, also .php Seiten auf meinem Lokalhost gehen icht.
Schalte ich wieder um auf den 8.0 geht wieder alles.
Ich kriege beim Versuch PHP 8.1 zu starten in der Ereignisanzeige für jede Extension einen Fehler, zB:
Die Beschreibung für die Ereignis-ID "4" aus der Quelle "PHP-8.0.25" wurde nicht gefunden. Entweder ist die Komponente, die dieses Ereignis auslöst, nicht auf dem lokalen Computer installiert, oder die Installation ist beschädigt. Sie können die Komponente auf dem lokalen Computer installieren oder reparieren.

Falls das Ereignis auf einem anderen Computer aufgetreten ist, mussten die Anzeigeinformationen mit dem Ereignis gespeichert werden.

Die folgenden Informationen wurden mit dem Ereignis gespeichert: 

php[18980]
PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: c:\Program Files\PHP\8.1\ext\mysqli (Das angegebene Modul wurde nicht gefunden), c:\Program Files\PHP\8.1\ext\php_mysqli.dll (Die angegebene Prozedur wurde nicht gefunden)) ("c:\Apache24\bin\httpd.exe" -k runservice)

Die Nachrichtenressource ist vorhanden, die Nachricht wurde in der Nachrichtentabelle jedoch nicht gefunden


Siehe auch den Screenshot im Anhang.
Angehängtes Bild: Graphic_03_12_2022 19_23_25.jpg

Der Pfad auf das 8.1 stimmt.
Was mich irritiert ist, dass die Ereignisanzeige als Quelle von PHP-8.0.25 spricht, aber es ist ja PHP-8.1.12 und nicht 8.0
Ich habe testweise dann die alte 7.4 eingesetzt, danach direkt die 8.1 aber immer noch sei die Quelle 8.0
Ich komme nicht weiter, das hatte ich noch nie.
Neustarten hat natürlich nichts gebracht, auch alle Extensions zu deaktivieren (in der php.ini) brachte nichts.

Hat jemand noch einen Tipp, was das sein kann?
Danke.
franc

Dieser Beitrag wurde von franc bearbeitet: 03. Dezember 2022 - 20:05

0

Anzeige



#2 Mitglied ist offline   franc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 101
  • Beigetreten: 18. Oktober 05
  • Reputation: 1

geschrieben 04. Dezember 2022 - 12:28

Leider ist es das nicht, das PHP81 in Klammern hatte ich nur zur Erläuterung angefügt, das war nicht der Pfad, der ist (wie oben):
"c:\Program Files\PHP\8.1\"

Für PHP 8.0 ist er bis auf das 0 (statt 1) identisch. Aber da gab es ja keine Änderungen die mir bekannt wären, dass sich da die Art den Pfad zu definieren geändert hätte.

Jetzt hab ich noch den Apache (nur von VS16 auf VS17, zudem die VC-Redist noch mal installiert) und PHP aktualisiert, also PHP 8.1.13, zudem die php.ini neu und ohne jede Extension, bringt nichts.
Zudem auch noch die PHP 8.1 in den Systempfad.
Der Apache OHNE PHP geht aber, wie erwähnt und die Konf. wohl auch ok:

c:\Apache24\bin>httpd -t
Syntax OK


Immer noch ein Batzen solcher nichtssagender Fehlermeldungen im Anwendungsereignis protokoll:
Name der fehlerhaften Anwendung: httpd.exe, Version: 2.4.54.0, Zeitstempel: 0x636ccffb
Name des fehlerhaften Moduls: unknown, Version: 0.0.0.0, Zeitstempel: 0x00000000
Ausnahmecode: 0xc0000005
Fehleroffset: 0x0000000000000000
ID des fehlerhaften Prozesses: 0x1094
Startzeit der fehlerhaften Anwendung: 0x01d907d811db1cf3
Pfad der fehlerhaften Anwendung: C:\Apache24\bin\httpd.exe
Pfad des fehlerhaften Moduls: unknown
Berichtskennung: 0eacf129-b7a7-4891-b684-f95d7b7cb462
Vollständiger Name des fehlerhaften Pakets: 
Anwendungs-ID, die relativ zum fehlerhaften Paket ist: 


Dann noch PHP 8.1 ein Verzeichnis weiter nach oben verschoben, damit keine Leerzeichen im Pfad sind, mit und ohne Anführungszeichen, mit \ oder mit / alles ohne Änderung.
Noch jemand eine Idee?

Dieser Beitrag wurde von franc bearbeitet: 04. Dezember 2022 - 13:43

0

#3 Mitglied ist offline   franc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 101
  • Beigetreten: 18. Oktober 05
  • Reputation: 1

geschrieben 04. Dezember 2022 - 16:02

UFF. Endlich geht es.
Das war schwer zu finden.
Erst fiel mir auf, dass in der PHP Info unter PHP 8.0 unter PATH das PHP 8.1 gefehlt hatte.
Ich hatte echt vergessen, dass jedes PHP Verzeichnis in den PATH muss :(
Also in der PATH System Umgebungsvariablen dazu getan. Neu gestartet, jetzt konnte man es unter PHP 8.0 zwar in PATH lesen, aber wenn ich umgeschaltet habe (also in der httpd.conf den 8.1 Pfad eingesetzt) ging es immer noch nicht.
Dann habe ich mal den PHP8.0 Ordner in PHP8.0.BAK umgenannt (dazu musste ich erst den crashhandler abschießen, der hatte an der DLL gehangen wohl) und umgestellt, jetzt geht es.

Ursache also, erstens das PHP8.1 Verzeichnis im PATH vergessen und dann dass die falsche (8.0) dll genommen wird, weil sie im Pfad zuerst kommt.
Habe die Reihenfolge jetzt umgestellt und einen Neustart gemacht, jetzt geht es.

Falls ich mal die 8.0 wieder brauche, benenn ich die 8.1 um, anstatten den Pfad wieder in der Reihenfolge zu ändern und neu zu starten, was erheblich umständlicher ist.
Falls.
Es ist anscheinend nicht so üblich, dass man gleichzeitig die 8.0 und 8.1 vorhält und bei Bedarf umschaltet, sonst wäre dieser Fehler etwas bekannter ;)

Dieser Beitrag wurde von franc bearbeitet: 05. Dezember 2022 - 16:31

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0