04/07/2011

Compiler et installer PHP

Comme promis, voici le pas-à-pas d'une installation personnalisée de PHP (en l'occurrence PHP 5.4 alpha1).

Avant toute chose, notez qu'en production il ne faut PAS utiliser une version alpha. Pour installer une version stable, ce code suffira :

Note : toutes les commandes ci-dessous sont à utiliser pour Ubuntu
sudo apt-get install php5

Commencez par télécharger la release : http://qa.php.net/

Ensuite, il suffit d'extraire le contenu de l'archive dans un dossier temporaire à part :

wget http://downloads.php.net/stas/php-5.4.0alpha1.tar.gz
tar xvzf php-5.4.0alpha1.tar.gz

Uniquement en mode console ( cli )

Ouvrez un terminal, puis entrez :

./configure --enable-pcntl --enable-shmop --enable-cli --without-apache --disable-cgi --enable-posix
(c'est en l'occurrence ce dont moi j'avais besoin : ligne de commande uniquement + pcntl ; à vous de voir ce qu'il vous faut).

Si tout s'est bien passé, il ne reste plus qu'à préparer l'installation :

make

C'est sans doute le moment de lancer les tests de PHP. Ces tests unitaires vous permettront de vous assurer que tout s'est bien passé :

make test

par contre, ne vous inquiétez pas, c'est plutôt long.

Si tout est ok, il est temps de lancer l'installation de version de PHP :

sudo make install

Pour vérifier votre version de PHP (cli), c'est simple :

php -v
//
PHP 5.4.0alpha1 (cli) (built: Jun 29 2011 13:24:55)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2011 Zend Technologies

Je ne connais pas la procédure sous Windows, et je ne suis même pas sûr que ce soit possible (peut-être avec Visual Studio ?), mais si quelqu'un veut bien l'expliquer ...

Edit: apparemment c'est possible sous Windows. Des retours ?

Mode web (Apache)

Bon, lancer un script php c'est souvent pas suffisant, c'est mieux quand un site web tourne avec :-p

Dans ce cas, on va légèrement changer la configuration, pour créer en même temps le module php pour apache (le with-apxs2):

Petite parenthèse:

Si vous n'avez pas apxs2, utilisez commande suivante :

sudo apt-get install apache2-threaded-dev
un which apxs2 devrait vous retourner le chemin complet
./configure --with-mysql=shared --with-pdo-mysql  --with-apxs2=/usr/bin/apxs2 --enable-xml --with-zlib
copier le libphp5.xo
make

Il faut copier le module qui a été généré par le make (dans libs/libphp5.so) dans le répertoire des modules apache :

sudo cp libs/libphp5.so /usr/lib/apache2/modules/libphp5.so

et bien sûr, redémarrer Apache

sudo /etc/init.d/apache2 restart

le phpinfo() vous affiche désormais :

Aperçu phpinfo() après compilation

PS : ce n'est pas forcément la meilleure configuration, l'intérêt de compiler est justement de prendre ce dont vous avez besoin; A vous de voir quels extensions vous sont utile ; n'hésitez pas à faire un tour dans votre phpinfo() avant pour le savoir :-)

PS : en même temps que j'ai publié ce billet, notre cher Rasmus Lerdorf a publié une config pour tester PHP 5.4.

blog comments powered by Disqus