PhP: ‘Le’ langage Web

PhP est le langage le plus populaires dans le développement d’applica-tions pour le web. Ce n’est par un langage compilé, mais un interpréteur. Dans sa version FPM, (FastCgi Process Manager), il tourne en parallèle avec le service Web dont il n’est plus un module.

 

Ce langage peut être utilisé de manière ‘procédurale’ ou ‘objet’ (depuis la génération ‘5’.

Il est relié au service web par une ‘socket unix’, sur un port d’écoute particulier. C’est donc une des manière les plus modernes et performantes d’utiliser ce moteur de script.

Cette solution apporte en plus un ‘système de cache’ permettant de renvoyer un même résultat si la demande est la même, et offre un meilleur niveau de sécurité notamment dû à l’utilisation d’un utilisateur spécifique aux droits limités.

Ainsi, PHP-FPM est un interpréteur de langage, particulièrement adapté pour les sites aux très fortes charges, et se trouve être un compagnon idéal pour Nginx et son aspect multiplexage de requêtes, et mysql/Mariadb. Ces trois logiciels sont donc parfaitement cohérents, robustes et rapides pour une architecture web exigeante.

2. INSTALLATION DES PAQUETS REQUIS POUR PHP 7.0 AVEC MYSQL

su

# Mise à niveau du système

apt-get update
apt-get upgrade

 

# Installation de PhP-FPM
apt-get install php-fpm php-cli php-mysql php-sqlite3 php-pgsql

3. INSTALLATION DE MODULES PHP COMPLÉMENTAIRES

apt-get install php-intl php-json php-mbstring php-xml php-zip php-bz2 php-imap php-soap php-ldap php-gmp php-curl
apt-get install php-gd php-imagick

4. VÉRIFICATIONS PRÉALABLES

ls /etc/php

 

vérifier que le fichier-socket /var/run/php/php7.3-fpm.sock :

existe,…

qu’il est bien associé au groupe ‘www-data‘, ….

qu’il est bien mentionné dans le fichier configuration: (ligne ‘listen’) dans :/etc/php/7.3/fpm/pool.d/www.conf

5. MODIFIER LE FICHIER PARAMÈTRES DE PHP-FPM

nano /etc/php/7.3/fpm/php.ini

 

Vérifier la présence et/ou adapter les paramètres tels que ci-dessous (sans toucher aux autres)

 

cgi.fix_pathinfo = 0


max_execution_time = 180


# messages d’erreur
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT

display_errors = On
; Development Value: On – Production Value: Off

display_startup_errors = On
; Development Value: On – Production Value: Off

log_errors = On
; Development Value: On – Production Value: On

track_errors = On
; Development Value: On – Production Value: Off

# Téléchargement maxi user
upload_max_filesize = 20M


# Paramètres de cache
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=5000
opcache.revalidate_freq=1
opcache.save_comments=1

Selon que le site sera en développement ou en production, il conviendra d’adapter ce fichier paramètre en conséquence.

6. VÉRIFIER LA CONNECTION DE LA ‘SOCKET’ FPM

nano /etc/php/7.3/fpm/pool.d/www.conf

 

rechercher la ligne : listen = 127.0.0.1:9000

remplacer la par: (si ce n’est déjà le cas, car en principe, déjà fait !) : listen = /var/run/php/php7.3-fpm.sock

7. RECONNAISSANCE DES SCRIPTS PHP PAR NGINX

nano /etc/nginx/sites-available/domainepme.tld

 

Ajouter un bloc ‘location’ (emplacement), au dessous du marqueur ‘SED

 

#

# Interprétation des scripts php par Nginx
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_buffers 16 4k;
}

8. RELANCER LES SERVICES POUR PRISE EN COMPTE

# relancer le serveur web NginX
systemctl nginx reload

# relancer le module autonome php
systemctl php7.3-fpm start

9. SUPPRIMER LA PAGE INDEX.HTML Et LA RECRÉER COMME INDEX.PHP

Pour le service web, la page index.html, étant en général prioritaire sur index.php, il convient donc de la supprimer, tout en la recréant sous la forme : index.php. Pour tester la présence effective de Php, ajouter à cette page html : <?php php_info’() ?> (à oter après vérifications).

cd /var/www/domainepme.tld

mv index.html index.php

Laisser un commentaire

Plugin Kapsule Corp