Compilation PHP5 Sous Ubuntu Server 6.06 avec support MYSQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Compilation PHP5 Sous Ubuntu Server 6.06 avec support MYSQL

par jlstar » 12 juin 2007, 16:20

Ok je comprends mieux mais bon j'ai trop galèré maintenant ça marche j'avance sur autre chose !!

Sinon pour les autres lecteurs du topic je file mes dernières options de compilation ça pourra toujours servir

Code : Tout sélectionner

cd php-5.2.3/ ./configure\ --prefix=/usr/local/php5\ # Répertoire d'installation de PHP --with-mysql=shared\ # Création du module php5-mysql (mysql.so) --with-apxs2=/usr/local/bin/apxs\ # Configuration auto de apache et de php5 --with-mysql-dir=/usr/share/mysql/\ # J'ignore a quoi ça sert mais les headers de mysql sont nécessaire --with-inifile=/etc/php5/php.ini\ # Emplacement du fichier de config (marche pas chez moi) --with-mysql # Fournit l'utilisation direct de mysql sans passer par le module (mysql.so), et sans configuration du php.ini (option que je retiens finalement)
en tous cas merci zigz4g

par zigz4g » 12 juin 2007, 13:07

Comme pour tout bon programme, tu a plus d'avantage de charger des modules ou extensions que de tout compiler dans ton programme.
Un exemple rapide : si tu voulais ajouter une extension a Firefox et que tu dois a chaque fois recompiler, tu pleurerais :)
Idem pour le noyaux Linux.
Grace a ce procede, tu dois pouvoir charger un nouveau module sans recompiler l'application.
Apres, a chaque fois je passe plus d'une version superieur de PHP que de MySQL mais tout depend des cas.

par jlstar » 12 juin 2007, 12:22

Bonjour zigz4g,

pour la distribution tu conclus bien mais c'était marqué dans le titre du post (j'aurai pu recopier)

je n'utilise pas les versions packagées car j'ai (malheureusement) besoin de la dernière version d'apache pour le clustering. Après c'est qu'un enchainement je ne peux pas installé la version packagée de php5 sans qu'il m'impose la version packagée d'apache, pareil pour phpmyadmin. En clair et je pense que tu connais bien le problème des que tu commence a compiler une appli tu es obligé de compiler toutes celle s qui ont des dépendances croisées. Seul MYSQL n'ayant pas de dépendance avec Apache et php peut être installé via les dépôts (ce que je fais).

Merci beaucoup pour l'option shared cependant je ne comprends pas l'utilité d'avoir MySQL en module (le fameux mysql.so) au début je pensais que c'était obligatoire de faire fonctionner php avec mysql mais là je me rends compte que l'exécution de :

Code : Tout sélectionner

<?php $link = mysql_connect("localhost", "root", "mdp") or die("Couldn't connect to mysql : " . mysql_error()); echo 'Connection succefully'; mysql_select_db("mysql") or die ("Could not select database"); $result = mysql_query("select * from user") or die (mysql_error()); echo "<br>\n"; while ($row = mysql_fetch_array($result)) { echo "<b>Name:</b>"; echo $row["User"]; echo "<br>\n"; } mysql_free_result($result); mysql_close($link); ?>
marche très bien j'ai donc installé phpmyadmin 2.10.1 via les sources et là aussi ça marche très bien !!?

