PHP Doku:: Installation - mysqli.installation.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAnbieterspezifische DatenbankerweiterungenMySQL Improved ExtensionInstallation/KonfigurationInstallation

Ein Service von Reinhard Neidl - Webprogrammierung.

Installation/Konfiguration

<<Anforderungen

Laufzeit-Konfiguration>>

Installation

Beginnend mit PHP 5.0 ist die Unterstützung für MySQL in den Standarddistributionen nicht mehr automatisch aktiviert. Das bedeutet, dass PHP explizit so konfiguriert werden muss, dass es die MySQL-Erweiterungen nutzen kann.

Die meisten Unixdistributionen enthalten Binärversionen von PHP, die installiert werden können. Obwohl diese Binärversionen typischerweise mit aktivierter Unterstützung für die MySQL-Erweiterungen gebaut sind, müssen die Bibliotheken selbst als zusätzliches Paket installiert werden. Prüfen Sie mit dem Paketmanager Ihrer gewählten Distribution, ob entsprechende Pakete verfügbar sind.

Falls Ihre Unixdistribution kein Binärpaket von PHP mit einer verfügbaren mysqli-Erweiterung enthält, müssen Sie PHP aus dem Sourcecode neu bauen. Dies erlaubt es Ihnen anzugeben, welche MySQL-Erweiterungen Sie verwenden wollen, und auch, welche Client-Bibliothek Sie für die jeweilige Erweiterung nutzen möchten.

Um die mysqli-Erweiterung für PHP zu aktivieren, müssen Sie den PHP-Sourcecode so konfigurieren, dass er mysqli verwendet. Dies erreichen Sie, indem Sie das configure-Skript mit der Option --with-mysqli=mysql_config_path/mysql_config aufrufen, bevor Sie den Build von PHP starten. Dadurch aktivieren Sie mysqli und verwenden die MySQL-Client-Bibliothek (libmysql), um mit dem MySQL-Server zu kommunizieren.

Hinweis:

Der mysql_config_path repräsentiert den Ort, an dem die mysql_config liegt, die mit dem MySQL-Server ausgeliefert wird.

Seit PHP-Version 5.3 können Sie alternativ den neuen MySQL-Native-Treiber zusammen mit mysqli verwenden. Sie erhalten dadurch eine Reihe von Vorteilen gegenüber der Verwendung der libmysql.

Um den MySQL-Native-Treiber mit mysqli zu verwenden, müssen Sie den PHP-Sourcecode mit --with-mysqli=mysqlnd konfigurieren, bevor Sie den PHP-Build starten.

Dies ist die empfohlene Option, da die Verwendung des MySQL-Native-Treibers zu einer verbesserten Performance führt und Zugriff auf Funktionen gewährt, die bei der Verwendung der MySQL-Client-Bibliothek nicht zur Verfügung stehen. Lesen Sie Was versteht man unter dem MySQL-Native-Treiber von PHP?, um einen kurzen Überblick über die Vorteile des MySQL-Native-Treibers zu erhalten.

Es ist möglich, MySQL-Erweiterungen und Client-Bibliotheken frei zu mischen. Zum Beispiel ist es denkbar, dass die MySQL-Erweiterung die MySQL-Client-Bibliothek (libmysql) verwendet, während die mysqli-Erweiterung so konfiguriert ist, dass sie den MySQL-Native-Treiber verwendet. Alle Kombinationen von Erweiterungen und Client-Bibliotheken sind möglich.

Das folgende Beispiel baut die MySQL-Erweiterung unter Verwendung der MySQL-Client-Bibliothek und mysqli- sowie PDO-MYSQL-Erweiterungen, die den MySQL-Native-Treiber verwenden:

./configure --with-mysql=/usr/bin/mysql_config  \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd
[other options]

Installation auf Windows-Systemen

Unter Windows wird PHP in der Regel durch den Binärinstaller installiert. Sobald PHP installiert wurde, sind einige Konfigurationseinstellungen notwendig, um mysqli zu aktivieren und die Client-Bibliothek anzugeben, die verwendet werden soll.

