Déploiement d'un
module PHP sur un
serveur web
Attribution - Partage dans les Mêmes Conditions :
http://creativecommons.org/licenses/by-sa/3.0/fr/
Table des matières
Objectifs 3
Introduction 4
I - Problématique du php 5
1. Présentation du PHP ........................................................................................ 5
2. Test du PHP ...................................................................................................... 6
II - Installation du module php 7
III - Exercice 9
IV - Exercice : Site en PHP 10
Solutions des exercices 11
Glossaire 13
Crédits des ressources 14
2 par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare
Objectifs
Dans ce module nous verrons comment travailler avec des fichiers php dans le cadre de l'utilisation
d'un serveur web.
par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare 3
Introduction
Dans ce module nous verrons comment installer et utiliser php-fpm qui est une interface
permettant à un serveur web de renvoyer le résultat d'un code php.
4 par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare
I Problématique du php
Introduction
Pour cet partie il vous faut vous munir d'un serveur web déjà fonctionnel. Un seul site suffira.
1. Présentation du PHP
Naissance du PHP
Le langage PHP fut créé en 1994 par Rasmus Lerdorf pour son site web. C'était à l'origine une
bibliothèque logicielle en C7 dont il se servait pour conserver une trace des visiteurs qui venaient
consulter son CV. Au fur et à mesure qu'il ajoutait de nouvelles fonctionnalités, Rasmus a
transformé la bibliothèque en une implémentation capable de communiquer avec des bases de
données et de créer des applications dynamiques et simples pour le Web (Source Wikipédia1).
Pourquoi faire du PHP
Ce langage de programmation libre descendant du C est exécuté du côté serveur pour pouvoir
finalement générer autant du code (HTML ou CSS par exemple) ou des données (PNG, GIF,...) qui
seront envoyées au navigateur du client capable des les interpréter. Une autre force du PHP est
qu'il est très utile pour envoyer des données à une base de données. Il est multi-plateforme : autant
sur Linux qu'avec Windows il permet aisément de reconduire le même code sur un environnement
à peu près semblable (prendre en compte les règles d'arborescences de répertoires qui peuvent
changer). Sa puissance en fait un élément central de sites très connus tels que Facebook ou
Wikipédia. Avec le temps, le PHP est devenu la référence pour créer des sites dynamiques p.13 ou
des applications web.
Présentation de la syntaxe PHP
Lorsque PHP traite un fichier, il cherche les balises d'ouverture et de fermeture (<?php et ?>) qui
délimitent le code qu'il doit interpréter. Notons que comme en C (le PHP étant un descendant du
C), le "//" permet de faire que la ligne qui le suit soit seulement un commentaire.
1 <?php
2 echo "Bonjour le monde !";
3
4 // ... encore du code
5
6 echo "Dernière instruction";
7
8 // le script se termine ici, sans la balise de fermeture PHP
9
10 ?>
De cette manière, cela permet à PHP d'être intégré dans toutes sortes de documents, car tout ce
qui se trouve en dehors des balises ouvrantes / fermantes de PHP est ignoré. Par exemple ci-
dessous on intègre du HTML qui ne sera pas interprété par le serveur et qui sera directement
transmis au client
1. https://fr.wikipedia.org/wiki/PHP#Histoire
par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare 5
Problématique du php
1 <h1>Mon Site Web</h1>
2
3 <?php
4
5 //Du code
6
7 ?>
Complément
Documentation PHP2
Wikipédia3
2. Test du PHP
Création d'un fichier php
Dans la racine de votre site, créer un fichier simple contenant du php.
1 sudo nano /home/www/monsite.fr/home.php
1 <?php
2
3 echo "<h1>Hello World !<h1>";
4
5 ?>
Test du fichier
Rendez vous sur votre site et ajouter à l'url le nom du fichier que vous venez de créer. Dans mon
cas cela donne monsite1.fr/home.php
Téléchargement fichier php
On voit que le site nous propose de télécharger le fichier au lieu de nous afficher le "Hello World !".
Nous allons voir dans ce module comment faire pour afficher les fichiers PHP sur notre site.
2. http://php.net/manual/fr/language.constants.syntax.php
3. https://fr.wikipedia.org/wiki/PHP
6 par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare
II Installation du module php
Installation
Nous allons devoir installer un paquet permettant à Nginx de traiter les fichiers PHP. Pour cela il
suffit d'entrer la commande :
1 sudo apt-get install php-fpm
Configuration
Le fichier de configuration de php-fpm se trouve à l'adresse /etc/php/8.1/fpm/php.ini . Le
fichier est très complet et bien expliqué (en anglais), la configuration de base est très bien pour
l'utilisation que nous allons en faire, il est cependant recommandé d'aller remplacer
display_errors = off par display_errors = on , ce qui peut être très utile en cas
d'erreurs lorsque l'on est en phase de développement. Cette variable est à laisser off dans un
environnement de production, car on veut en général cacher au maximum les éventuelles erreurs
PHP pour des raison d'ergonomie, de présentation mais également de sécurité.
Pour notre cas, nous allons activer l'affichage des erreurs pour nous aider à débugger notre
application le temps du développement
1 sed -i "s|^display_errors = Off|display_errors = On|g" /etc/php/8.1/fpm/php.ini
2 sed -i "s|^display_startup_errors = Off|display_startup_errors = On|g"
/etc/php/8.1/fpm/php.ini
3 systemctl restart php8.1-fpm.service
4
Nous allons aussi devoir effectuer des modifications dans nos configuration nginx pour lui dire
quoi faire avec nos fichier php.
Voici une configuration minimale pour nginx utilisant du php :
1 server{
2 listen 80;
3
4 server_name monsite.fr;
5 root /home/www/monsite;
6 index index.php index.html;
7
8 location / {
9 try_files $uri $uri/ =404; #on indique au
serveur qu'on essaye d'abord de charger le fichier demandé dans l'url (avec $uri) ou
sinon le dossier ($uri/) ou de renvoyer une erreur 404 si il ne trouve pas le fichier
10 }
11
12 location ~ \.php$ { #on explique à
nginx ce qu'il doit faire si on lui demande un fichier terminant par .php
13 include snippets/fastcgi-php.conf; #on inclut une
configuration nginx situé dans /etc/nginx/snippets/
14 fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; #on indique à nginx
quel processus s'occupe du php, on peut trouver la liste des processus dans /var/run
15 }
16
17
18 error_log /home/logs/monsite.error.log;
19 access_log /home/logs/monsite.log;
20
21 }
22
par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare 7
Installation du module php
On peut ensuite à la racine de notre site créer un fichier phpinfo.php contenant le code ci-
dessous :
1 <?php phpinfo(); ?>
Enfin on peut se rendre sur notre site et ajouter /phpinfo.php à l'url et observer que notre site
reconnaît désormais les fichiers php.
La page affichée est une page récapitulative de la configuration de php sur notre serveur.
8 par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare
[solution n°1 p. 11]
Exercice
Quel est l'intérêt d'utiliser php sur un serveur web ?
A Avoir des sites dynamiques
B Supporter de nombreuses bases de données
C PHP est compatible avec de nombreux systèmes d'exploitation
D Collecter des données de formulaire
par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare 9
IV Exercice : Site en PHP
[solution n°2 p. 11]
Question 1
Quel est l'interêt d'un fichier html par rapport à du simple texte ?
Testez la configuration de php-fpm en créant un fichier index.php contenant le code suivant :
1 <?php
2
3 $prenom = Anthony;
4
5 echo "<h1>Bonjour".$prenom." !</h1>";
6
7 ?>
[solution n°3 p. 11]
Question 2
Quelle est la différence entre le code donné précédemment et celui ci :
1 <?php
2
3 echo "<h1>Bonjour Anthony !</h1>";
4
5 ?>
[solution n°4 p. 12]
Question 3
Comment récupérer une variable dans une URL ?
Indice :
Manuel php : http://php.net/manual/fr/reserved.variables.get.php
[solution n°5 p. 12]
Question 4
Donner l'URL ainsi que le code php d'une page qui affiche le nom et le prénom du client.
10 par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare
Solutions des exercices
Solution n°1 [exercice p. 9]
Quel est l'intérêt d'utiliser php sur un serveur web ?
A Avoir des sites dynamiques
B Supporter de nombreuses bases de données
C PHP est compatible avec de nombreux systèmes d'exploitation
D Collecter des données de formulaire
PHP peut réaliser toutes ces choses et bien plus encore. De façon générale on l'utilise
afin d'avoir un site dynamique et pouvoir gérer des bases de données.
Pour plus d'informations vous pouvez consulter la documentation officielle4.
Solution n°2 [exercice p. 10]
Le language HTML permet de structurer notre texte, avoir des titres et des paragraphes. C'est un
langage qui est interprété par le navigateur.
Solution n°3 [exercice p. 10]
Dans le premier code nous avons une notion de variable, c'est à dire que nous affectons un
prénom à la variable $prenom et on peut ensuite l'utiliser à plusieurs endroits différents. Cela
nous permet de changer le nom à un seul endroit lorsque nous souhaitons effectuer des
modifications.
4. http://php.net/manual/fr/intro-whatcando.php
par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare 11
Solutions des exercices
Solution n°4 [exercice p. 10]
$_GET
Tout d'abord pour faire passer des variables par l'url il faut l'écrire sous la forme :
monsite.fr/bonjour.php?variable1=valeur1&variable2=valeur2
Ensuite côté code php il faut utiliser $_GET comme ci-dessous :
1 <?php
2 $a = $_GET['variable1'];
3 $b = $_GET['variable2'];
4 echo $a;
5 echo $b;
6 ?>
Solution n°5 [exercice p. 10]
monsite.fr/bonjour.php?nom=Bocquet&prenom=Anthony
1 <?php
2
3 $nom = $_GET['nom'];
4 $prenom = $_GET['prenom'];
5
6 echo "<h1> Bonjour ".$prenom." ".$nom." !</h1>";
7
8 ?>
12 par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare
Glossaire
Page web dynamique
Une page web dynamique est une page web générée à la demande, par opposition à une
page web statique. Le contenu d'une page web dynamique peut donc varier en fonction
d'informations (heure, nom de l'utilisateur, formulaire rempli par l'utilisateur, etc.) qui ne sont
connues qu'au moment de sa consultation. À l'inverse, le contenu d'une page web statique
est a priori identique à chaque consultation.
Source : Wikipédia5
5. https://fr.wikipedia.org/wiki/Page_web_dynamique
par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare 13
Crédits des ressources
Téléchargement fichier php p. 6
Attribution - Partage dans les Mêmes Conditions - Anthony Bocquet
14 par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare
Crédits des ressources
par Picasoft, auteurs et contributeurs : Anthony Bocquet , Lola Lejeune, Antoine Barbare 15