• Environnement

Environnement fedora 12 / apache2 (httpd) => procédure d'installation sur le blog de jean-phi

L'installation de php sur la fedora 12 via yum installera la version 5.3 de php.

  • Contexte

Afin de pouvoir développer de nouveaux sites avec la version php5.3 mais de ne pas avoir à reprogrammer ceux développés avec la 5.2.x nous avons du faire cohabiter php5.3 et php5.2.11.

  • Install php 5.3
yum install php

le fichier php.ini se trouve dans /etc/ mettre error_reporting à on

  • Install php5.2.11

pré-requis librairie libxml pour php :


yum install libxml2-devel.x86_64
yum install  mysql-devel.x86_64

mkdir /usr/local/bin/php5.2

télécharger sources =>

tar -xzvf php-5.2.11.tar.gz

cp /usr/local/bin/php5.2.11/php.ini-recommanded /etc/php5.2/php.ini

./configure --prefix=/usr/local/bin/php5.2 --with-mysql=/usr/bin/ --with-libdir=lib64 --enable-pdo=shared --with-pdo-mysql=shared,/usr/bin/mysql --with-sqlite=shared --with-pdo-sqlite=shared --with-config-file-path=/etc/php5.2 --with-mysql-sock=/var/lib/mysql/mysql.sock --with-config-file-scan-dir=/etc/php.d

make && make install
  • Config

vérifier la présence de actions_module dans le fichier de config de apache

cat /etc/httpd/conf/httpd.conf | grep act

doit retourner => LoadModule actions_module modules/mod_actions.so

sinon insérer la ligne dans la section modules du fichier de conf (il faut bien sûr que le fichier modules/mod_actions.so existe...)

Pour les sites devant utiliser la version php5.2.11 :

<VirtualHost *:80>
   ServerName www.toto.loc
   DocumentRoot "/var/www/html/www.toto.loc/"
   <Directory "/var/www/html/www.toto.loc/">
       DirectoryIndex index.php index.html index.htm
       AllowOverride All
       Options All -Indexes
       Order allow,deny
       Allow from all
       Action php-script  /php5.2/php-cgi
       AddHandler php-script .php
   </directory>

    ScriptAlias /php5.2/ /usr/local/bin/php5.2/bin/
   <Directory /usr/local/bin/php5.2/bin>
       AllowOverride None
       Options -Indexes +ExecCGI +FollowSymLinks
       SetHandler cgi-script
       Order allow,deny
       Allow from all
    </Directory>
</VirtualHost>
  • Commande php :
mv /usr/local/bin/php /usr/local/bin/php_5.2

ln -s /usr/local/bin/php php
php -v => 5.3
ln -s /usr/local/bin/php5.2/bin/php php5.2
php5.2 -v => 5.211

Le fait que la commande en ligne php soit celle de la version php5.3 vous évitera de rencontrer des problèmes lors des commandes doctrine de symfony (notamment des problèmes avec drivers mysql).

  • php.ini

Il faut copier le fichier php.ini dans le réperoire exécutant le php-cgi, ici : /usr/local/bin/php5.2/bin/ pour qu'il soit pris en compte.

Vous pourrez ajouter dans le virtual host du site utilisant la version php5.2.11

SetEnv PHP_INI_SCAN_DIR /etc/php.d

=> prise en charge des fichiers de config.ini.

Pensez à modifier les php.ini pour qu'ils correspondent à vos besoins ( exemple extension_dir).

service httpd restart

Un simple phpinfo(); devrait vous confirmer que votre configuration fonctionne.