Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/07/2008, à 11:14

n1ghtm4r3

Double instance d'Apache2

Bonjour

je souhaiterai créer une double instance d'apache, afin de faire tourner l'un avec php4 et l'autre avec php5. Le soucis, c'est que la plus part des tutoriels sur le sujet sont obsolètes.

Le but de cette manip est de pouvoir tester en local des appli php 4 et 5.

Je n'es pas la possibilité d'utiliser le module CGI, merci de ne pas me proposer cette solution que je connais déjà.

Il me faut donc d'abord installer php4 en tant que module, créer la double instance et faire écouter le 2nd serveur sur un autre port. Le principe est bon, mais la manip à réaliser est quelque peut flou... Un petit coup de main s'impose tongue

je rappelle ma config : Hardy 8.04, apache2, php5

merci

Hors ligne

#2 Le 04/07/2008, à 13:12

Bzh

Re : Double instance d'Apache2

Je te conseille d'installer un autre serveur comme lighthttpd qui est un serveur hyper réactif ( utilisé sur les serveurs de fichiers statiques : photos, vidéos etc ... ).

Tu installes lighthttpd avec la deuxième version de php et tu le fais écouter sur un autre port qu'Apache.

C'est comme cela que je ferais...

Au revoir

Hors ligne

#3 Le 04/07/2008, à 14:06

n1ghtm4r3

Re : Double instance d'Apache2

Je te remercie, je n'y avais pas penser big_smile. D'ailleurs, on peut installer php4 en tant que module sur lighttpd ? Je ne le connais pas du tout.

J'aimerai tout de même savoir si c'est possible de faire qu'avec apache ?

Dernière modification par n1ghtm4r3 (Le 04/07/2008, à 14:27)

Hors ligne

#4 Le 09/07/2008, à 16:30

n1ghtm4r3

Re : Double instance d'Apache2

La solution

Configuration initiale :
-    Apache2/PHP5/MySQL
-    Apache2 arrêté (/etc/init.d/apache2 stop)


Retirer tous les modules php de mods_enabled ;
Retirer la/les directive Listen (parfois dans ports.conf ou apache2.conf ou httpd.conf ou directement dans le virtualhost) ;

Créer un fichier apache2-php4.conf dans les dossier de config d'Apache (/etc/apache2) :
Apache2-php4.conf

Include /etc/apache2/apache2.conf
Listen *:81

LoadModule php4_module /usr/lib/apache2/modules/libphp4.so
<IfModule mod_php4.c>
  AddType application/x-httpd-php .php .phtml .php3
  AddType application/x-httpd-php-source .phps
</IfModule>

De même, créer un fichier apache2-php5.conf

Apache2-php5.conf

Include /etc/apache2/apache2.conf

LockFile /var/lock/apache2/apache2-php5.accept.lock
PidFile /var/run/apache2-php5.pid
ErrorLog /var/log/apache2/error-php5.log
Listen *:80

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
<IfModule mod_php5.c>
  AddType application/x-httpd-php .php .phtml .php3
  AddType application/x-httpd-php-source .phps
</IfModule>

Ainsi, c’est php5 qui serra utilise par défaut (sur le port 80). Vous pouvez bien sûr modifier l’ip ou le port d’écoute à votre guise.


Avec la configuration actuelle, si vous essayer de lancer Apache (/etc/init.d/apache2 start), une erreur apparaîtra, normal puisque aucun port d’écoute n’est écouté.

Copier /usr/sbin/apache2ctl v apache2-php4ctl rs /usr/sbin/apache2-php4ctl et /usr/sbin/apache2-php5ctl. Éditez apache2-php4ctl et apache2-php5ctl pour changer "HTTPD" à : 

HTTPD='/usr/sbin/apache2 -f /etc/apache2/apache2-php4.conf'

Et,

 
HTTPD='/usr/sbin/apache2 -f /etc/apache2/apache2-php5.conf'

Un autre script a besoin d'être modifié, il est situé dans /etc/init.d : copiez /etc/init.d/apache2 vers /etc/init.d/apache2-php4 et /etc/init.d/apache2-php5 puis déplacez le fichier vers /etc/init.d/apache2.org et modifiez alors /etc/init.d/apache2-php4 :

APACHE2CTL="$ENV /usr/sbin/apache2-php4ctl"

Mettez tout en commentaires depuis "for i in $PIDS" jusqu'à "done". Puis ajoutez à la place

/etc/init.d/apache2-php4

PIDFILE='/var/run/apache2/apache2-php4.pid'
if [ -e "$PIDFILE" ] ; then
PID=`cat "$PIDFILE"`
fi

Appliquez les mêmes modifications à /etc/init.d/apache2-php5 en conséquence.

Créer un nouveau script /etc/init.d/apache2 (attention aux permissions) qui permettra de gérer les 2 serveurs à la fois avec le contenu suivant :

#!/bin/sh
./apache2-php4 $@
./apache2-php5 $@

Redémarrer les serveurs, soit 1 par 1 (/etc/init.d/apache2-php4 start et /etc/init.d/apache2-php5 start) ou les deux à la fois (/etc/init.d/apache2 start).




source : http://g-rossolini.developpez.com/tutor … imultanes/

Hors ligne