viewtopic.php?f=12&t=13032
Ici le but est de déployer sur un serveur Apache local plusieurs versions de php avec de tester des sites dans ces différentes versions.
L'idée est d'associer un répertoire virtuel par version de php via FastCGI Process Manager.
Nous verrons ici comment faire par exemple pour php5.6 et php7.0. Il suffira de reproduire le schéma autant de fois que nécessaire pour les autres versions de php.
Attention version d'Apache 2.4.10 au minimum
1. Installer le module FastCGI et les activer
Sous Mint 18.3 (Base ubuntu 16.X)
Code : Tout sélectionner
sudo apt install apache2 libapache2-mod-fastcgi
sudo a2enmod actions fastcgi alias proxy_fcgi
Code : Tout sélectionner
sudo apt install apache2 libapache2-mod-fcgid
sudo a2enmod actions fcgid alias proxy_fcgi
Ajouter ce ppa pour bénéficier des différentes versions
Code : Tout sélectionner
sudo add-apt-repository ppa:ondrej/php
Code : Tout sélectionner
sudo apt install php5.6 php5.6-fpm
sudo apt install php7.0 php7.0-fpm
Code : Tout sélectionner
sudo systemctl status php5.6-fpm
● php5.6-fpm.service - The PHP 5.6 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php5.6-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since mar. 2019-06-11 20:52:05 CEST; 8min ago
Docs: man:php-fpm5.6(8)
Main PID: 1050 (php-fpm5.6)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
CGroup: /system.slice/php5.6-fpm.service
├─1050 php-fpm: master process (/etc/php/5.6/fpm/php-fpm.conf)
├─1145 php-fpm: pool www
└─1146 php-fpm: pool www
juin 11 20:52:05 libres09-Latitude-E6410 systemd[1]: Starting The PHP 5.6 FastCGI Process Manager...
juin 11 20:52:05 libres09-Latitude-E6410 systemd[1]: Started The PHP 5.6 FastCGI Process Manager.
Code : Tout sélectionner
sudo systemctl status php7.0-fpm
Code : Tout sélectionner
sudo mkdir -p /var/www/html/php56
sudo mkdir -p /var/www/html/php70
Code : Tout sélectionner
echo "<?php phpinfo(); ?>" > /var/www/html/php56/index.php
echo "<?php phpinfo(); ?>" > /var/www/html/php70/index.php
3. Créer les virtuals hosts
Celui pour le php 5.6
Code : Tout sélectionner
$ cat /etc/apache2/sites-available/php56.conf
<VirtualHost *:80>
ServerName php56.com
ServerAlias php56.com
ServerAdmin webmaster@php56.com
DocumentRoot /var/www/html/php56
DirectoryIndex index.php
<Directory /var/www/html/php56>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
<FilesMatch \.php$>
# Apache 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
Code : Tout sélectionner
Celui pour le php 7.0
Code : Tout sélectionner
$ cat /etc/apache2/sites-available/php70.conf
<VirtualHost *:80>
ServerName php70.com
ServerAlias php70.com
ServerAdmin webmaster@php70.com
DocumentRoot /var/www/html/php70
DirectoryIndex index.php
<Directory /var/www/html/php70>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php7.0-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
Code : Tout sélectionner
sudo a2ensite php56 php70
sudo systemctl restart apache2
4. Mettre à jour le fichier /etc/hosts
Mettre à jour le fichier /etc/hosts avec ces entrées
Code : Tout sélectionner
127.0.0.1 php70.com
127.0.0.1 php56.com
5. Et ça fonctionne...
Dans un navigateur, vérifier le fonctionnement
6. Configurer vos versions de php
Vous disposez sur ce serveur de plusieurs versions de php mais aussi de plusieurs exécutables. Exemple concret :
Code : Tout sélectionner
ls /etc/php/5.6/
cli fpm mods-available
ls /etc/php/7.0/
apache2 cli fpm mods-available
Donc voilà... à vous d'installer autant de versions différentes de php que vous souhaitez ou même des versions identiques avec des fichiers de configuration différentes...