Ce tutoriel vous aidera à installer plusieurs versions de PHP avec Apache sur le système Linux Ubuntu 20.04.
Ce tutoriel décrit l’installation et la configuration de deux VirtualHost dans Apache avec des versions PHP distinctes.
LIRE AUSSI: Comment mettre à jour PHP sur Ubuntu 18.04
Le premier VirtualHost fonctionnera avec PHP 5.6 et un autre VirtualHost fonctionnera avec PHP 7.4.
Vous pouvez également utiliser plus de deux versions de PHP avec Apache selon vos besoins, mais ce tutoriel n’en couvre que deux.
Installer Apache
Les packages pour Apache sont disponibles dans les référentiels par défaut sur Ubuntu.
Ouvrez un terminal sur votre système Ubuntu, puis 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
Installer PHP
Un PPA est maintenu pour l’installation de PHP sur les systèmes Ubuntu depuis de longues années. Il vous suffit d’ajouter ce PPA à votre système pour installer les packages.
Utilisez les quelques commandes ci-dessous pour ajouter le PPA à votre système.
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php
Pour ce tutoriel, nous utilisons PHP 5.6 et PHP 7.4 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.
sudo apt update -y sudo apt install php5.6 php5.6-fpm -y sudo apt install php7.4 php7.4-fpm -y
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.4-fpm
Configurer Apache avec plusieurs versions de PHP
Activez maintenant quelques modules requis pour 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
Préparez-vous pour la configuration de votre serveur Apache. À des fins de test, je configure deux sites Web pour qu’ils fonctionnent avec deux versions PHP différentes. Tout d’abord, créez deux répertoires sur votre serveur.
sudo mkdir /var/www/php56-app sudo mkdir /var/www/php74-app
Maintenant, créez et index.php contenant la fonction phpinfo ();
echo "<?php phpinfo(); ?>" > /var/www/php56-app/index.php echo "<?php phpinfo(); ?>" > /var/www/php74-app/index.php
Commençons la création de VirtualHost. Apache conserve tous les fichiers de configuration de VirtualHost sous /etc/apache2/ sites-disponibles 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 du serveur et le chemin du répertoire corrects en fonction de votre configuration.
Ce site Web est configuré pour fonctionner avec PHP 5.6.
<VirtualHost *:80> ServerName php56.example.com DocumentRoot /var/www/php56-app <Directory /var/www/php56-app> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </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>
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/php74.example.com.conf
Ajoutez le contenu suivant au fichier avec ServerName et DocumentRoot appropriés.
<VirtualHost *:80> ServerName php72.example.com DocumentRoot /var/www/php74-app <Directory /var/www/php74-app> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost" </FilesMatch> </VirtualHost>
Vos deux sites Web sont maintenant configurés.
Mais ils ne sont toujours pas actifs.
Apache garde les sites actifs dans 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 php74.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.
Testez votre configuration
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 de l’hôte local.
sudo vim /etc/hosts
Ajouter l’entrée suivante à la fin du fichier
127.0.0.1 php74.example.com 127.0.0.1 php56.example.com
Ouvrez un navigateur Web et visitez les deux sites. Vous verrez que php56.example.com montre la version PHP 5.6 et php74.example.com montre PHP 7.4 comme configuration.
Conclusion
Ce tutoriel vous a aidé à installer plusieurs versions de PHP avec Apache.
3 Comments