Vous pouvez exécuter plusieurs versions de PHP sur Ubuntu sans aucun problème. Vous avez besoin de plusieurs versions de php si les applications sont construites dans différentes versions de php comme php 7.1 et php 7.2. Ici, nous allons installer PHP7.0, PHP7.1, PHP7.2 et PHP7.3 sur le serveur.
- Tout d'abord, nous allons ajouter PPA, en utilisant la commande ci-dessous.
# sudo apt install software-properties-common
# sudo add-apt-repository ppa:ondrej/php
- Exécutez la commande de mise à jour.
# sudo apt update
- Installez PHP 7.2 avec la commande ci-dessous.
# sudo apt install php7.2 php7.2-fpm
- Installez les extensions php en utilisant les commandes ci-dessous.
# sudo apt install php7.2-mysql php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl
- Maintenant, installez PHP 7.1 à l'aide de la commande ci-dessous.
# sudo apt install php7.1 php7.1-fpm
- Installez les extensions PHP7.1 courantes.
# sudo apt install php7.1-mysql php7.1-mbstring php7.1-xml php7.1-gd php7.1-curl
Vous pouvez installer php 7.0 comme nous avons installé php 7.1 et 7.2
- Installez Nginx avec la commande ci-dessous.
# sudo apt install nginx
- Créer 2 dossiers pour tester le site Web avec PHP 7.1 et PHP 7.2
echo "<?php phpinfo();?>" > /var/www/php72/index.php
echo "<?php phpinfo();?>" > /var/www/php71/index.php
- Nous allons créer des blocs de serveur pour le site Web sur Nginx.
# sudo nano /etc/nginx/sites-available/php71.example.com
Insérez le contenu suivant pour le site avec PHP 7.1
# Application with PHP 7.1 # server { listen 80; root /var/www/php71; index index.php; server_name php71.test.com; location ~* \.php$ { # With php-fpm unix sockets fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } }
- Maintenant, créez un deuxième fichier de configuration VirtualHost pour fonctionner avec PHP 7.2.
# sudo nano /etc/nginx/sites-available/php72.example.com
# Application with PHP 7.2 # server { listen 80; root /var/www/php72; index index.php; server_name php72.test.com; location ~* \.php$ { # With php-fpm unix sockets fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } }
- Créez un lien symbolique pour les deux fichiers de configuration situés sous le répertoire /etc/nginx/sites-enabled.
# sudo ln -s /etc/nginx/sites-available/php71.example.com /etc/nginx/sites-enabled/
# sudo ln -s /etc/nginx/sites-available/php72.example.com /etc/nginx/sites-enabled/
- Laissez-nous redémarrer le Nginx.
# sudo systemctl restart nginx.service
- Vous pouvez accéder à la fois au site Web dans le navigateur et vous verrez les différentes versions pour chacun.