PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP-Modul mysqli.so mit Debian neu kompilieren



PierreS
14.03.06, 16:41
Hallo,

ich habe Debian Sarge auf dem Server und PHP5 mit MySQL5 von dotdeb.org installiert. Leider scheint es so, daß mysqli.so falsch gelinkt wurde; nämlich gegen die clientlib von mySQL4.

Jetzt bekomme ich bei einigen Abfragen folgenden Fehler:

mysqli_stmt_bind_result() [function.mysqli-stmt-bind-result]: Server returned unknown type 246. Probably your client library is incompatible with the server version you use!

Ich habe dem Maintainer zwar schon Bescheid gegeben, aber ich fürchte, ich hätte sehr gerne bald eine Lösung dafür. Also habe ich versucht das Modul neu zu kompilieren.

Das Paket heißt php5-mysqli; Also habe ich es mit apt-get source php5-mysqli versucht. Wie komme ich nun am schnellsten zum Ziel? dpkg-buildpackage schlägt fehl, da ca. 200 -deb-Pakete fehlen (kann man die automatisch installieren?). Und wie stelle ich dann sicher, daß er gegen die richtige lib kompiliert?

Viele Grüße

Pierre

Tomek
14.03.06, 16:57
apt-get source php5
Dann in das Quellverzeichnis wechseln und überprüfen, welche Abhängigkeiten fehlen:

dpkg-checkbuilddeps
Die fehlenden Pakete nachinstallieren und nach dem ändern der Configure-Optionen PHP5 neubauen lassen:

dpkg-buildpackage -us -uc

PierreS
14.03.06, 18:58
checking for MySQL support... yes, shared
checking for specified location of the MySQL UNIX socket... /var/run/mysqld/mysqld.sock
checking for MySQL UNIX socket location... /var/run/mysqld/mysqld.sock
checking for mysql_close in -lmysqlclient... yes
checking for MySQLi support... yes, shared
checking whether to enable embedded MySQLi support... no
checking for mysql_set_server_option in -lmysqlclient... no
configure: error: wrong mysql library version or lib not found. Check config.log for more information.
make: *** [configure-apache-stamp] Fehler 1


Hm...

ProfBunny
14.03.06, 19:10
jo, gibt es

apt-get build-dep php5

mfg

PierreS
14.03.06, 19:58
So, ich habe das Problem wie folgt lösen können. Ich denke, daß ist für einige interessant:

Ich habe das mysqli-Modul neu übersetzt mit:
apt-get source php5-mysqli
cd php5-...
./configure --with-mysqli=/usr/bin/mysql_config --without-mysql
make
cp ext/mysqli/modules/mysqli.so /usr/lib/php5/...

Es funktioniert nun alles wie erwartet. phpinfo() zeigt nun auch mySQL5 als Version und nicht mehr mySQL4.