php4 et php5 sur le même apache
Bonjour à toutes et tous,
Aujourd'hui, une petite feinte pour avoir php4 et php5 sur le même serveur web (en l'occurence ici Apache2). L'astuce consiste à en avoir l'un des deux en CGI (dans notre exemple php4 sera en CGI et php5 en module).
Installez PHP5 comme d'habitude, sous Ubuntu cela se fait en 2 coups de paquets :
Pour tester le bon fonctionnement de notre installation, nous allons créer 2 répertoires sous /var/www, les répertoires site_php4 et site_php5. Dans chacun de ces répertoires, nous allons déposer juste un fichier index.php contenant le code suivant :
Créons ensuite les fichier de configuration d'apache pour ces 2 sites :
Sauvegardez ce fichier sous /etc/apache/sites-available/site_php4.conf et faîtes la même chose pour site_php5.conf en remplaçant php4 par php5.
Déclarez ces fichiers auprès d'apache
Redémarrez apache et vous devriez voir dans votre navigateur 2 pages identiques sur les sites : le phpinfo de PHP5. Nous allons maintenant installer php4 et configurer apache pour l'utiliser sur site_php4.
Ça, c'est fait. Modifions la configuration du virtualhost site_php4 pour qu'il utilise une CGI quand il rencontre un fichier portant une extension .php
Pour cela, il est nécessaire de charger un module d'Apache permettant la redéfinition d'une action associée à un handler (le module actions).
Modifions le fichier de conf de site_php4.conf
Reste à redémarrer Apache, rechargez la page et voila !
Une autre page sur le sujet sur le wiki de unelectronlibre.info.
Aujourd'hui, une petite feinte pour avoir php4 et php5 sur le même serveur web (en l'occurence ici Apache2). L'astuce consiste à en avoir l'un des deux en CGI (dans notre exemple php4 sera en CGI et php5 en module).
Installez PHP5 comme d'habitude, sous Ubuntu cela se fait en 2 coups de paquets :
dudul47:~/# apt-get install libapache2-mod-php5
Pour tester le bon fonctionnement de notre installation, nous allons créer 2 répertoires sous /var/www, les répertoires site_php4 et site_php5. Dans chacun de ces répertoires, nous allons déposer juste un fichier index.php contenant le code suivant :
<?php phpinfo(); ?>
Créons ensuite les fichier de configuration d'apache pour ces 2 sites :
<VirtualHost *:80>
ServerName php4.localhost
DocumentRoot /var/www/site_php4
</virtualHost>
ServerName php4.localhost
DocumentRoot /var/www/site_php4
</virtualHost>
Sauvegardez ce fichier sous /etc/apache/sites-available/site_php4.conf et faîtes la même chose pour site_php5.conf en remplaçant php4 par php5.
Petite commentaire sur le nom du serveur. Je pars du principe que l'installation se fait en local (127.0.0.1) mais il se peut que votre serveur web soit une autre machine. Dans tous les cas, il est nécessaire que le nom donné dans la directive ServerName soit résolu sur le client. Pour cela, utilisez le fichier local de résolution (/etc/hosts sous linux) ou ajoutez une entrée DNS.
Déclarez ces fichiers auprès d'apache
dudul47:~/# a2ensite site_php4.conf
Site site_php4.conf installed; run /etc/init.d/apache2 reload to enable.
dudul47:~/# a2ensite site_php5.conf
Site site_php5.conf installed; run /etc/init.d/apache2 reload to enable.
Site site_php4.conf installed; run /etc/init.d/apache2 reload to enable.
dudul47:~/# a2ensite site_php5.conf
Site site_php5.conf installed; run /etc/init.d/apache2 reload to enable.
Redémarrez apache et vous devriez voir dans votre navigateur 2 pages identiques sur les sites : le phpinfo de PHP5. Nous allons maintenant installer php4 et configurer apache pour l'utiliser sur site_php4.
dudul47:~/# apt-get install php4-cgi
Ça, c'est fait. Modifions la configuration du virtualhost site_php4 pour qu'il utilise une CGI quand il rencontre un fichier portant une extension .php
Pour cela, il est nécessaire de charger un module d'Apache permettant la redéfinition d'une action associée à un handler (le module actions).
dudul47:~/# a2enmode actions
Module actions installed; run /etc/init.d/apache2 force-reload to enable.
Module actions installed; run /etc/init.d/apache2 force-reload to enable.
Modifions le fichier de conf de site_php4.conf
<VirtualHost *:80>
ServerName php4.localhost
DocumentRoot /var/www/site_php4
ScriptAlias /cgi-bin /usr/lib/cgi-bin
AddHandler x-httpd-php4 .php
Action x-httpd-php4 /cgi-bin/php4
</VirtualHost>
ServerName php4.localhost
DocumentRoot /var/www/site_php4
ScriptAlias /cgi-bin /usr/lib/cgi-bin
AddHandler x-httpd-php4 .php
Action x-httpd-php4 /cgi-bin/php4
</VirtualHost>
Reste à redémarrer Apache, rechargez la page et voila !
Une autre page sur le sujet sur le wiki de unelectronlibre.info.
Publicité