J’ai récemment voulu installer sur mon serveur web le (tout nouveau) agrégateur de flux RSS (avec API distante REST) OpenWebReader.
L’auteur, pour avoir un développement plus aisé et moderne, a choisi la dernière version de PHP, 5.3
Sauf que sur Ubuntu 9.10, la version de PHP packagée est la 5.2.6
En général, dans ces cas, on a plutôt le réflexe de mettre à jour ses dépôts, dans /etc/apt/sources.list et de rajouter le dépôt qui va bien, qui rajoute en l’occurrence php 5.3.
C’est bien ce que j’avais commencé à faire, en suivant ce billet.
Mais malheureusement, plein de dépendances ont sauté : phpmyadmin, apache2-mod-php5, etc… du coup, machine arrière vers PHP 5.2.6
Retour aux sources, j’ai téléchargé sur php.net la version 5.3.1 de PHP
1 |
$ wget http://us3.php.net/get/php-5.3.1.tar.gz/from/this/mirror |
, je l’ai détarré dans mon home directory :
1 |
$ tar xvfz php-5.3.1.tar.gz |
et avant de le compiler, je suis allé chercher tout plein de librairies :
1 |
$ sudo apt-get install apache2 apache2-mpm-prefork apache2-prefork-dev apache2-utils apache2.2-common mysql-client mysql-client-5.1 mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1 libtidy-dev curl libcurl4-openssl-dev libcurl3 libcurl3-gnutls zlib1g zlib1g-dev libxslt1-dev libzip-dev libzip1 libxml2 libsnmp-base libsnmp15 libxml2-dev libsnmp-dev libjpeg62 libjpeg62-dev libpng12-0 libpng12-dev zlib1g zlib1g-dev libfreetype6 libfreetype6-dev libbz2-dev libxpm4-dev libmcrypt-dev libmcrypt4 libicu-dev |
et là, dans mon répertoire de php 5.3.1 , j’ai pu compiler :
1 2 3 |
$ cd php-5.3.1 $ ./configure --with-apxs2=/usr/bin/apxs2 --with-mysql=/usr --with-mysqli=/usr/bin/mysql_config --with-tidy=/usr --with-curl=/usr/bin --with-curlwrappers --with-openssl-dir=/usr --with-zlib-dir=/usr --enable-mbstring --with-pdo-pgsql=/usr --with-pdo-mysql=/usr --with-xsl=/usr --with-ldap --with-xmlrpc --with-iconv-dir=/usr --with-snmp=/usr --enable-exif --enable-calendar --with-bz2=/usr --with-mcrypt=/usr --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-freetype-dir=/usr --enable-mbstring --enable-zip --with-pear --enable-intl --with-gettext=/usr/bin/gettext $ make |
Si vous avez un problème lors du configure c’est qu’il vous manque une librairie…
Ensuite, maintenant que l’on a une version de Php 5.3.1 compilé, il faut la référencer à Apache2, et pour ne rien casser aux dépendances, on trafique juste une petit peu /etc/apache2/mods-available/php5.load :
1 |
LoadModule php5_module /home/anthony/php-5.3.1/libs/libphp5.so |
et là, le tour est joué, il suffit de redémarrer Apache2 pour que Php 5.3.1 soit chargé.
En fait, je me suis beaucoup inspiré de ce billet, sauf qu’à la fin, je vous conseille de ne pas faire le make install, car votre système risque de ne plus être en cohérence avec les dépots