PHP lässt sich nicht kompilieren

*cerox*

Lt. Commander
Registriert
Feb. 2005
Beiträge
1.357
Hallo zusammen,

ich habe gerade einen SuSe 10 Rechner neu aufgesetzt und nun MySQL 5.0.20 und Apache 2.2.0 am laufen.

Beim Kompilieren von PHP 5.1.2, bwz. schon beim configure Script, kommt nun folgender Fehler, bei dem ich nicht mehr weiter weiß:

Code:
checking for mSQL support... no
checking for MSSQL support via FreeTDS... no
checking for MySQL support... yes
checking for specified location of the MySQL UNIX socket... no
checking for MySQL UNIX socket location... no
checking for mysql_close in -lmysqlclient... no
checking for mysql_error in -lmysqlclient... no
configure: error: mysql configure failed. Please check config.log for more information.

Die MySQL Datenbank läuft; ich kann mich auch als root an der Datenbank anmelden.

Das configure-Script habe ich folgendermaßen aufgerufen:

Code:
./configure --with-apxs2=/www/apache/bin/apxs --with-mysql=/www/mysql --with-config-file-path=/www/apache/conf

Der Pfad zum MySQL Verzeichnis stimmt - letztes Mal habe ich es genauso gemacht und es hatte so funktioniert.

Kann mir bitte jemand helfen?
 
Zuletzt bearbeitet:
mal im config.log geschaut was dort steht ?

kannst auch mal ein ps|grep mysql machen um zu sehn wo mysql liegt evtl hat sich ja doch der pfad geändert.
 
MySQL habe ich selber kompiliert und es liegt in /www/mysql - zudem habe ich den Pfad beim configure-Script von PHP angegeben. Der Pfad taucht dementsprechend auch in der Prozessliste auf...

In der config.log habe ich schon nachgeschaut -das ist für mich spanisch - hier mal ein Auszug der letzten Zeilen:

Code:
/www/mysql/lib/libmysqlclient.a(crypto_wrapper.o): In function `TaoCrypt::RSA_PrivateKey::~RSA_PrivateKey(void)':
crypto_wrapper.cpp:(.gnu.linkonce.t._._Q28TaoCrypt14RSA_PrivateKey+0x123): undefined reference to `__builtin_delete'
/www/mysql/lib/libmysqlclient.a(log.o): In function `yaSSL::Log::~Log(void)':
log.cpp:(.text+0x20): undefined reference to `__builtin_delete'
/www/mysql/lib/libmysqlclient.a(libtaocrypt_la-algebra.o):(.gnu.linkonce.d.__vt_Q28TaoCrypt23AbstractEuclideanDomain+0xc): und
efined reference to `__pure_virtual'
/www/mysql/lib/libmysqlclient.a(libtaocrypt_la-algebra.o):(.gnu.linkonce.d.__vt_Q28TaoCrypt23AbstractEuclideanDomain+0x10): un
defined reference to `__pure_virtual'
/www/mysql/lib/libmysqlclient.a(libtaocrypt_la-algebra.o):(.gnu.linkonce.d.__vt_Q28TaoCrypt23AbstractEuclideanDomain+0x14): un
defined reference to `__pure_virtual'
/www/mysql/lib/libmysqlclient.a(libtaocrypt_la-algebra.o):(.gnu.linkonce.d.__vt_Q28TaoCrypt23AbstractEuclideanDomain+0x18): un
defined reference to `__pure_virtual'
/www/mysql/lib/libmysqlclient.a(libtaocrypt_la-algebra.o):(.gnu.linkonce.d.__vt_Q28TaoCrypt23AbstractEuclideanDomain+0x3c): un
defined reference to `__pure_virtual'
/www/mysql/lib/libmysqlclient.a(libtaocrypt_la-algebra.o):(.gnu.linkonce.d.__vt_Q28TaoCrypt23AbstractEuclideanDomain+0x40): mo
re undefined references to `__pure_virtual' follow
/www/mysql/lib/libmysqlclient.a(libtaocrypt_la-file.o): In function `TaoCrypt::FileSource::~FileSource(void)':
file.cpp:(.text+0x64): undefined reference to `__builtin_delete'
/www/mysql/lib/libmysqlclient.a(libtaocrypt_la-file.o): In function `TaoCrypt::FileSink::~FileSink(void)':
file.cpp:(.text+0x200): undefined reference to `__builtin_delete'
collect2: ld returned 1 exit status
configure: failed program was:
#line 59430 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char mysql_error();

