Pour les besoins d’une vieille application php, j’ai besoin de compiler une version php 4.4.6 sur une Squeeze fraîchement installée.
Voici la méthode que j’ai utilisé :
Prérequis :
apt-get install build-essential apache2-prefork-dev
(le paquet apache2-prefork-dev s’installe avec des dépendances qui seront utiles lors de la compilation donc ne pas les supprimer)
apt-get install flex bison libxml2-dev libpng12-dev apt-get install apache2-mpm-prefork
On se place dans le répertoire /usr/src et on récupère le source du php que l’on a besoin :
cd /usr/src wget http://museum.php.net/php4/php-4.4.6.tar.gz tar xzf php-4.4.6.tar.gz
Compilation :
On se place dans notre répertoire source :
cd /usr/src/php-4.4.6
et on débute la compilation avec la ligne suivante (que l’on peut adapter selon ses besoins) :
./configure --with-apxs2=/usr/bin/apxs2 --disable-debug --enable-ftp \ --enable-inline-optimization --enable-magic-quotes --enable-mbstring \ --enable-mm=shared --enable-safe-mode --enable-track-vars --enable-trans-sid \ --enable-wddx=shared --enable-xml --with-dom --with-gd --with-gettext \ --with-mysql --with-regex=system --with-xml --with-zlib-dir=/usr/lib make && make install
On installe et paramètre ensuite pour l’utilisation via Apache2 :
cp /usr/src/php-4.4.6/php.ini-dist /usr/local/lib/php.ini ln -s /usr/local/lib/php.ini /etc/php.ini
On ajoute le fichier php4.conf dans le répertoire suivant :
vim /etc/apache2/mods-enabled/php4.conf
<IfModule mod_php4.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
</IfModule>
On relance maintenant Apache2 et on peut vérifier à l’aide d’un phpinfo que tout fonctionne.
/etc/init.d/apache2 restart