Frage

Ich habe PHP als Modul für Apache 2.2.11 hinzugefügt:

LoadModule php5_module "c:/php/php5apache2_2.dll"

Und auch hinzugefügt

AddType application/x-httpd-php .php

Und in der php.ini, meine Erweiterung dir ist eingestellt auf: extension_dir = "C:\php\ext"

und Ja , die Verzeichnisse korrekt sind und alle Dateien existieren.

Aber wenn ich Apache starten, erhalte ich diese Fehler:

  

PHP Warnung: PHP Startup: Unable dynamische Bibliothek 'C: \ php \ ext \ php_mysql.dll' zu laden. - Der angegebene Modul kann nicht gefunden werden \ r \ n in Unknown on line 0
  PHP Warnung: PHP Startup: Kann nicht dynamische Bibliothek 'C: \ php \ ext \ php_pdo_pgsql.dll' laden. - nicht gefunden werden konnte das angegebene Modul \ r \ n in Unknown on line 0
  PHP Warnung: PHP Startup: Kann nicht 'C: \ ext \ php_pgsql.dll php \' dynamische Bibliothek laden. - Die angegebene Modul nicht gefunden werden konnte \ r \ n in Unknown on line 0
  [Sun 17. Mai 2009 03.46.01] [Ankündigung] Apache / 2.2.11 (Win32) PHP / 5.2.9-2 konfiguriert - Wiederaufnahme des normalen Betriebs
  [Sun 17. Mai 2009 03.46.01] [Ankündigung] Server gebaut: 10. Dezember 2008 00.10.06
  [Sun 17. Mai 2009 03.46.01] [Ankündigung] Parent: Erstellt Kind-Prozess 4652
  PHP Warnung: PHP Startup: Kann nicht dynamische Bibliothek 'C: \ php \ ext \ php_mysql.dll' laden. - nicht gefunden werden konnte das angegebene Modul \ r \ n in Unknown on line 0
  PHP Warnung: PHP Startup: Kann nicht dynamische Bibliothek 'C: \ php \ ext \ php_pdo_pgsql.dll' laden. - nicht gefunden werden konnte das angegebene Modul \ r \ n in Unknown on line 0
  PHP Warnung: PHP Startup: Kann nicht 'C: \ ext \ php_pgsql.dll php \' dynamische Bibliothek laden. - Die angegebene Modul nicht gefunden werden konnte \ r \ n in Unknown on line 0
  [Sun 17. Mai 2009 03.46.01] [Ankündigung] Child 4652: Child-Prozess läuft
  [Sun 17. Mai 2009 03.46.01] [Ankündigung] Child 4652:. Den Beginn Mutex Erworbene
  [Sun 17. Mai 2009 03.46.01] [Ankündigung] Child 4652:. Ab 64 Worker-Threads
  [Sun 17. Mai 2009 03.46.01] [Ankündigung] Child 4652: Gewinde Ab dem Hafen zu hören 80.

Also ich wahrscheinlich bin zu vergessen, etwas einfach hier, kann mir jemand sagen, was ich vergessen?

War es hilfreich?

Lösung

Nicht nur müssen Sie PHP-Erweiterung DLLs, um MySQL und PostgreSQL-Unterstützung zu PHP hinzuzufügen. Sie müssen auch MySQL und PostgreSQL nativen Bibliotheken. PHP-Erweiterung der DLLs zu finden wahrscheinlich nicht einige DLL denen sie abhängig sind, so dass sie nicht gestartet werden kann.

Vergewissern Sie sich, MySQL und PostgreSQL-Client installiert, und ihre DLLs in einen lokalisierbaren Ort.

d. Beispiel:

  • php_mysql.dll hängt von libmysql.dll

Also, stellen Sie sicher, dass PHP Lage ist, libmysql.dll zu finden (ich glaube, das kommt mit der binären Verteilung von Windows PHP. Nicht sicher, obwohl).

Andere Tipps

Hinzufügen zu Pablo Santa Cruz Rat ab. Unter Windows können Sie die erforderlichen Bibliotheken im PATH Umwelt. (Exemplar Nr unbedingt auf Windows-Ordner). Wenn Bibliotheken Laden auch Witwen sieht in PATH Verzeichnissen.

Wenn Sie Standard-Win32-Binär-Distribution von php.net für PHP5.2 verwenden, dann sollte das Paket alle Abhängigkeiten in der Wurzel der Pakete enthalten. Also, wenn Sie die PHP5.2 in C:\php installiert haben, fügen Sie dieses Verzeichnis der PATH envar. Starten Sie den Apache und ich würde Erweiterungen erwarten ordnungsgemäß geladen wurde.

Ich hatte ein Problem mit einer bestimmten Version von PHP unter Windows. Das Problem war libmysql. Ich fand einen geposteten Fehler auf der php.net Website von jemandem mit dem gleichen Problem.

