Symfony 1.2 (et versions supérieures) nécessitent au minimum PHP 5.2.4, version qui n’est notamment pas disponible dans les dépôts de Debian Etch. Ce petit tuto montre comment compiler une version de PHP compatible avec les versions actuelles de Symfony (jusqu’à 1.4) tout en gardant une précédente version de PHP déjà installée.
Compilation de PHP
Il faut commencer par installer certaines librairies nécessaires pour la compilation de PHP :
apt-get install libgd-dev libpng12-dev libxml2-dev libmysql++-dev libxslt1-dev zlib1g-dev libldap2-dev libcurl3-dev libpq-dev
Ensuite on va récupérer les sources de la version de PHP qui nous intéresse (ici 5.2.11) et les mettre dans un répertoire temporaire :
mkdir /usr/local/tmp cd /usr/local/tmp wget http://fr2.php.net/get/php-5.2.11.tar.gz/from/this/mirror tar xzf php-5.2.11.tar.gz cd php-5.2.11
Vient ensuite la compilation. Ici le chemin d’installation choisit pour tout le tuto est /usr/local/php5211, il faudra modifier toutes ses occurences si on veut l’installer ailleurs :
./configure --enable-fastcgi --with-gd --with-mysql --prefix=/usr/local/php5211 --with-xsl --enable-soap --with-zlib --with-config-file-path=/usr/local/php5211 --with-curl --with-pdo-mysql --with-pgsql --with-pdo-pgsql --with-ldap make make install
Il faut enfin mettre le fichier php.ini-recommended là où on a dit qu’on le trouverait (avec l’option –with-config-file-path) :
mv php.ini-recommended ../../php5211/lib/php.ini
Définition du VirtualHost
Il faut maintenant modifier le httpd.conf pour ajouter la prise en charge des applications Symfony par la nouvelle installation PHP. Si on garde le même répertoire d’installation qu’au dessus (/usr/local/php5211) ça donne :
# httpd.conf LoadModule actions_module /usr/lib/apache2/modules/mod_actions.so # important, à ne pas oublier NameVirtualHost 127.0.0.1:8080 Listen 127.0.0.1:8080 <VirtualHost 127.0.0.1:8080> DocumentRoot "/var/www/mon_appli_symfo" DirectoryIndex index.php <Directory "/var/www/mon_appli_symfo"> AllowOverride All Allow from All </Directory> ScriptAlias /php5211-cgi /usr/local/php5211/bin/php-cgi Action php5211-cgi /php5211-cgi AddHandler php5211-cgi .php </VirtualHost>
Il reste plus qu’à activer le module apache rewrite (c’est probablement déjà fait) :
a2enmod rewrite
Normalement tout marche ; il vaut mieux ne pas supprimer les sources de PHP au cas où il manque une option et qu’il faille un jour le recompiler.