Comment installer PHP-FPM avec Apache sur Ubuntu 20.04. Il existe deux options distinctes pour exécuter PHP à l'aide du serveur Web. L'un utilise le CGI de PHP et l'autre est FPM. FPM est un gestionnaire de processus pour gérer le FastCGI en PHP. Apache est livré avec mod_php
par défaut et fonctionne avec tous les principaux serveurs Web. Avec mod_php
il y a un petit problème de performances car cela verrouille le processus.
Dans ce guide, vous apprendrez à configurer PHP 8.1-FPM et à le configurer avec Apache, ainsi qu'à configurer les variables PHP.
Cette configuration peut également être effectuée sur d'autres VPS ou VM dédiées ou cloud. Cette configuration est testée sur Google Compute Engine, mais elle fonctionne sur toutes les distributions Ubuntu ou Debian Linux.
Mise en route
Assurez-vous que votre serveur Ubuntu dispose des derniers packages en exécutant la commande suivante.
sudo apt update
sudo apt upgrade
Cela mettra à jour l'index des packages et mettra à jour les packages installés vers la dernière version.
Étape 1 :Ajouter un PPA pour PHP 8.1
Ajoutez le ondrej/php
qui a le package PHP 8.1 et d'autres extensions PHP requises.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
Une fois que vous avez ajouté le PPA, vous pouvez installer PHP 8.1.
Étape 2 :Installer PHP 8.1 FPM
Nous allons maintenant installer PHP 8.1-FPM et quelques modules communs pour exécuter une application PHP comme WordPress.
sudo apt install php8.1-fpm php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-dev php8.1-imap php8.1-mbstring php8.1-soap php8.1-zip php8.1-bcmath -y
Attendez que l'installation soit terminée.
Une fois l'installation terminée, vérifiez l'installation à l'aide de la commande suivante.
sudo service php8.1-fpm status
Vous recevrez une sortie similaire à celle ci-dessous.
Output ● php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-02-22 04:51:01 UTC; 3min ago Docs: man:php-fpm8.1(8) Process: 564 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.s> Main PID: 471 (php-fpm8.1) Status: "Processes active: 0, idle: 10, Requests: 1068, slow: 0, Traffic: 0req/sec" Tasks: 11 (limit: 9529) Memory: 1.2G CGroup: /system.slice/php8.1-fpm.service
Étape 3 :Installer Apache
Une fois que votre PHP-FPM est opérationnel, vous pouvez installer le serveur Web Apache.
sudo apt install apache2
Étape 4 :Configurer Apache avec PHP-FPM
Par défaut, Apache utilisera mod_php
vous pouvez donc maintenant configurer Apache pour utiliser PHP-FPM.
Désactivez la configuration par défaut du vhost Apache.
sudo a2dissite 000-default
Activer le module d'événement Apache
Désactivez tous les modules de préforme par défaut pour toutes les versions PHP existantes.
sudo a2dismod php7.4
Désactiver le module Apache Prefork.
sudo a2dismod mpm_prefork
Activer le module d'événement Apache.
sudo a2enmod mpm_event proxy_fcgi setenvif
Activer la configuration PHP FPM
Vous pouvez maintenant activer la configuration PHP-FPM.
sudo a2enconf php8.1-fpm
Activer HTTP2
Si vous avez besoin de la prise en charge de HTTP 2, vous pouvez également l'activer.
sudo a2enmod http2
Apache est maintenant configuré avec PHP FPM.
Étape 5 :Configurer PHP-FPM
Maintenant, nous configurons PHP pour les applications Web en modifiant certaines valeurs dans php.ini
fichier.
Pour PHP 8.1 avec Nginx le php.ini
l'emplacement sera dans le répertoire suivant.
sudo nano /etc/php/8.1/fpm/php.ini
Appuyez sur F6
pour la recherche dans l'éditeur et mettez à jour les valeurs suivantes pour de meilleures performances.
upload_max_filesize = 32M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000
Une fois que vous avez modifié vos paramètres PHP, vous devez redémarrer votre PHP-FPM pour que les modifications prennent effet.
sudo service php8.1-fpm restart
Étape 6 :Configurer les hôtes virtuels Apache
Créez une nouvelle configuration d'hôte virtuel Apache.
sudo nano /etc/apache2/sites-available/domain.conf
Collez la configuration ci-dessous dans le fichier.
<VirtualHost *:80> ServerName domain.com ServerAlias www.domain.com Protocols h2 http/1.1 DocumentRoot /var/www/html/domain/public <Directory /var/www/html/domain/public> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Tapez CTRL + X
suivi de Y
et Enter
pour enregistrer et quitter le fichier.
Vous pouvez maintenant activer la nouvelle configuration Apache.
sudo a2ensite domain.conf
Redémarrez Apache.
sudo service apache2 restart
Étape 7 :Vérifier PHP-FPM avec Apache
Ici, nous avons configuré /var/www/html/domain/public
en tant que racine Web dans la configuration Apache. Alors maintenant, vous pouvez naviguer dans ce répertoire et créer un phpinfo
fichier pour vérifier la configuration.
cd /var/www/html/domain/public
sudo nano info.php
Collez ce qui suit.
<?php phpinfo();
Tapez CTRL + X
suivi de Y
et Enter
pour enregistrer et quitter le fichier.
Allez maintenant dans votre navigateur et faites-le pointer vers l'adresse IP ou le nom de domaine de votre serveur suivi du info.php
. Votre adresse ressemblera donc à ceci http://domain.com/info.php
Vous verrez la page d'informations PHP et confirmerez que PHP-FPM est utilisé avec Apache.
Préparez-vous à un poste de professionnel des technologies de l'information avec le système d'exploitation Linux
Conclusion
Vous avez maintenant appris à installer PHP 8.1-FPM avec Apache et à configurer Apache. Vous avez également appris à configurer des pools PHP-FPM pour plusieurs utilisateurs.