ich verwenden, um die vorherige PHP-Release und libmysql gearbeitet. Schauen Sie sich die Hinweise auf der PHP-Distribution Sie verwenden. Ich denke, dass nach einer bestimmten Version sie eine neue Politik in Bezug auf libmysql erwähnen.

Von dem, was Sie erwähnen, php nicht in der Lage ist, die Erweiterungen zu finden. Stellen Sie sicher, dass Sie den Weg auf php.ini festgelegt haben, dass die Erweiterungen gibt an, wo angeordnet sind, dass die Erweiterungen vorhanden sind und dass der Ordner zugegriffen werden kann (read-Berechtigungen).

Wenn alle versuchen, nicht die Erweiterung bewegen zu windows / system32 in dem Bemühen, zu finden, was könnte das eigentliche Problem sein.

Grüße,

Diese Erweiterungen hängen von nativen Bibliotheken, die von der MySQL und PostgreSQL Binärdistributionen vorgesehen sind. Installieren Sie sie und legen die Libs in Apache bin Ordner zum Beispiel. Das ist LIBMYSQL.DLL und LIBPQ.DLL ist.

ich in der Regel, dass anstelle Windows/System32 Ordner mit ihnen umweltfreundlich, weil auf meinem System nur die Apache / PHP der Client dieser Datenbanken ist und macht es auch meinen Apache / PHP-Setup mehr tragbar.

Nach meiner Erfahrung, PHP auf Windows ist ein großer Schmerz in den Hintern. Ich bekomme es schließlich zu arbeiten, aber es gibt immer eine Menge googeln und Trial-and-error beteiligt -. Für mich zumindest

Also habe ich schließlich krank und müde davon und einfach Ubuntu Server in einer virtuellen Maschine installiert und hatte es und läuft innerhalb weniger Minuten. Ob dies eine Option für Sie oder nicht, kann ich nicht sagen, aber wenn es ist, wird es auf jeden Fall Sie auf lange Sicht eine Menge Kopfschmerzen ersparen. Ganz zu schweigen können Sie immer Ihre VMs bewegen, erstellen Sie Schnappschüsse und alles tun, die andere ausgefallene Sachen, die VMs sind gut für die.

Ich hatte das gleiche Problem. Ich war immer eine dieser lästigen Popup-Fenster Fehler jedes Mal wenn ich versuchte zu phpMyAdmin einloggen. Ich tippte in dem Benutzernamen und Passwort ein und dann den Fehler werfen.

Was es für mich gelöst, wurde das Kopieren auch die libmysql.dl an das Apache-bin-Verzeichnis. Das Merkwürdige ist, apparantly die Erweiterungen wo korrekt enthalten, aber noch brauchte ich, dies zu tun.

Ich habe versucht, einige dieser Lösungen und eine oder mehrere von ihnen arbeiteten ... Neustarten der Schlüssel hier ist. Ich habe einen Neustart nicht zwischen diesen Veränderungen, aber nachdem ich neu gestartet es funktioniert:

  • hinzufügen Postgres DLL Apache lib dir
  • hinzufügen Postgres Pfad PATH
  • hinzufügen Postgres DLL system32

Ich glaube, nur würde die PATH gearbeitet hat, aber keine Zeit für Sauberkeit hier so los gehts.

Das Problem hier ist, dass Apache PHP geladen wird, aber PHP war nicht in der Lage seine Erweiterung zu laden (MySQL, PostgreSQL, ...). Ich denke, Sie sollten Pfadwerte in der php.ini-Datei im Unix-Format (nicht verwenden Backslash Zeichen als Trenn) eingeben. so in der php.ini-Datei dies ändern:

extension_dir = "C: / php / ext"

Ich bin auch gleiches Problem und gelöst, indem Sie „PostgreSQL“ ist Pfad in Systemumgebungsvariablen

hatte

PATH: C: \ Programme \ PostgreSQL \ 8.4 \ bin Sie können auch in phpinfo () überprüfen.

Wenn ich PostgreSQL installieren, Einstellung in Systempfad verpasst. Ich manuell hinzugefügt, um das System neu starten.

Ich hatte dieses Problem auch, und kopierte den relevanten (.dlls) 32 bis Systen und es immer noch nicht für mich arbeiten. Ich bin mit Windows 7 64bit. Um dies für mich arbeiten musste ich auch die libmysql.dll auf das ext Verzeichnis kopieren. Die Fehlermeldung verließ den Apache-Log und die Seite geladen mit einer günstigen Antwort (conection etabliert).

Ich hatte das gleiche Problem und haben versucht, libmySQL.dll an den Apache-bin-Ordner zu kopieren und es löste das Problem (Ich gründe PHP 5.2.5 x64 up). Vielen Dank.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top