OVH Community, votre nouvel espace communautaire.

[HOW-TO] Plusieurs version PHP sur un serveur Linux


overdrive2048
05/07/2014, 20h01
désolé pour le retard mais je ne sais pas comment je m'en suis tiré j'ai changé de version de php

Rafarel
08/02/2014, 20h09
Citation Envoyé par overdrive2048
bonjour ,
je viens de suivre ton tuto mais j'ai un problème étant pas un expert de la compilation je ne trouve rien même sur google

voici le problème au moment de faire le make j'obtiens cette erreur



je ne sais plus quoi faire si quelqu'un à une solution

par avance merci
Bonjour overdrive,

J'ai exactement la même erreur que toi et tu dis avoir trouvé la solution.

Est ce que tu peux partager avec moi ce qui t'as sorti d'affaire ?

Merci

- Rafarel

overdrive2048
02/01/2014, 21h12
alors j'ai résolu mon premier problème par contre j'en ai un nouveau et la j'avoue ne rien comprendre

Il faut aussi ajouter la ligne suivante à /etc/apache2/apache2.conf :

Code:

AddType x-httpd-php-5-3 .php53
et je ne trouve sa ni dans apache.conf ni dans conf.d

je suis sous debian 7

sur une vm de test

overdrive2048
27/10/2013, 12h32
bonjour ,
je viens de suivre ton tuto mais j'ai un problème étant pas un expert de la compilation je ne trouve rien même sur google

voici le problème au moment de faire le make j'obtiens cette erreur

/usr/bin/ld.bfd.real: ext/intl/msgformat/msgformat_helpers.o: undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3'
/usr/bin/ld.bfd.real: note: '__gxx_personality_v0@@CXXABI_1.3' is defined in DSO /usr/lib/i386-linux-gnu/libstdc++.so.6 so try adding it to the linker command line
/usr/lib/i386-linux-gnu/libstdc++.so.6: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make: *** [sapi/cgi/php-cgi] Erreur 1
je ne sais plus quoi faire si quelqu'un à une solution

par avance merci

imars
05/01/2012, 09h10
Super merci à toi je voulais exactement un tuto comme ça

scboffspring
21/02/2010, 23h38
Bonjour/bonsoir à tous

J'ai dû ces derniers jours mettre en place un système pour pouvoir utiliser plusieurs version de PHP sur un serveur Dédié (Debian), et je me suis dit que peut-être cela pouvait vous servir...

Voici le tuto que j'ai écrit (pour mon blog principalement)


Je considère que vous avez déjà un serveur (Debian ou autre^^) avec PHP installé (pour moi c'était PHP 5.2)


Il nous faut compiler une nouvelle version de PHP, par exemple pour la version 5.3.1 (cela peut être n’importe quelle autre version de PHP, par exemple la PHP 4)

Tout d’abord, alors récupérer PHP depuis le site php.net, par exemple pour moi, le fichier se trouve à l’adresse suivante : http://ch2.php.net/get/php-5.3.1.tar...om/this/mirror

Je vais donc le télécharger sur le serveur, et l’extraire, grâce à la commande suivante :


Code:
cd ~ && wget http://ch2.php.net/get/php-5.3.1.tar.gz/from/this/mirror && tar xvzf php-5.3.1.tar.gz && cd php-5.3.1
Lorsque ceci est fait, il va falloir installer une liste de paquet (dépendra de vous, et ce que vous voulez inclure avec php). Par exemple, moi, je voulais avoir le support MySQL et Curl, plus 2-3 petites choses. La liste des paquets dépendra de la commande suivante.


Code:
apt-get install build-essential mysql-client libmysql++-dev libxml2-dev  libcurl4-openssl-dev libpng-dev libicu-dev libmcrypt-dev libxslt-dev
Ensuite, dans le répertoire de php-5.3.1 (nous y sommes déjà normalement), lancez la commande suivante (vous pouvez personnaliser cette commande selon vos besoins. Il est pas contre important de ne pas mettre le chemin par défaut pour le “–prefix” ainsi que pour le “–with-config-file-path” :


Code:
./configure --prefix=/usr/local/php53 --with-config-file-path=/usr/local/php53/etc/php/ --disable-ipv6 --with-curl --enable-ftp --with-gd --enable-intl --enable-mbstring --with-mcrypt --with-pdo-mysql=mysqlnd --enable-soap --with-xsl --with-zlib --with-openssl --with-pear=/usr/local/php53/share/php --with-mysql
Si tout se passe bien, vous devriez arriver avec un message du genre :
Code:
+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+
Thank you for using PHP.
Dans le cas contraire, il vous manque des paquets que vous devez installer afin de pouvoir compiler PHP.

Lorsque tout est bon, on lance la compilation, et nous allons vite boire le café en attendant


Code:
make && make install
Maintenant, php 5.3.1 est installé, mais ne peut pas encore être utilisé, pour cela, nous allons feinter, et utilisé un module d’apache s’appelant “SUPHP”


Afin de gérer nos différentes version PHP, nous allons utilisé le module SUPHP, d’apache.

Pour cela, installez le paquet suivant :

Code:
apt-get install libapache2-mod-suphp
Il nous faut ensuite désactiver le module php d’apache2, pour cela :
a2dismod php5
Ensuite, il faut configurer suphp pour gérer nos version. Nous allons pour cela lui ajouter un Handler dans le fichier de configuration /etc/suphp/suphp.conf .Après la ligne application/x-httpd-php=php:/usr/bin/php-cgi, ajoutez la ligne suivante :


Code:
 x-httpd-php-5-3="php:/usr/local/php53/bin/php-cgi"
Bien sûr, le chemin spécifié (/usr/local/php53/bin/php-cgi) est à modifier selon la ligne que vous avez utilisée pour la configuration de PHP au-dessus.

Ensuite, il faut modifier le fichier /etc/apache2/mods-enable/suphp.conf et rajouter les lignes suivantes après le premier suPHP_AddHandler application… :

Code:
AddType x-httpd-php-5-3 .php53
 suPHP_AddHandler x-httpd-php-5-3
Il faut aussi ajouter la ligne suivante à /etc/apache2/apache2.conf :

Code:
AddType x-httpd-php-5-3 .php53
Et pour finir, on redémarre apache!

Code:
 /etc/init.d/apache2 restart
On teste!
Maintenant, il reste plus qu’à tester si cela fonctionne correctement.

Pour cela, il nous faut créer un htaccess dans /var/www avec le contenu suivant :


Code:
AddHandler x-httpd-php-5-3 .php
Cela va indiquer à SuPHP/Apache que lorsque la page est appelée, il doit utilisé le Handler php 5.3, et pas celui par défaut.

Ensuite nous pouvons retourner sur le “phpinfo”, et nous verrons la nouvelle version de PHP



Problème de “Internal Server error” ?
Dans le cas où une erreur interne apparaît, il est probable que cela soit pour une seule raison :

Le fichier PHP (ici phpinfo.php) NE doit PAS appartenir à root pour être exécuté.

Pour corriger ce problème, 2 solutions :

Changer dans la configuration de SuPHP les valeurs pour le min_uid et min_guid.

Changer le propriétaire du fichier, pour mettre un utilisateur normal. Je vous conseille ce choix, pour des raisons de sécurité.


Voilà,


En cas de question, n'hésitez pas, j'essaierai de vous aider dans la mesure de mes compétences...