int main() {
mysql_error()
; return 0; }
 
hast du auch die mysql libraries bzw header installiert, ich meine php benötigt die? das würde zumindest die nicht gefundenen referenzen erklären.
die packete müsstest du auch auf der mysql seite finden müsste irgendwas mit mysql-devel... mysql-header... sein auf jedenfall so was in der art, meins läuft schon was länger in gleicher konstellation weiss daher die genaue bezeichnung nicht mehr.
 
Hm, ne das habe ich jetzt nicht gemacht - letztes mal auch nicht, aber da muss es dann wohl schon richtig drauf gewesen sein.

Ich habe jetzt mal per "apt-get install mysql-devel" das ganze installiert aber es geht immer noch nicht. Ich schätze mal das gibt Probleme wenn ich das eine per apt installiere und das andere selbst kompiliere; aber letztes mal hab ich ja auch nur den MySQL server genommen.

Mal ne andere Frage: Was ist der Unterschied zwischen dieser Standard Version (die hab ich bisher immer genommen) und der Max. Version? Ist das andere bei der Max. bereits bei?
 
du kannst rpm packete und selbst kompilierte sachen mischen das sollte eigentlich keine probleme machen.
MaxDB ist ein anderes produkt von mysql hat irgendwas mit SAP zu tun keine ahnung was das ist.
das max installations packet von mysql brauchst du nicht das standard reicht. plus libraries und shared client sachen.
findest auf der download seite hab grad nachgeschaut.
 
Ich habe jetzt mal vom der mysql-Homepage diverse Libraries runtergeladen und installiert.

Um Konflikte zu vermeiden, habe ich dass Paket, welches ich mit apt installiert habe wieder runterschmissen und vorher auch mal mit rpm -qa | grep mysql geschaut; dort war einmal mysql-shared 4.x - da ich ja MySQL 5 haben will, hab ich das mal deinstalliert.

Nun habe ich folgendes installiert (Ausgabe von rpm -qa | grep MySQL):

MySQL-devel-standard-5.0.20-0.rhel3
MySQL-client-standard-5.0.20-0.rhel3
MySQL-shared-standard-5.0.20-0.rhel3

Müsste doch eigentlich richtig sein mit Version 5.0.20 wie auch der Server.... Was fehlt mir noch - es kommt immer noch die selbe Fehlermeldung beim configure?
 
sollte eigentlich alles reichen, evtl hilft es wenn du den pfad zu den libaries dem configure übergibts ? configure anweisung weiss ich jetzt nicht aber ./configure --help und passende option sollte angezeigt werden.

wenn das nicht hilft hab ich auch keine idee mehr.
drücke dir die daumen.

wenn du es anderweitig gelöst bekommst, würde mich interessieren wo dran es lag.
 
Ich habe den Parameter --with-mysql beim configure Script nun mal weg gelassen; dadurch konnte ich PHP kompilieren.

Resultat: Ich kann überhaupt keine mySQL-Befehl ausführen, wie z.B.mysql_connect, dann kommt, error in line xy etc.

Wie kann ich das wieder hinbiegen oder muss man "--with-mysql" zwingend angeben, wenn man mysql-Funktionen benötigt?

edit:
Ok, danke für deine Hilfe. Ich habe es nun geschafft indem ich einfach nur --with-mysql ohne Pfadübergabe eingegeben habe.
 
Zuletzt bearbeitet:
ja sehr komisch, hab bei mir mal nachgeguckt, hab auch keine pfadangabe angegeben beim configure, wäre aber nicht drauf gekommen das es dadran lag.
 
Zurück
Oben