donc quel avantage a-ton de passer par mysql.so, je suis un peu perdu là :(

par zigz4g » 12 juin 2007, 10:58

Salut,
j'ai plusieurs remarques et questions a apporter à ce post.
je suis sous 6.06 TLS Server je compile Apache 2.2.4 avec les options suivante
Tu veux parler de quelle distribution ? J'en conclu que c'est une Unbuntu.

Pour Apache, pourquoi ne pas installer la version packagée par ta distribution ?
Idem pour php ?
je compile php 5.2.3 avec les options suivante
./configure --prefix=/usr/local/php5 --with-mysql --with-apxs2=/usr/local/bin/apxs
Oui il faut bien compiler PHP 5 avec le support mysql car c'est normalement SQLite qui est par défaut.
Si j'ai bien compris il faut que j'obtienne la librairie mysql.so qui permettra a PHP de communiqué avec MYSQL.
Seulement dans le cas ou tu compile PHP avec MySQL en module (shared).
cependant je n'obtiens pas cette librairie.
Normal, il faut mettre le mot clé shared apres la commande --mysql=/chemin/de/mysql,shared

Je compile moi même PHP 5.1.x sur ma distribution Gentoo. Le plus important se sont les dépendances.

Je te donne mon script bash qui permet de lancer le configure avec un maximum d'option de PHP 5.

Code : Tout sélectionner

cat configure-php.sh #!/bin/bash ./configure\ --prefix=/usr/local/php-5.1.4\ --with-apxs2=/usr/sbin/apxs2\ --disable-cgi\ --with-openssl\ --with-kerberos\ --with-zlib\ --enable-bcmath\ --with-bz2\ --enable-calendar\ --with-curl\ --with-curlwrappers\ --enable-exif\ --enable-ftp\ --with-gd\ --with-ttf\ --enable-gd-native-ttf\ --with-jpeg-dir\ --with-png-dir\ --with-zlib-dir\ --with-freetype-dir\ --with-t1lib\ --enable-gd-jis-conv\ --with-gettext\ --with-iconv\ --enable-mbstring\ --with-ldap\ --with-ldap-sasl\ --with-mcrypt\ --with-mhash\ --with-mysql\ --with-mysqli\ --with-ncurses\ --with-pdo-mysql\ --with-pdo-dblib\ --with-pdo-sqlite\ --enable-sqlite-utf8\ --with-pspell\ --with-readline\ --enable-shmop\ --enable-soap\ --enable-sockets\ --enable-sysvsem\ --enable-sysvshm\ --enable-sysvmsg\ --with-tidy\ --enable-wddx\ --enable-xmlreader\ --enable-xmlwriter\ --with-xmlrpc\ --with-xsl\ --enable-memory-limit\ --with-pear\ --with-imap\ --with-imap-ssl\ --enable-libxml
Il est bien sur indispensable de vérifier les dépendances a chaque configure qui bloque.
Par exemple, il faut mysql d'installer avec les bibliothèques (libraries), les libraries freetype, ncurses, readline, openssl, etc ...

Après il ne reste plus qu'a lancer les commandes make && make install.
Attention, ca peut arriver que ca ne compile pas a cause de dépendances manquantes, ou mal renseignées dans le configure.

Bonne compilation.

Ouah !!! Avec ce message je suis devenu un éléphant :) J'adore ce site.

par jlstar » 12 juin 2007, 09:57

Ah je suis sur le 6.06 Server ça fait surement une différence tu avais le paquet build-essential d'installé ?!

par jlstar » 12 juin 2007, 09:55

Bah écoute j'ai réinstallé le serveur j'ai directement installé php-5.2.3 pour voir, à part l'ajout de libxml2-dev, j'ai lancé un ./configure --prefix=/usr/local/php5 && make qui passe bien ... Donc la présence mysql n'a pas l'air d'être requis pour la compilation simple de php à moins que tu ai tenté d'autre option de compilation ?!

Sinon pas d'idée pour mon problème ?

le module php5-mysql s'obtient bien à partir de la compile de php ? c'est bien le fameux mysql.so ?!

merci

par Hubert Roksor » 12 juin 2007, 00:01

Déplacé dans le bon forum.

Par curiosité, est-ce que tu as déjà compilé PHP 5 sans MySQL ? Perso j'ai déjà essayé sous Ubuntu 6.06 mais j'ai tellement galéré à trouver les bonnes versions d'autotools, des parsers lexers et autres que j'ai abandonné.

Compilation PHP5 Sous Ubuntu Server 6.06 avec support MYSQL

par jlstar » 11 juin 2007, 23:02

Bonjour,

je galère depuis plusieurs jours, je cherche dans tous les sens mais je trouve RIEN !!!

mon problème est pourtant simple.

je suis sous 6.06 TLS Server je compile Apache 2.2.4 avec les options suivante

./configure --enable-layout=Alyans --enable-proxy --enable-proxy-http --enable-proxy-balancer --enable-dav --enable-rewrite --enable-so --enable-http --enable-ssl --enable-expires --enable-headers --enable-mods=deflate_module --with-php --with-mysql --with-susexec --disable-info --without-berkeley-db --enable-dav=shared --enable-dav-lock=shared --with-included-apr

je compile php 5.2.3 avec les options suivante

./configure --prefix=/usr/local/php5 --with-mysql --with-apxs2=/usr/local/bin/apxs

Si j'ai bien compris il faut que j'obtienne la librairie mysql.so qui permettra a PHP de communiqué avec MYSQL.

cependant je n'obtiens pas cette librairie. Et quand je feinte un l'installant avec apt et en renseignant correctement le fichier /etc/php5/cgi/php.ini correctement reporté sous phpinfo() et bien ça ne marche pas plus. Pas d'info concernant mysql (qui est installé et qui fonctionne correctement) donc impossible de faire fonctionner phpmyadmin

dans un premier temps ma question est quelles sont les options de compilation de php pour obtenir le module de connexion à mysql (le bundle php5-mysql sous forme de mysql.so si j'ai bien compris)

merci à vous