J’aime beaucoup PHP et encore plus depuis que j’utilise le framework Laravel au quotidien qui me facilite franchement la vie. Je vous en ai déjà parlé plusieurs fois ici et si vous voulez en savoir plus, n’hésitez pas à faire une recherche, je suis sûr que vous allez trouver votre bonheur. Une page dédiée au framework devrait d’ailleurs prochainement arriver pour simplifier l’organisation des tutoriels sur ce sujet.
Si je vous fais ce tutoriel aujourd’hui, c’est justement parce que j’ai besoin de déployer une nouvelle application Laravel sur un serveur VPS et ça tombe bien, car la nouvelle version PHP 8.3 vient tout juste de sortir. Je vais donc avoir une installation bien à jour directement ce qui va me faire gagner un peu de temps à l’avenir. En parlant de serveur, je vais une nouvelle fois utiliser mon compte Digital Ocean, car j’ai toujours mes serveurs VPS gratuits à disposition donc autant en profiter un maximum. Si ça vous intéresse, je vous conseille d’aller faire un tour sur le lien précédent, vous pourriez faire des économies non négligeables. Bon, il est temps de passer aux choses sérieuses et on va installer PHP 8.3 sur notre serveur web qui tourne sur une distribution Linux Ubuntu LTS.
Préparation du serveur pour installer PHP 8.3
Une fois connecté sur mon serveur en SSH, je commence par vérifier quelle version de PHP est installée avec la commande suivante :
php -v
Cette commande me répond un résultat qui ne me surprend pas, car je n’y avais pas encore touché, j’ai donc ceci, pas de trace de PHP :
Command 'php' not found, but can be installed with:
apt install php8.1-cli # version 8.1.2-1ubuntu2.14, or
apt install php-cli # version 2:8.1+92ubuntu1
Jusqu’ici, tout est donc normal. Avant de faire quoi que ce soit de particulier, je commence par lancer la mise à jour de mon serveur sous Ubuntu avec les commandes que vous connaissez déjà probablement :
sudo apt update
sudo apt upgrade
Puis on installe ce qu’il faut avant de passer à l’installation de PHP :
sudo apt install ca-certificates apt-transport-https software-properties-common lsb-release -y
Si vous tenez vraiment à savoir de quoi il s’agit même s’il y a de fortes chances que votre hébergeur les ai installés par défaut (c’est le cas chez Digital Ocean sur le serveur VPS que j’ai utilisé) je vous invite à liste la suite.
Le paquet ca-certificates fournit les certificats nécessaires pour vérifier les sites sécurisés, tandis que apt-transport-https permet à l’outil de gestion de paquets avancé (APT) de récupérer des paquets via le protocole ‘https’. Le paquet software-properties-common offre des utilitaires pratiques pour gérer les sources du dépôt logiciel, et lsb-release fournit des informations spécifiques à la LSB (Linux Standard Base) concernant la distribution Linux utilisée.
On va maintenant pouvoir commencer à vraiment parler de PHP 8.3 avec l’ajout du PPA. Il s’agit du travail d’un mainteneur qui est maintenant très connu pour ça et nous aide dans notre projet d’installer PHP 8.3. Pour ajouter de PPA de PHP faites la commande suivante :
sudo add-apt-repository ppa:ondrej/php -y
Pour terminer, cette partie du tutoriel, lancer à nouveau une mise à jour pour bien prendre en compte ce nouveau référentiel.
sudo apt update
sudo apt upgrade
On peut maintenant passer à la vraie installation de la dernière version de PHP. Les choses encore plus sérieuses commencent !
Installer PHP 8.3 sur son serveur web VPS
L’attente était insoutenable, je sais bien, mais c’est bon, on y est, on peut installer PHP 8.3. Pour le faire, on commence sobrement par cette commande :
sudo apt install php8.3
Une fois que c’est fait, on peut installer tous les modules liés à PHP 8.3. Alors attention, selon l’application que vous voulez faire tourner, inutile de tout installer. Même pour installer Laravel, le framework ne demande pas tout ça. si vous ne voulez pas vous prendre la tête même si ce n’est pas ce que je conseille, vous pouvez quand même tout mettre pour accompagner PHP 8.3, c’est vous qui voyez.
De toute façon, s’il manque quelque chose pour votre application PHP, vous pourrez toujours installer ces extensions plus tard. Si j’ai oublié des choses dans cette liste, n’hésitez pas à me le dire dans les commentaires comme ça, je pourrai compléter.
sudo apt install php8.3-common php8.3-mysql php8.3-xml php8.3-xmlrpc php8.3-curl php8.3-gd php8.3-imagick php8.3-mbstring php8.3-opcache php8.3-zip php8.3-intl -y
On va maintenant vérifier que PHP 8.3 est bien installé avec un nouveau :
php -v
Qui cette fois nous affiche bien PHP 8.3, vous devriez obtenir ceci :
PHP 8.3.0 (cli) (built: Nov 24 2023 08:50:08) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.0, Copyright (c) Zend Technologies
with Zend OPcache v8.3.0, Copyright (c), by Zend Technologies
Faire fonctionner PHP 8.3 avec le serveur web NGINX
J’aime beaucoup NGINX et c’est ce que j’utilise personnellement sur mes projets. Pour que votre site web fonctionne avec php 8.3 et NGINX, il manque encore une petite chose que nous allons installer. Il faut que NGINX et PHP puissent parler ensemble, pour cela, nous allons installer les deux nouvelles choses suivantes :
sudo apt install php8.3-fpm php8.3-cli
Si vous savez déjà utiliser NGINX et que vous avez l’habitude de ce logiciel, je vous laisse continuer ça ne devrait pas poser de problèmes. Sinon rassurez vous, je vous proposerai prochainement un tutoriel pour configurer votre site web sur le serveur NGINX avec PHP 8.3. Une fois que l’on a la technique, ce n’est vraiment pas compliqué !
Utiliser PHP 8.3 avec le serveur web Apache 2
Je ne l’utilise presque pas en interne, mais par contre quand je dépanne et fais des prestations, il n’est pas rare que je croise ce serveur web Apache2. Si vous voulez mettre à jour vers PHP 8.3 ou simplement déployer une nouvelle application en utilisant ce serveur web voici ce qu’il faudra installer pour fonctionner avec Apache2.
Vous avez le choix. Soit utiliser le module apache et dans ce cas, il faudra installer ce paquet lié à PHP 8.3 :
sudo apt install libapache2-mod-php8.3
Ou alors en utilisant l’implémentation PHP FastCGI. Dans ce cas, vous devez faire les commandes suivantes :
sudo apt install libapache2-mod-fcgid
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm
Dans les deux cas, il faudra redémarrer apache2 avec la commande suivante pour que ce soit bien pris en compte par le serveur web :
sudo systemctl restart apache2
Je ne rentre pas plus dans les détails concernant le serveur web Apache2, mais vous avez une bonne base pour continuer votre route. Une chose est sûre, vous avez réussi à installer PHP 8.3 sur votre serveur web sous Debian ou ses dérivés comme Ubuntu qui utilise le gestionnaire de paquet APT. J’espère que ce tutoriel vous sera utile et n’oubliez pas de bien vérifier le code de vos applications, car PHP 8.3 apporte tout de même quelques changements que vous pouvez lire ici. Bonne chance !