initial commit

This commit is contained in:
2020-10-05 21:30:13 +02:00
commit fdb0db7a2c
5 changed files with 147 additions and 0 deletions

9
Readme.md Normal file
View File

@@ -0,0 +1,9 @@
##### PHP-FPM
Public: b1
Durée: 2h
Validation: attention à la présence du module / paquet php (le fichier /etc/httpd/conf.d/php.conf ne doit pas exister - ou doit avoir été modifié)
Todo: rajouter quelques pointeurs vers des docs complètes

64
correction.md Normal file
View File

@@ -0,0 +1,64 @@
Prérequis: Apache, gestion des services et des packages, principe de configuration
Information et liens utiles:
* https://blog.remirepo.net/pages/Config
### Théorie
Quelles sont les différences entre php en tant que module apache (paquet php) et php-fpm ?
module: l'interpréteur est intégré à apache. Pas possible de faire tourner plusieurs versions de php, pb de perf, pb de stabilité. À l'inverse, php-fpm permet d'embarquer un interpréteur dans un service autonome. On peut donc en avoir plusieurs, avec des paramètres de performance différent, des versions différentes. On peut même les faire tourner avec des comptes utilisateurs distincts (1 client -> 1 compte utilisateur -> 1 arborescence utilisateur -> 1 php-fpm dédié)
Quelle est la version de php disponible par défaut sur RedHat / CentOS ?
5.4 - complètement obsolète
Quelle est la dernière version disponible de php ?
7.4 à ce jour (2020-04-27)
### Pratique
Installez php-fpm en version 7.3
la version 7.3 n'étant pas disponible par défaut, il faut utiliser un dépôt externe. Pour ce faire, suivre les instructions ici:
* yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
* yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
* yum install yum-utils
* yum install php73-php-fpm
Assurez-vous que le service soit activé et démarré
systemctl enable php73-php-fpm
systemctl start php73-php-fpm
Configurez apache pour que toutes les ressources .php soient traitées par php-fpm
<code>
vim /etc/httpd/conf.d/php.conf
<FilesMatch \.php$>
SetHandler proxy:fcgi://localhost:9000
</FilesMatch>
</code>
### Validation
Créer la page /var/www/html/version.php avec le contenu suivant:
<?php
echo 'Current PHP version: ' . phpversion() ."\n" . php_sapi_name() ."\n" ;
Appeler la page:
curl http://localhost/version.php
Résultat attendu: affichage sur la console de :
Current PHP version: 7.3.XX
fpm-fcgi
### À rendre
Réalisation technique et fichier /srv/php-fpm.txt contenant la réponse aux questions théoriques

11
eval Normal file
View File

@@ -0,0 +1,11 @@
#le module php n'est pas installé ou pas utilisé
#présence du fichier de dépot
#le service php-fpm tourne
# la page version.php existe
# la page version.php renvoie la bonne valeur

18
eval.sh Normal file
View File

@@ -0,0 +1,18 @@
#! /bin/bash
function e {
echo -ne "${1}\t"
}
echo -ne "$(hostname -s)\t$(cat /etc/motd )\t"
if ( rpm -qa | grep -qE '^php-[57]' ) ; then e 0 ; else e 1 ; fi
if [ -f /etc/yum.repos.d/remi.repo ] ; then e 1 ; else e 0 ; fi
if ( systemctl status php-fpm &>/dev/null || systemctl status php73-php-fpm &> /dev/null ) ; then e 1 ; else e 0 ; fi
if [ -f /var/www/html/version.php ] ; then e 1 ; else e 0 ; fi
if ( curl localhost/version.php 2>/dev/null |grep -q 7.3 ) ; then e 1 ; else e 0 ; fi
echo

45
tp_php-fpm.md Normal file
View File

@@ -0,0 +1,45 @@
Prérequis: Apache, gestion des services et des packages, principe de configuration
Information et liens utiles:
* https://blog.remirepo.net/pages/Config
### Théorie
Quelles sont les différences entre php en tant que module apache (paquet php) et php-fpm ?
Quelles sont les avantages et inconvénients de ces solutions ?
Quelle est la version de php disponible par défaut sur RedHat / CentOS ?
Quelle est la dernière version disponible de php ?
### Pratique
Installez php-fpm en version 7.3
Assurez-vous que le service soit activé et démarré
Configurez apache pour que toutes les ressources .php soient traitées par php-fpm
### Validation
Créer la page version.php dans le DocumentRoot de votre serveur, avec le contenu suivant:
<?php
echo 'Current PHP version: ' . phpversion() ."\n" . php_sapi_name() ."\n" ;
Appeler la page:
curl http://localhost/version.php
Résultat attendu: affichage sur la console de :
Current PHP version: 7.3.XX
fpm-fcgi
### À rendre
Réalisation technique