Généralement, le gestionnaire d'hôte utilise le système séparé pour chaque déploiement d'application de version PHP. Ce qui augmente le coût d'hébergement. Certains des gestionnaires d'hôtes utilisent Docker pour exécuter plusieurs versions de PHP sur un seul serveur. De plus, la plupart d'entre vous connaissent la configuration. Peut-être que certains administrateurs système ne sont pas au courant de cela. Ce tutoriel vous aidera à installer plusieurs versions de PHP avec Apache sur les systèmes Debian 11, Debian 10 et Debian 9 sans changer de version de PHP.
Ce tutoriel décrit l'installation et la configuration de deux VirtualHost sur Apache avec des versions PHP distinctes. Le premier VirtualHost fonctionnera avec PHP 5.6 et un autre VirtualHost fonctionnera avec PHP 7.2. Alors parcourez simplement ce tutoriel. Vous pouvez également utiliser plus de deux versions de PHP avec Apache selon vos besoins, mais ce didacticiel n'en couvre que deux.
Installer PHP
Pour l'installation des versions PHP, nous utilisons le PPA maintenu ici. Utilisez les deux commandes ci-dessous pour ajouter le PPA sur votre système Debian.
sudo apt install ca-certificates apt-transport-https wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add - echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list
Ce tutoriel utilise PHP 5.6 et PHP 7.2 pour configurer avec le serveur Web Apache. Pour utiliser les multiples versions de PHP, nous utiliserons PHP FPM et FastCGI. Exécutez les commandes suivantes pour installer PHP et FPM sur le système Debian.
apt update sudo apt install php5.6 php5.6-fpm sudo apt install php7.2 php7.2-fpm
Après l'installation, les services php-fpm seront démarrés automatiquement. Utilisez les commandes suivantes pour vous assurer que les deux services sont en cours d'exécution.
sudo systemctl status php5.6-fpm sudo systemctl status php7.2-fpm
Installation d'Apache
Installez le serveur Web Apache à partir du référentiel officiel. Lancez le terminal sur votre système ou connectez-vous avec ssh pour les systèmes distants. Exécutez les commandes suivantes pour installer la dernière version disponible du serveur Web Apache.
sudo apt update sudo apt install apache2 libapache2-mod-fcgid
Configuration d'Apache
Activez maintenant quelques modules nécessaires à la configuration de plusieurs versions de PHP avec Apache. Ces modules sont nécessaires pour intégrer PHP FPM et FastCGI au serveur Apache.
sudo a2enmod actions fcgid alias proxy_fcgi
Créez maintenant deux répertoires distincts sur votre système pour les deux sites qui se configurent sur votre système.
sudo mkdir /var/www/php56 sudo mkdir /var/www/php72
Maintenant, créez et index.php contenant la fonction phpinfo(). Cela aidera les utilisateurs à voir et à confirmer quelle version de PHP est utilisée par VirtualHost.
echo " <?php phpinfo(); ?> " > /var/www/php56/index.phpecho " <?php phpinfo(); ?> " > /var/www/php72/index.php
Commençons la création de VirtualHost. Apache conserve tous les fichiers de configuration VirtualHost sous /etc/apache2/sites-available avec l'extension .conf. Créez un fichier pour le premier hôte virtuel et modifiez-le dans votre éditeur de texte préféré.
sudo vim /etc/apache2/sites-available/php56.example.com.conf
Ajoutez le contenu suivant. Assurez-vous d'utiliser le nom de serveur et le chemin de répertoire corrects en fonction de votre configuration. Ce site Web est configuré pour fonctionner avec PHP 5.6.
Apache
12345678910111213 |
De même, créez un deuxième fichier de configuration VirtualHost pour fonctionner avec PHP 7.2. Modifier le fichier de configuration dans l'éditeur de texte :
sudo vim /etc/apache2/sites-available/php72.example.com.conf
Ajoutez le contenu suivant au fichier avec le nom de serveur et la racine de document appropriés.
Apache
123456789101112 |
Vos deux sites Web sont maintenant configurés. Mais ils ne sont toujours pas actifs. Apache conserve les sites actifs sous le répertoire /etc/apache2/sites-enabled. Vous pouvez simplement créer un lien symbolique des fichiers de configuration vers ce répertoire ou utiliser la commande ci-dessous pour faire de même.
sudo a2ensite php56.example.com sudo a2ensite php72.example.com
Après avoir effectué toutes les modifications, redémarrez Apache pour recharger les nouvelles modifications de paramètres.
sudo systemctl restart apache2
Votre configuration est maintenant terminée. Passez à l'étape suivante pour tester votre configuration.
Configuration du test
Ouvrez un navigateur Web et visitez les deux sites. Vous verrez que php56.example.com affiche la version PHP 5.6 et php72.example.com affiche le PHP 7.2 comme configuration.