Wie zuvor erwähnt, ist die mysqli-Erweiterung nicht standardmäßig aktiviert, daher muss die php_mysqli.dll-DLL in der php.ini aktiviert werden. Um dies zu tun, müssen Sie die php.ini-Datei finden (typischerweise liegt diese unter c:\php) und überprüfen, dass das Kommentarzeichen (ein Semikolon) vom Anfang der Zeile extension=php_mysqli.dll in der Sektion [PHP_MYSQLI] entfernt wurde.

Wenn Sie die MySQL-Client-Bibliothek mit mysqli verwenden wollen, stellen Sie sicher, dass PHP auf die Bibliothek zugreifen kann. Die MySQL-Client-Bibliothek ist in einer Datei namens libmysql.dll der PHP-Windowsdistribution enthalten. Um sie erfolgreich laden zu können, muss sie innerhalb des Pfades liegen, der von der Windows-Umgebungsvariablen PATH bestimmt wird. Lesen Sie dazu auch den FAQ-Eintrag "Wie füge ich mein PHP-Verzeichnis der PATH-Variablen unter Windows hinzu?", um mehr Informationen darüber zu erhalten. Das Kopieren libmysql.dll in das Windows-Systemverzeichnis (typischerweise c:\Windows\system) funktioniert ebenfalls, da das Systemverzeichnis standardmäßig im PATH enthalten ist. Allerdings raten wir von dieser Arbeitsweise stark ab.

Unter Windows gilt für die PHP-Versionen 5.3 und neuer, dass die mysqli-Erweiterung standardmäßig den MySQL-Native-Treiber verwendet. Das bedeutet, dass Sie sich keine Gedanken über die Konfiguration des Zugriffs auf die libmysql.dll machen brauchen; Sie müssen nur sicherstellen, dass die Erweiterung in der php.ini aktiviert ist.

Wie bei der Aktivierung jeder anderen PHP-Extension (wie z.B. php_mysqli.dll) sollte auch hier die PHP-Direktive extension_dir auf das Verzeichnis zeigen, in dem die vorhandenen PHP-Extensions liegen. Lesen Sie dazu auch den Abschnitt Manual Windows Installation Instructions. Ein entsprechender extension_dir-Wert für PHP 5 ist zum Beispiel c:\php\ext.

Hinweis:

Wenn beim Starten des Webservers ein Fehler ähnlich dem folgenden auftritt: "Unable to load dynamic library './php_mysqli.dll'", wird im Normalfall die php_mysqli.dll und/oder die libmysql.dll nicht vom System gefunden.


3 BenutzerBeiträge:
- Beiträge aktualisieren...
arekm
24.08.2010 14:49
"using the MySQL Native Driver results in improved performance and gives access to features not available when using the MySQL Client Library"

Of course there are also disadvantages:
- no SSL support (a nightmare!)
- no mysql < 4.1 support

So some people cannot use mysqlnd :(
josh dot ribakoff at gmail dot com
11.11.2009 7:21
I kept getting configure errors:

/tmp/cc4f2PKd.o: In function `main':
/usr/src/php-5.3.0/configure:14287: undefined reference to `yp_get_default_domain'
collect2: ld returned 1 exit status
configure: failed program was:
#line 14270 "configure"
#include "confdefs.h"

The solution was to configure with mysql native driver as outlined on this page.
David dot Kit dot Friedman at gmail dot com
20.08.2009 1:04
>On Windows, PHP is most commonly installed using the binary installer. Once PHP has been installed, some >configuration is required to enable mysqli and specify the client library you want it to use.

Basically, if you want to add extensions you can double-click again on the installer file. The installer will find the already installed PHP and will ask if you want to change the installation.

When you go through the prompts it will take you back to the list of extensions and you can pick which extensions you want to add.

For the mysqli extension the installer also edited php.ini so that the extension was enabled:

[PHP_MYSQLI]
extension=php_mysqli.dll

the installer added those lines to the end of the file.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)