Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Zu blöd um MySQL in PHP einzurichten? Apache Server

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Zu blöd um MySQL in PHP einzurichten? Apache Server

    Hallo Zusammen,

    tut mir Leid, aber ich komme ohne Hilfe einfach nicht mehr weiter. Ich werd noch wahnsinnig wenn ich das nicht bald hinbekomme.

    Folgendes:

    Apache 1.3.26 installiert und für PHP konfiguriert.

    httpd:
    LoadModule php5_module "D:/Deployment/PHP/php5apache.dll"
    AddModule mod_php5.c

    <IfModule mod_dir.c>
    AddType application/x-httpd-php .php
    DirectoryIndex index.html index.php
    </IfModule>


    MySQL Version 5.0.18 installiert.

    PHP 5.1.2 über Installer installiert und extension für mysqli ebenfalls eingerichtet. (php_5.1.2_mysqli_5.0.18-win32 von PHP.net Site)

    Verzeichnisse:

    D:\Deployment\
    -> Apache\Apache Group
    -> PHP (php5apache.dll, libmysql.dll)
    -> PHP\ext (mysqli.dll) # für extensions
    -> MySQL

    In den Umgebungsvariablen ist unter PATH "D:\Deployment\PHP;" eingetragen.

    Die php.ini befindet sich im WINNT Verzeichnis und wurde so konfiguriert:

    ; Directory in which the loadable extensions (modules) reside.
    extension_dir = D:/Deployment/PHP/ext

    extension=php_mysqli.dll


    Laut Dokumentation unter PHP.net sollte alles laufen. Es läuft auch alles, solange ich die extension php_mysqli.dll auskommentiert habe.

    phpinfo() funktioniert einwandfrei, d.h. PHP läuft mit dem Apache. Nur ich krieg dieses MySQL nicht zum laufen. Wenn die extension drin ist bekomme ich beim Apache-Start immer diesen Fehler:

    Anwendungspopup: Apache.exe - Einsprungpunkt nicht gefunden: Der Prozedureinsprungpunkt "client_errors" wurde in der DLL "LIBMYSQL.dll" nicht gefunden.

    Muss ich in der PHP.ini noch irgendwas konfigurieren? Hier gibt es ja diese mysqli-Einstellungen, wie:

    mysqli.default_port =
    mysqli.default_socket =
    mysqli.default_host =
    mysqli.default_user =
    mysqli.default_pw =

    Ich bin echt ratlos - warum bekomme ich so ne blöde Fehlermeldung. Findet der die LIBMYSQL.dll generell nicht? Diese liegt im PHP Verzeichnis und durch die Umgebungsvariable ist das doch eindeutig. Oder muss die das in der httpd von Apache noch mit geladen werden unter LoadModule? Wenn ja mit welchem Namen?

    LoadModule php5_mysql_module "D:/Deployment/PHP/libmysql.dll" funktioniert zum Beispiel nicht weil der den namen php5_mysql_module nicht mag.

    Habe auch schon gelesen, dass die libmysql.dll ins Windows Verzeichnis kopiert werden soll. In der Dokumenation auf PHP.net wird davon aber abgeraten und das mit den Umgebungsvariablen erklärt (PATH). Und mein Problem beseitigt die Kopie ins WINNT Verzeichnis auch nicht.

    Ich google schon wie verrückt und bin jetzt schon den ganzen Tag damit beschäftigt MySQL zum Laufen zu bringen.

    Also MySQL an sich läuft - nur das mit PHP und Apache klappt nicht.

    Ich hoffe ihr könnt mir weiterhelfen. Weiß echt nicht mehr weiter.

    Dank euch.

    mike

  • #2
    LoadModule mysql_module "D:/Deployment/PHP/libmysql.dll" schonmal probiert?

    Kommentar


    • #3
      Hallo Sclot,

      joa habs ja mit php5_mysql_module probiert. Jetzt eben mit mysql_module nur dann bekomme ich immer so einen Fehler beim Apache Start:

      Syntax Error on Line ... of d:/deployment/apache group/apache/conf/httpd.conf:
      Can't locate API module structure 'mysql_module' in file d:/deployment/php/libmysql.dll: (127) Die angegebene Prozedur wurde nicht gefunden.

      Gibts hier irgendwie ne spezielle Namensraumvergabe für die einzelnen Module? Wo steht das denn? Habe überall schon gesucht. Ist es bei mysqli anders als bei mysql?

      danke.

      Kommentar


      • #4
        Man kann sich das Leben auch unnötig schwer machen. Siehe http://www.apachefriends.de

        Gruß
        phpfan

        Kommentar


        • #5
          ja ich habe das schon gelesen nur.. ich möchte das so hinbringen. Es kann doch nicht sein, dass das nicht geht. An irgendetwas muss es ja liegen und solange ich das nicht weiß hilft mir auch das bei apachefriends nichts. Nur dass es dort vielleicht einfacher zu konfigurieren ist. Aber deswegen hat es mein Problem auch nicht gelöst und bin immer noch so schlau wie vorher.

          Kommentar


          • #6
            kennt sich hier denn keiner aus?! Oder hat das Problem sonst keiner? Ich will nicht auf dieses XAMPP umsteigen, weil der Apache 2 bei mir nicht richtig läuft.

            Kommentar


            • #7
              Ist deine libmysql.dll möglicherweise kaputt? Du könntest es ja mal mit dieser hier testen.

              Kommentar


              • #8
                ne kaputt ist sie nicht, hab die von deinem link ausprobiert. Klappt auch nicht.

                Hab mir die aktuellen DLL's extra runtergeladen siehe:

                http://dev.mysql.com/downloads/connector/php/

                Da holte ich mir die dll für mysqli, weil unter php.net bei der mysql-Konfiguration folgendes steht:

                Diese MySQL Erweiterung unterstützt nicht die volle Funktionalität von MySQL Versionen höher als 4.1.0. Um die volle Funktionalität dieser Versionen zu nutzen benutzen Sie die MySQLi Erweiterung.

                Also hab ich mir das gezogen und in die richtigen Verzeichnisse entpackt. Die mysqli extension in der php.ini eingebunden, aber nix geht. Ständig bekomm ich so scheiss Meldungen beim Apache Start:

                Wenn ich mysqli einbinde dann das:
                Anwendungspopup: Apache.exe - Einsprungpunkt nicht gefunden: Der Prozedureinsprungpunkt "client_errors" wurde in der DLL "LIBMYSQL.dll" nicht gefunden.

                Wenn ich mysql einbinde dann das:
                Anwendungspopup: Apache.exe - Einsprungpunkt nicht gefunden: Der Prozedureinsprungpunkt "mysql_thread_end" wurde in der DLL "LIBMYSQL.dll" nicht gefunden.

                Das kann doch nicht sein oder? Ich les auch nirgends, dass man beim Apache noch die libmysql.dll laden muss. Aber wie zieht er dann diese Datei?!

                Kommentar


                • #9
                  Zitat von m!k3
                  Hab mir die aktuellen DLL's extra runtergeladen siehe:
                  http://dev.mysql.com/downloads/connector/php/
                  Du hast also die dll-Dateien von der MySQL-Seite verwendet und nicht die aus dem PHP-Paket?

                  Zitat von m!k3
                  Das kann doch nicht sein oder? Ich les auch nirgends, dass man beim Apache noch die libmysql.dll laden muss. Aber wie zieht er dann diese Datei?!
                  Da PHP bei dir als Apachemodul läuft, wird logischerweise auch PHP und somit die MySQL(i)-Erweiterung beim Start des Apache versucht zu starten. Das ist also schon richtig so.

                  Kommentar


                  • #10
                    joa hab mir die von der mysql seite gezogen weil dort steht:

                    Why should I download the PHP mysql/mysqli extensions from mysql.com and not from php.net?
                    The binary distribution of mysql.com is based on the latest MySQL Client libraries. Only the libraries used for the mysql.com distributions contain the latest bug fixes and can use all the features of the MySQL Server versions 4.1.16+ and 5.0.18+.

                    The PHP 5.1 distribution that is available on php.net is linked against an old version of the MySQL Client API library. The mysql and mysql extensions from php.net are based on the MySQL Client API version 4.1.7. The MySQL Client API versions used for the mysql.com downloads are 4.1.16 and 5.0.18.

                    We recommend to use the MySQL Client API version that matches the MySQL Server version. For the MySQL Server 5.0.18 you should use the MySQL Client API 5.0.18 (mysql.com download) but not 4.1.7 (php.net download). For example, mysqli_stmt_bind_param() will fail when you try to access a DECIMAL column on a MySQL 5.0.18 server if you use old versions of the MySQL Client API, like the php.net downloads do.

                    Ich denke das macht doch auch Sinn die extensions auf das MySQL Paket zugeschnitten herunterzuladen.

                    Ich probier jetzt mal die PHP dll's aus....

                    ....

                    mysql.dll:

                    Anwendungspopup: Apache.exe - Einsprungpunkt nicht gefunden: Der Prozedureinsprungpunkt "mysql_real_escape_string" wurde in der DLL "LIBMYSQL.dll" nicht gefunden.

                    mysqli.dll:
                    Anwendungspopup: Apache.exe - Einsprungpunkt nicht gefunden: Der Prozedureinsprungpunkt "mysql_slave_query" wurde in der DLL "LIBMYSQL.dll" nicht gefunden.

                    Immer irgend ein anderer Fehler.. ich werd gleich irre...
                    ich hab doch mysql 5.0.18 .. warum mag der die extensions nicht.. ich versteh das nicht..

                    Kommentar


                    • #11
                      das steht im apache error logfile:

                      PHP Warning: PHP Startup: Unable to load dynamic library 'D:/Deployment/PHP/ext\php_mysqli.dll' - Die angegebene Prozedur wurde nicht gefunden.
                      in Unknown on line 0

                      dann hab ich in der php.ini
                      extension_dir = D:/Deployment/PHP/ext
                      auf
                      extension_dir = D:\Deployment\PHP\ext
                      geändert.

                      PHP Warning: PHP Startup: Unable to load dynamic library 'D:\Deployment\PHP\ext\php_mysqli.dll' - Die angegebene Prozedur wurde nicht gefunden.
                      in Unknown on line 0

                      War also auch nicht der Fehler...

                      Kommentar


                      • #12
                        also ich habs gelöst nachdem ich mit der Apache Error Meldung weiter gegoogelt habe.. im Verzeichnis WINNT\System32 war eine libmysql.dll mit rund 200kb vorhanden. Diese Datei hat er ständig bezogen beim Apache Start, deswegen auch diese komischen Fehlermeldungen. Habe die Datei gelöscht und siehe da, er holt sich die Datei aus dem PHP Verzeichnis.

                        Nun meine Frage... woher kam diese libmysql.dll Datei im System32 Verzeichnis? Wird die standardmäßig mit dem PHP Installer mitinstalliert? Kommt diese Datei von einer anderen Software?! Also ich selber kann sie dort nicht hinkopiert haben, weil ich keine libmysql.dll mit der Größe ca. 200kb besitze. Sehr merkwürdig. Kommt die Datei evtl. durch eine ältere PHP Installation?!

                        Kommentar


                        • #13
                          Zitat von m!k3
                          Wird die standardmäßig mit dem PHP Installer mitinstalliert? Kommt diese Datei von einer anderen Software?!
                          Normalerweise sollte der PHP-Installer keine Dateien in das Windowsverzeichnis kopieren.

                          Zitat von m!k3
                          Sehr merkwürdig. Kommt die Datei evtl. durch eine ältere PHP Installation?!
                          Hattest du vor längerer Zeit schon mal eine PHP-Version mit MySQL-Erweiterung installiert?

                          Kommentar


                          • #14
                            Zitat von xabbuh
                            Hattest du vor längerer Zeit schon mal eine PHP-Version mit MySQL-Erweiterung installiert?
                            installiert vielleicht.. war damals die mysql erweiterung noch standardmäßig dabei?! Habe nämlich nie irgendwas konfiguriert.
                            Die lib-Datei ist doch aber eine Datei von PHP, oder gibts noch andere Software?!

                            Kommentar


                            • #15
                              Zitat von xabbuh
                              Normalerweise sollte der PHP-Installer keine Dateien in das Windowsverzeichnis kopieren.
                              naja doch.. beim Installer installiert er ja auch die php.ini ins WINNT Verzeichnis.. hmmm....

                              Kommentar

                              Lädt...
                              X