PHP5 mit MySQL 5 kompilieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
m@ddin
Beiträge: 203
Registriert: 28.05.2006 20:43:10
Kontaktdaten:

PHP5 mit MySQL 5 kompilieren

Beitrag von m@ddin » 29.05.2006 11:22:46

Hi Leute!

Vorweg: ich bin neu hier und nicht gerade der erfahrenste Linux-Anwender, aber Neuling auf dem Gebiet bin ich auch nicht. So ist es für mich zum Beispiel ein Kinderspiel ein LAMP mit Apache 1.3.36, MySQL 4.1 und PHP 4.1 selbst zu kompilieren.

Da ich aber lernbereit bin und Neues ausprobieren will, bin ich gerade dabei PHP5 mit MySQL 5 zum Laufen zu kriegen. Auf meinem Testrechner läuft Debian Sarge, hab es auch am Freitag neu aufgesetzt und über Netzwerk installiert. Lief alles problemlos ab. Dann habe ich MySQL 5 installiert bzw. selbst kompiliert, was auch wunderbar funktioniert, MySQL Server läuft einwandfrei. Dann habe ich den Apache kompiliert, was auch bis auf paar Kleinigkeit recht gut funktioniert hat.
Dann kam das Schwierigste, nämlich PHP5 mit MySQL 5 zum Laufen zu bekommen. Dabei scheitert es immer an der Konfiguration, denn das ./configure Kommando bricht mit folgendem Fehler ab:

Code: Alles auswählen

configure: error: mysql configure failed. Please check config.log for more information.
Kurz darüber steht folgendes:

Code: Alles auswählen

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
Die Konfigurationsansweisung lautet wie folgt:

Code: Alles auswählen

./configure --with-apxs=/usr/local/apache/current/bin/apxs --with-mysql=/usr/local/mysql/current/ --with-zlib-dir=/usr/lib/ --enable-calendar --enable-versioning --enable-sockets --enable-ftp --with-config-file-path=/etc

Ich hab mir auch das config-Logfile angesehen und da lässt sich folgendes finden (nur ein Auszug):

http://nopaste.debianforum.de/3294

So, ich weiß, dass es wie PHP5 rausgekommen ist Probleme mit MySQL wegen irgendwelchen Lizenzen gegeben hat, die aber meines Wissens nach beseitigt sein müssten. Und wenn ich mir die Fehlermeldungen anschaue, dann denke ich nicht, dass es an irgendwelchen Lizenzproblemem liegt. Es steht ja mehr oder weniger drin, dass die Funktionen mysql_close(); und mysql_error(); nicht vorhanden bzw. nicht gefunden werden können.

Kann es sein, dass MySQL 5 mit PHP5 zusammen (noch) nicht läuft? Wenn schon, wie kann ich dann den Fehler bei mir ausmerzen? Habe ich eventuell die falsche MySQL Version genommen?

Danke schonmal im Voraus für alle Antworten!

Viele Grüße,
Martin

EDIT: Ausgabe nach nopaste verschoben - blackm

Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blackm » 29.05.2006 13:33:05

Hi,

hast du die header vom mysql client installiert (irgendwas mit mysql client und dev...bin mir gerde bei dem Namen nicht ganz sicher)?

bye, Martin

PS: Thema von den Web- und Mailservern weggeschoben
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 29.05.2006 15:55:31

Wenn ers selber baut, sollten die Header doch im Sourcebaum des selbstgebauten Mysql zu finden sein oder?

m@ddin
Beiträge: 203
Registriert: 28.05.2006 20:43:10
Kontaktdaten:

Beitrag von m@ddin » 29.05.2006 19:08:44

nepos hat geschrieben:Wenn ers selber baut, sollten die Header doch im Sourcebaum des selbstgebauten Mysql zu finden sein oder?
Joa, genau das hab ich mir nämlich auch gedacht. Deswegen hab ich auch keine installiert. Hab noch ein wenig rumprobiert und folgendes kam dabei raus: PHP ohne MySQL funktioniert einwandfrei. Selbst mit den Binärdateien von MySQL und einer Installation von libmysqlclient12-dev funktioniert auch, führt zum gleichen Fehler.

Viele Grüße,
Martin

m@ddin
Beiträge: 203
Registriert: 28.05.2006 20:43:10
Kontaktdaten:

Beitrag von m@ddin » 29.05.2006 22:25:31

Hi!

Also ich hab jetzt folgendes gemacht:

MySQL gelöscht und mit Hilfe der Binaries nochmal installiert, dann libmysqlclient14-dev installiert und PHP versucht zu kompilieren. Mit --with-mysql=/usr/local/mysql/current funktioniert es nicht, allerdings wenn ich nur --with-mysql angebe, dann wird PHP zumindest kompiliert. MySQL Zugriff funktioniert dann nicht, weil dann schlicht und einfach keine Verbindung aufgebaut werden kann. phpinfo(); liefert als MySQL Client API Version auch 4.1.11

Irgendwie verhärtet sich der Verdacht, dass es noch keine MySQL 5 Unterstützung für PHP 5 gibt, kann das denn sein?

Viele Grüße,
Martin

