Généralement, le gestionnaire d'hébergement utilisait un serveur distinct 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 que j'ai utilisée dans ce tutoriel. Mais certains des administrateurs système ne sont pas conscients de cela. Ce tutoriel vous aidera à installer plusieurs versions de PHP avec Apache sur les systèmes Ubuntu 18.04 et 16.04 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.
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-fastcgi Ubuntu 18.04 Users: sudo apt install apache2 libapache2-mod-fcgid
Installer PHP
Pour l'installation des versions PHP, nous utilisons le PPA maintenu ici. Utilisez les deux commandes ci-dessous pour ajouter le PPA à votre système.
### On Ubuntu 18.04 sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php ### On Ubuntu 16.04 sudo apt install python-software-properties sudo add-apt-repository ppa:ondrej/php
Pour ce tutoriel, nous utilisons 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. Installons les packages suivants sur votre système.
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
- Recommandé :Comment activer/désactiver les modules PHP sur Ubuntu
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 fastcgi alias proxy_fcgi Ubuntu 18.04 Users: sudo a2enmod actions fcgid alias proxy_fcgi
Préparez-vous pour la configuration des sites Web sur votre serveur Apache. À des fins de test, je configure deux sites Web pour qu'ils fonctionnent avec deux versions PHP différentes. Commencez par créer deux répertoires sur votre serveur.
sudo mkdir /var/www/php56 sudo mkdir /var/www/php72
Maintenant, créez et index.php contenant la fonction phpinfo().
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.
Apache123456789101112 |
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
Modifiez le fichier /etc/hosts sur votre système local et créez une entrée comme ci-dessous. Cela résoudra les noms temporaires en adresse IP localhost.
sudo vim /etc/hosts
Ajouter l'entrée suivante à la fin du fichier
127.0.0.1 php72.example.com 127.0.0.1 php56.example.com
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.