Comment configurer plusieurs versions PHP avec Apache sur Ubuntu

Comment configurer plusieurs versions PHP avec Apache sur Ubuntu

Généralement, le gestionnaire d'accueil a utilisé un serveur séparé pour chaque déploiement d'application de version PHP. Ce qui augmente le coût d'hébergement. Certains gestionnaires d'accueil utilisent Docker pour exécuter plusieurs versions PHP sur un seul serveur. De plus, la plupart d'entre vous connaissent la configuration, j'ai utilisé dans ce tutoriel. Mais certains des administrateurs du système n'en sont pas conscients. Ce tutoriel vous aidera à installer plusieurs versions PHP avec Apache sur Ubuntu 22.04, 20.04 et 18.04 Systèmes LTS 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 8.1 et un autre VirtualHost fonctionnera avec PHP 7.4. 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 d'apache2

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 de l'Apache Webserver.

sudo apt mise à jour sudo apt installer apache2 libapache2-mod-fcgid 

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 

Installation des versions PHP

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

sudo apt install logiciel-properties-common sudo add-att-repository ppa: ondrej / php 

Pour ce tutoriel, nous utilisons Php 8.1 et php 7.4 à configurer avec le serveur Web Apache. Pour utiliser les multiples versions PHP, nous utiliserons PHP FPM et FastCGI. Installons les packages suivants sur votre système.

sudo apt mise à jour sudo apt installer php8.1 php8.1 fpm sudo apt installer php7.4 PHP7.4-FPM 

Après l'installation, php-fpm Les services seront démarrés automatiquement. Utilisez les commandes suivantes pour vous assurer que les deux services fonctionnent.

Sudo Systemctl Status PHP8.1 fpm sudo systemctl status php7.4-FPM 
  • Vous aimerez peut-être: comment activer / désactiver les modules PHP sur Ubuntu

Configuration des hôtes virtuels Apache

Préparez-vous pour la configuration des sites Web sur votre serveur Apache. À des fins de test, je configure deux sites Web pour travailler avec deux versions PHP différentes. Tout d'abord, créez deux répertoires sur votre serveur.

sudo mkdir / var / www / php81 sudo mkdir / var / www / php74 

Créer un index.Fichier PHP contenant le phpinfo () fonction.

Echo "" | Sudo Tee -a / var / www / php81 / index.php echo "" | Sudo Tee -a / var / www / php74 / 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 / php81.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 8.1.

Nom de serveur PHP81.exemple.com documentroot / var / www / php81 Options-Indexes + suitSyMLinks + multivirews allatRide Tous nécessitent tous les accordés # apache 2.4.10+ peuvent se procurer à Unix Socket Sethandler "Proxy: UNIX: / var / run / php / php8.1 fpm.chaussette | fcgi: // localhost "
12345678910111213 Nom de serveur PHP81.exemple.com documentroot / var / www / php81 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 / php8.1 fpm.chaussette | fcgi: // localhost "

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

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

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

Nom de serveur Php74.exemple.com documentroot / var / www / php74 Options-Indexes + suitSyMLinks + MultiViews allatOverride nécessite tous tous les Sethandler "Proxy: Unix: / var / run / php / php7.4-FPM.chaussette | fcgi: // localhost "
123456789101112 Nom de serveur Php74.exemple.com documentroot / var / www / php74 Options-Indexes + SuivitSyMLinks + MultiViews Allaidride Tous nécessitent tous les accords Sethandler "Proxy: Unix: / var / run / php / php7.4-FPM.chaussette | fcgi: // localhost "

Les deux sites Web sont 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 php81.exemple.com sudo a2ensite php74.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

Edit / etc / hosts fichier sur votre système local et faites une entrée comme ci-dessous. Cela résoudra les noms de tempory à l'adresse IP localhost.

sudo vim / etc / hôtes 

Ajouter une entrée suivante à la fin du fichier

127.0.0.1 php81.exemple.com 127.0.0.1 php74.exemple.com 

Ouvrez un navigateur Web et visitez les deux sites. Tu verras ça php81.exemple.com montre la version Php 8.1 et php74.exemple.com montre le Php 7.4 Comme la configuration.

  • http: // php81.exemple.com
    Php 8.1 avec Apache
  • http: // php74.exemple.com
    Php 7.4 avec Apache

Conclusion

Ce tutoriel vous a aidé à installer et à configurer plusieurs versions PHP avec Apache sur le système Ubuntu Linux. Qui vous fournit une solution rentable pour déployer différentes applications de version PHP sur un seul serveur Web.