m@ddin
Beiträge: 203
Registriert: 28.05.2006 20:43:10
Kontaktdaten:

Beitrag von m@ddin » 30.05.2006 23:32:39

Hi!

Also hier noch paar kleine Infos, denn ich habe es geschafft, dass ich mich von PHP aus verbinden kann, aber optimal läuft das System noch nicht, was - wie ich denke - an der Clientbibliothek liegt.

Ich hab also erstmal alles wieder entfernt, dann zuerst MySQL - die Binärversion von mysql.com - nach /usr/local/mysql installiert. Dann den Apache kompiliert. Dann die libmysqlclient14-dev installiert und die files lmysqlclient.a von /usr/lib nach /usr/local/mysql/current/lib kopiert, gleiches mit der lmysqclient_r.a. Dann PHP mit dem Kommando

Code: Alles auswählen

--with-mysql=/usr/local/mysql/current
kompiliert, lief komplett durch.

Eine Verbindung zum Server war erst nicht möglich, die Fehlermeldung war, dass er sich mit dem Socket /var/run/mysqld/mysqld.sock nicht verbinden kann, was auch kein Wunder war, denn das Socket-File war nicht vorhanden. Also den Ordner mysqld in /var/run angelegt und der Gruppe mysql sowie dem User mysql zugewiesen. Anschließend noch einen symbolischen Link auf /tmp/mysql.sock gemacht. Siehe da, eine Verbindung von PHP war möglich.

Was jetzt aber nicht mehr möglich ist, ist eine Verbindung über die Konsole mit mysql. Denn jetzt liefert mysql -u root -p die Meldung, dass er sich nicht mit dem Socket verbinden kann.

Der symbolische Link aus /var/run/mysqld wird auch bei jedem Neustart gelöscht.

Fazit: MySQL Server läuft, aber es ist entweder nur eine Verbindung von PHP oder von Konsole aus möglich. Nicht beides gleichzeitig.

Werde jetzt irgendwie versuchen, das alles irgendwie doch noch hinzukriegen, muss ja irgendwie möglich sein ;)

Wer Anregungen hat, sind immer gewünscht :-) Aber ich hab zumindest wieder was gelernt, was ich ja eigentlich auch wollte ;)

Viele Grüße,
Martin

m@ddin
Beiträge: 203
Registriert: 28.05.2006 20:43:10
Kontaktdaten:

Beitrag von m@ddin » 12.08.2006 19:35:47

Hi!

So, nach einer etwas längeren Auszeit (viel Arbeit in der Arbeit) konnte ich mich gestern und heute nochmal meinem Server zuhause widmen und soviel sei gesagt:

ER LÄUFT!! :D

Habs gestern Nacht geschafft, dass ein LAMP mit MySQL 5.0.22, Apache 1.3.37 und mod_ssl sowie PHP 5.1.4 läuft. Ich hab alles selbst gebacken und bin jetzt ziemlich müde und am arsch (ich muss anmerken: ich war gestern nachts während openSSL kompilierte in der Stadt und hab bisschen mit Freunden gefeiert...).

Vielleicht lags ja an den 3 Pils, dass ich jetzt alles auf die Reihe gebracht habe, warum es vorher nicht lief, weiß ich (noch) nicht, aber jetzt läuft der Server. Auch wenn noch ein paar Kinderkrankheiten mit dabei sind (VirtualHosts und SSL mögen noch nicht so wie ich, aber mit dem Thema hab ich mich auch noch nicht richtig befasst, was ich in den nächsten Tagen machen werde).

Kurzer Überblick, wie ichs gemacht habe:

Debianinstallation lief über das Netzwerk ab. Hab ein komplett nacktes System installiert, da war quasi noch gar nix drauf. Dann gings es erstmal daran die nötigen Applikation (MySQL, Apache, openSSL, mod_ssl, PHP, etc.) zu besorgen und auf den Server zu schieben - in diesem Zuge habe ich auch gleich einen SCP Zugang eingerichtet, so dass ich mit WinSCP die Daten gut übertragen konnte.

Dann ging es daran MySQL 5.0.22 zu kompilieren. Das war eigentlich das schwerste an allem, den es traten immer wieder Fehler auf, die ich mir nicht erklären konnte, aber irgendwie hab ichs dann doch geschafft dank einer kleinen Beschreibung im Netz.
Anschließend wurde openSSL gebacken, schließlich noch mod_ssl mit Apache und als letztes dann PHP. PHP brauchte etwas länger, da ich GD mit einsetzen will und ganz vergessen habe die notwendigen Pakete zu installieren. Als alles lief, fehlte "nur" noch die Grundkonfiguration des Ganzen, was mit der aufwändigste Akt war.

Ich bin jetzt richtig froh, dass das Teil läuft, aber jetzt brauch ich ne neue Herausforderung *g* Ich hab bei dem Ganzen eine wichtige Erfahrung gemacht: sollten Fehlermeldungen auftauchen, dass irgendein Paket fehlt und man sich sicher ist, dass man das schon installiert hat, hilft ein apt-get install paketname-DEV immer weiter ;) Meistens waren es diese Pakete, die mich um den Schlaf gebracht haben.

Viele Grüße,
Martin

Antworten