PHP-FPM

actualites infos
PHP-FPM
Création le : 1 novembre 2020

Bonjour,

Suite à mes études en développement web et administration réseau, je partage mon installation cgi php-fpm sur ubuntu 18.04.

Pour mon serveur web en local, j’utilise principalement PHP FastCGI.

Je commence l’installation avec un script FastCGI via l’installation du paquet (fpm pour FastCGI Process Manager).

php-fpm

Les modules de PHP, permettent d’étendre ses fonctionnalités.

De très nombreux modules PHP sont disponibles sur les dépôts officiels d’Ubuntu comme :

$ sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip

Une fois les conditions préalables remplies, j’installe les versions 5.6 et 7.4, ainsi que PHP-FPM et plusieurs extensions supplémentaires.

Mais pour ce faire, nous devons d’abord ajouter le référentiel Ondrej PHP au système :

$ sudo apt-get install software-properties-common -y

On ajoute maintenant le référentiel ondrej à noter système :

$ sudo add-apt-repository ppa:ondrej/php

N’oubliez pas de mettre le référentiel à jour :

$ sudo apt-get update -y

Nous allons installer maintenant php5.6 à php7.4, le minimum requis pour une installation basique est :

$ sudo apt-get install php5.6-fpm php7.0-fpm php7.1-fpm php7.2-fpm php7.3-fpm php7.4-fpm

Pour l’installation complète des modules de chaque version :

PHP 5.6 :

apt-get install apache2 libapache2-mod-php5.6 php5.6 php5.6-bcmath php5.6-bz2 php5.6-cli php5.6-common php5.6-curl php5.6-gd php5.6-intl php5.6-json php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-opcache php5.6-soap php5.6-readline php5.6-xml php5.6-zip

PHP 7.0 :

apt-get install apache2 libapache2-mod-php7.0 php7.0 php7.0-bcmath php7.0-bz2 php7.0-cli php7.0-common php7.0-curl php7.0-gd php7.0-intl php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-soap php7.0-readline php7.0-xml php7.0-zip

PHP 7.1 :

apt-get install apache2 libapache2-mod-php7.1 php7.1 php7.1-bcmath php7.1-bz2 php7.1-cli php7.1-common php7.1-curl php7.1-gd php7.1-intl php7.1-json php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-opcache php7.1-soap php7.1-readline php7.1-xml php7.1-zip

PHP 7.2 :

apt-get install apache2 libapache2-mod-php7.2 php7.2 php7.2-bcmath php7.2-bz2 php7.2-cli php7.2-common php7.2-curl php7.2-gd php7.2-intl php7.2-json php7.2-mbstring php7.2-mysql php7.2-opcache php7.2-soap php7.2-readline php7.2-xml php7.2-zip

PHP 7.3 :

apt-get install apache2 libapache2-mod-php7.3 php7.3 php7.3-bcmath php7.3-bz2 php7.3-cli php7.3-common php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-mbstring php7.3-mysql php7.3-opcache php7.3-soap php7.3-readline php7.3-xml php7.3-zip

PHP 7.4 :

apt-get install apache2 libapache2-mod-php7.4 php7.4 php7.4-bcmath php7.4-bz2 php7.4-cli php7.4-common php7.4-curl php7.4-gd php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-

Après avoir installé toutes les versions PHP, lancez le service pour chaque php-fpm :

$ sudo systemctl start php5.6-fpm

$ sudo systemctl start php7.0-fpm

$ sudo systemctl start php7.1-fpm

$ sudo systemctl start php7.2-fpm

$ sudo systemctl start php7.3-fpm

$ sudo systemctl start php7.4-fpm

Redémarrons maintenant le service Apache pour appliquer les modifications :

$ sudo systemctl restart apache2

Il ne manque plus qu’a rajouter dans votre fichier dans etc/hosts les éléments suivants :

127.0.1.1 php56.mario.dev.fr

127.0.1.1 php70.mario.dev.fr

127.0.1.1 php71.mario.dev.fr

127.0.1.1 php72.mario.dev.fr

127.0.1.1 php73.mario.dev.fr

127.0.1.1 php74.mario.dev.fr

Étape importante dans le fichier etc/apache2/apache2.conf rajouter le chemin du dossier de vos projets web.

<Directory /hdd/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
<Directory/>

Dans le dossier /etc/apache2/sites-enabled/ assurez-vous que le chemin du répertoire de votre projet web possède les bons droits.

Le nom du serveur et la version PHP correspondent à votre configuration avec en exemple php56.mario.dev.conf :

ServerName php56.mario.dev.fr
DocumentRoot /hdd/web/php56.mario.dev.fr/www
<FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost" </FilesMatch>

ServerName php56.mario.dev.fr
DocumentRoot /hdd/web/php56.mario.dev.fr/www
<FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost" </FilesMatch>

Liens utiles pour plus d’informations :

digitalocean

Doc Ubuntu

Merci pour votre lecture et à bientôt.

Mario Passeri

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.