Comment installer plusieurs versions PHP avec Apache sur Debian 11/10

Comment installer plusieurs versions PHP avec Apache sur Debian 11/10

Généralement, le gestionnaire d'accueil 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 managers d'accueil utilisent Docker pour exécuter plusieurs versions PHP sur le serveur unique. De plus, la plupart d'entre vous connaissent la configuration. Peut-être que certains des administrateurs du système n'en sont pas conscients. Ce tutoriel vous aidera à installer plusieurs versions PHP avec Apache sur Debian 11, Debian 10 et Debian 9 Systems sans changer de versions PHP.

Ce tutoriel décrit l'installation et la configuration de deux VirtualHost sur Apache avec des versions PHP distinctes. First VirtualHost fonctionnera avec PHP 5.6 et un autre VirtualHost fonctionnera avec PHP 7.2. Alors, passez par ce tutoriel. Vous pouvez également utiliser plus de deux versions PHP avec Apache selon les besoins, mais ce tutoriel n'en couvre que deux.

Installation PHP

Pour l'installation des versions PHP, nous utilisons le PPA entretenu ici. Utilisez les deux commandes ci-dessous pour ajouter le PPA sur votre système Debian.

sudo apt install ca-certificats 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.liste.d / php.liste 

Ce tutoriel utilise PHP 5.6 et php 7.2 pour configurer avec le serveur Web Apache. Pour utiliser les multiples versions PHP, nous utiliserons PHP FPM et FastCGI. Exécutez les commandes suivantes pour installer PHP et FPM sur le système Debian.

APT MISE À JOUR AUDO APT INSTALLER PHP5.6 php5.6-fpm sudo apt installer 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 fonctionnent.

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 mise à jour sudo apt installer apache2 libapache2-mod-fcgid 

Configuration d'Apache

Activez maintenant quelques modules requis pour la configuration de plusieurs versions PHP avec Apache. Ces modules sont nécessaires pour intégrer PHP FPM et FastCGI avec le serveur Apache.

Sudo a2enmod Actions fcgid alias proxy_fcgi 

Créez maintenant deux répertoires séparés sur votre système pour les deux sites Configuration de votre système.

sudo mkdir / var / www / php56 sudo mkdir / var / www / php72 

Maintenant, créez et indexez.php contenant la fonction phpinfo (). Cela aidera les utilisateurs à afficher et à confirmer, quelle version PHP est utilisée par le VirtualHost.

Echo ""> / var / www / php56 / index.php echo ""> / var / www / php72 / index.php 

Commençons la création de VirtualHost. Apache conserve tous les fichiers de configuration VirtualHost sous / etc / apache2 / sites disponibles avec l'extension .confli. Créez un fichier pour le premier hôte virtuel et modifiez dans votre éditeur de texte préféré.

sudo vim / etc / apache2 / sites-disponible / php56.exemple.com.confli 

Ajouter le contenu suivant. Assurez-vous d'utiliser le nom de serveur et le chemin du répertoire correct en fonction de votre configuration. Ce site Web est configuré pour fonctionner avec PHP 5.6.

Nom de serveur PHP56.exemple.com documentroot / var / www / php56 Options-Indexes + suitSyMLinks + MultiViews allaictoverride Tous nécessitent tous les accords # apache 2.4.10+ peuvent se procurer à Unix Socket Sethandler "Proxy: UNIX: / var / run / php / php5.6-FPM.chaussette | fcgi: // localhost / "
12345678910111213 Nom de serveur PHP56.exemple.com documentroot / var / www / php56 Options-Indexes + SuivitSyMLinks + MultiViews Allaidride Tous nécessitent tous les accords # Apache 2.4.10+ peuvent se procurer à Unix Socket Sethandler "Proxy: UNIX: / var / run / php / php5.6-FPM.chaussette | fcgi: // localhost / "

De même, créez un deuxième fichier de configuration VirtualHost pour travailler avec PHP 7.2. Modifier le fichier de configuration dans l'éditeur de texte:

sudo vim / etc / apache2 / sites-disponible / php72.exemple.com.confli 

Ajoutez le contenu suivant pour fichier avec un nom de serveur et un document de document approprié.

Nom de serveur php72.exemple.com documentroot / var / www / php72 Options-Indexes + suifymLinks + multivirews allowoverride nécessite tous tous les sethandler accordés "proxy: unix: / var / run / php / php7.2-FPM.chaussette | fcgi: // localhost / "
123456789101112 Nom de serveur php72.exemple.com documentroot / var / www / php72 Options-Indexes + SuivitSyMLinks + MultiViews Allaidride Tous nécessitent tous les accords Sethandler "Proxy: Unix: / var / run / php / php7.2-FPM.chaussette | fcgi: // localhost / "

Vous deux sites Web êtes configurés maintenant. Mais ils ne sont toujours pas actifs. Apache garde des sites actifs sous / etc / Apache2 / Répertoire compatible sur les sites. Vous pouvez simplement créer un lien symbolique des fichiers de configuration à ce répertoire ou utiliser la commande ci-dessous pour faire de même.

sudo a2ensite php56.exemple.com sudo a2ensite php72.exemple.com 

Après avoir apporté tous les modifications à redémarrer Apache pour recharger les nouveaux paramètres.

sudo systemctl redémarrer apache2 

Votre configuration est terminée maintenant. Passez à l'étape suivante pour tester votre configuration.

Configuration de test

Ouvrez un navigateur Web et visitez les deux sites. Tu verras ça php56.exemple.com montre la version Php 5.6 et php72.exemple.com montre le Php 7.2 Comme la configuration.