PHP4 (mod_php) et PHP5 (fastcgi) avec Apache sous Ubuntu

J'ai finalement choisi Ubuntu comme système sur ma dedibox fraîchement livrée. Du coup, j'ai un système à configurer car j'ai plusieurs projets pour cette machine. Le premier étant d'héberger pwet.fr et de pouvoir à côté tester / développer des applications en PHP5. J'ai donc besoin de faire cohabiter ces deux versions. Sachant que ce site utilise eZ publish, je préfère avoir PHP4 en module (a priori plus performant), PHP5 en FastCGI (plus rapide qu'en CGI) le tout avec Apache 1.3 pour la stabilité. La première chose à faire est évidemment d'installer tout le nécessaire (il faut activer le dépôt Universe) :

 

tigrou@dedipwet:~$ sudo apt-get install apache libapache-mod-php4 php4-domxml php4-pear php4-pear-log php5-cgi php5-mysqli php5-xsl php5-gd php5-pear libapache-mod-fastcgi libapache-mod-actions

 

Une fois tout cela installé, il faut activer les modules nécessaires, le plus simple étant d'utiliser apache-modconf puis de redémarrer apache :

 

tigrou@dedipwet:~$ sudo apache-modconf apache enable mod_php4
tigrou@dedipwet:~$ sudo apache-modconf apache enable mod_fastcgi
tigrou@dedipwet:~$ sudo apache-modconf apache enable mod_actions
tigrou@dedipwet:~$ sudo /etc/init.d/apache restart

 

À partir de là, PHP4 devrait déjà fonctionner sur les fichiers terminant par .php, pour vérifier il suffit de créer un virtual host et d'y mettre un phpinfo. Ainsi tout à la fin de /etc/apache/httpd.conf, il suffit d'y mettre :

 

NameVirtualHost __IP__:80
<VirtualHost __IP__:80>
    ServerAdmin __EMAIL__
    DocumentRoot /var/www/votresite.fr
    ServerName votresite.fr
    ErrorLog /var/log/apache/errors-votresite.fr.log
    CustomLog /var/log/apache/access-votresite.fr.log common
</VirtualHost>

 

En remplaçant évidemment __IP__, __EMAIL__ et votresite.fr par les valeurs nécessaires ;) Il suffit alors de créer un fichier info.php et d'y placer un appel à la fonction PHP phpinfo et de l'appeler dans votre navigateur via http://votresite.fr/info.php pour obtenir le fameux PHPInfo.

Reste maintenant à configurer Apache pour interprèter les fichiers .php5 avec la version CGI de php5 via le module FastCGI. Pour cela, il faut modifier le fichier /etc/apache/conf.d/fastcgi.conf comme suit :

 

<IfModule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  FastCgiIpcDir /var/lib/apache/fastcgi
  FastCgiServer /var/www/votresite.fr/php5-wrapper.fcgi -processes 1 -idle-timeout 180 -socket /tmp/fastcgi.socket
  AddHandler php5-fastcgi .php5
  Action php5-fastcgi /php5-wrapper.fcgi
</IfModule>

 

Il reste alors à créer le fichier /var/www/votresite.fr/php5-wrapper.fcgi qui est en fait un simple script shell faisant appel à la version CGI de PHP5 :

 

#!/bin/sh 
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=1000
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php5-cgi

 

Il reste plus qu'à tester en copiant le fichier info.php en info.php5 et en l'appelant http://votresite.fr/info.php5, qui affichera normalement les informations sur l'installation de PHP5.

» Commentaires

- eZ publish sur Ubuntu (#63995) par Malebo le 10 Janvier 2007 à 22:58
Bonjour !
Suggestion : pourriez-vous rendre cet article : Installation de eZ Pubulish sur Ubuntu (version server ?) un peu plus didactique (pedagogique) afin de rendre la ou les procédures (toutes les étapes et les modifications nécessaires des fichiers à faire) plus accessibles aux novices ?
Cordialement
- eZ publish n'est pas l'objet de ce billet (#63996) par Damien le 10 Janvier 2007 à 23:11
eZ publish n'est pas l'objet de cet article (même si je le mentionne pour l'anecdote) mais traite de la cohabitation de PHP4 (en module) et PHP5 (en FastCGI) dans Apache 1.3 sous Ubuntu.
Mon collègue Frefred parle par contre de l'installation d'eZ publish sur son blog : http://www.frefred.fr/blog/instal..._heberger_ez_publish_sur_une_dedibox
- hide php5-wrapper.fcgi (#64670) par Prashant le 27 Février 2007 à 12:55
Si jai plusieur virtual host - est ce qu'il faut copier le fichier php5-wrapper.fcgi dans chaque virtual host directory.
Oubien est-ce qu'il est possible d'avoir ce ficiher en global configuration dans htp.conf.
Oubien le mettre dans /etc/apache/ directoire et l'inclure le path dans http.conf

» Trackback

Aucun trackback

Les trackacks sont désactivés

Flux RSS des billets

Flux RSS des billets

Rechercher sur pwet.fr

À retenir

Derniers commentaires

Archives

Nuage de tags

Bioutifoul photos

Quelques liens

Licence d'utilisation

Contenu sous Licence Creative Commons By-Sa

Sauf mentions spécifiques, les billets et les photos publiés sur ce site sont placés sous la licence Creative Commons by-sa.

Pour toute utilisation dépassant le cadre de cette licence, merci de me contacter par e-mail.

Login