Bibliothèque Numérique ENI :
tous nos livres & vidéos, en accès illimité 24h/24. Cliquez ici
Bibliothèque Numérique ENI :
tous nos livres & vidéos, en accès illimité 24h/24. Cliquez ici
  1. Livres & vidéos
  2. LAMP
  3. Débuter avec PHP
Extrait - LAMP Installez et configurez votre serveur web (Linux, Apache, MySQL et PHP)
Extraits du livre
LAMP Installez et configurez votre serveur web (Linux, Apache, MySQL et PHP) Revenir à la page d'achat du livre

Débuter avec PHP

Les moyens d’installation et d’intégration de PHP

1. Les prérequis

L’installation de PHP sous Linux ne nécessite aucun prérequis matériel particulier. Prévoyez simplement de disposer d’assez d’espace de stockage selon le type d’installation que vous choisirez.

Quel que soit le moyen d’installation que vous allez choisir, PHP ne devrait pas occuper plus de 30 Mo après son installation. Si vous choisissez l’installation par les fichiers sources, vous devrez également prévoir un espace temporaire pour la compilation. Prévoyez au moins 1 Go pour être confortable.

2. Les différentes méthodes d’installation

Dans cette section, nous allons vous présenter les méthodes d’installation pour PHP. Comme support pour illustrer ces méthodes d’installation, nous avons choisi l’installation de PHP CLI. Il s’agit de l’un des quatre modules SAPI (Server API) qui permettent d’utiliser PHP.

a. Installation par le gestionnaire de paquets

PHP est distribué à travers les dépôts de paquets de plusieurs distributions Linux. C’est le moyen d’installation qui sera choisi dans la majorité des cas, puisqu’il permet de bénéficier d’une installation fonctionnelle à travers une configuration standard.

Afin de vous donner un aperçu...

Les moyens d’intégration de PHP avec Apache

1. Les différents modules SAPI pour PHP

Dans la section précédente (cf. section Les moyens d’installation et d’intégration de PHP), nous vous avons présenté l’installation de PHP à travers le paquet php-cli. Ce paquet fournit l’interface en ligne de commande pour PHP (PHP CLI) qui est disponible depuis le shell, à travers la commande php. C’est l’un des quatre modules SAPI qui sont proposés pour PHP.

Le schéma ci-dessous permet d’illustrer les différents modules SAPI et leurs interactions. 

images/13RI02_1.png

Figure 1 : Les différents modules SAPI pour PHP

PHP CLI est une interface qui permet de communiquer avec le moteur PHP à travers la ligne de commande depuis la console. Bien qu’il soit possible de l’intégrer à Apache via les CGI, il s’agit d’une méthode historique qui n’est pas recommandée.

Les méthodes recommandées pour l’intégration de PHP avec Apache sont l’utilisation de PHP CGI et PHP FPM à travers le protocole FastCGI ou l’intégration en tant que module PHP pour Apache avec le module mod_PHP.

Afin d’illustrer la mise en place de PHP au sein d’une pile LAMP, notre choix s’est porté sur l’installation de PHP en tant que module pour son intégration...

Activité 1 : Installer et intégrer PHP avec Apache

1. Introduction

Dans cette activité, nous allons vous présenter un guide pas à pas pour l’installation de PHP et son intégration avec le module d’Apache.

Pour reproduire cette activité, vous devez disposer d’une installation d’Apache fonctionnelle. Vous devez également disposer d’un accès à Internet qui vous permettra d’installer les paquets depuis les dépôts officiels de Debian. Enfin, vous devrez également ouvrir une nouvelle session en tant que root pour exécuter les commandes qui suivent, ou vous pourrez utiliser un compte d’utilisateur qui dispose des droits d’administration suffisants avec la commande sudo.

2. Installer PHP

a. Mettre à jour la liste des paquets

Dans un premier temps, nous allons mettre à jour la liste de paquets disponibles dans les dépôts de paquets sous Debian.

Pour cela, vous pouvez suivre les instructions suivantes.

 Depuis le terminal de commande, exécutez la ligne de commande suivante en tant que root ou avec la commande sudo.

apt update 

Cette commande permet de vous assurer que vous allez installer les paquets les plus récents disponibles dans les dépôts de paquets sous Debian.

b. Installer le paquet PHP

Une fois la liste des paquets à jour, nous allons pouvoir installer les paquets qui fournissent les modules cURL et MySQL, ainsi que les dépendances nécessaires.

Pour cela...

Configuration de PHP

1. Arborescence

La configuration de PHP s’effectue à travers des fichiers textes que l’on retrouve dans le répertoire /etc/php/X.X (où X.X correspond à la version de PHP), à la suite de l’installation via le gestionnaire de paquets sous Debian.

Ci-dessous, voici l’arborescence de fichiers que l’on retrouve dans le répertoire /etc/php/8.2 :

/etc/php/8.2  
├── apache2  
│   ├── conf.d  
│   │   └── *.ini  
├── cli  
│   ├── conf.d  
│   │   └── *.ini  
│   └── php.ini  
└── mods-available  
    └── *.ini 

Dans cette arborescence de fichier, on retrouve les répertoires principaux :

  • apache2, qui contient les fichiers de configuration pour le module PHP d’Apache.

  • cli, qui contient les fichiers de configuration pour le PHP CLI.

  • mods-available, qui contient les fichiers de configuration qui permettent de charger les modules dynamiques dans PHP.

Dans le cas d’une installation des programmes tels que php-cgi ou php-fpm, vous retrouverez également les répertoires respectifs contenant les fichiers...

Les directives de PHP

1. Les caractéristiques d’une directive

Une directive de PHP est un élément de configuration que l’on peut retrouver dans les différents fichiers de configuration de PHP.

On distingue différents types de directives, notamment les directives internes qui sont incluses dans le noyau de PHP et les directives de bases qui sont fournies avec les fonctions et les classes internes. On distingue également les directives externes qui seront disponibles lors de l’ajout de différents modules tiers.

Généralement, les directives seront définies dans un fichier php.ini ou dans les fichiers de la configuration globale d’Apache. Toutefois, dans certains cas, les directives pourront être définies au sein d’un fichier .htaccess ou du fichier .user.ini qui peut être placé dans le répertoire personnel de l’utilisateur.

Définir une directive dans un script PHP

Afin de définir des directives, il sera possible dans certains cas d’utiliser la fonction ini_set() directement dans le code d’un script PHP.

Par exemple, pour définir la directive display_error avec la valeur 1 (ou On) au sein d’un script PHP, vous pouvez utiliser la ligne suivante :

ini_set('display_errors', '1'); 

Cette utilisation permettra d’écraser la valeur globale d’une directive, afin d’appliquer une valeur distincte pour un besoin spécifique par exemple.

Définir une directive dans une configuration d’Apache

Il est également possible de définir ou de modifier certaines directives depuis la configuration d’Apache. Pour cela, vous pouvez utiliser des directives spécifiques telles que php_flag et php_value au sein de n’importe quel fichier de configuration d’Apache, selon le contexte d’application souhaité.

Pour utiliser ces directives, elles doivent être suivies du nom de la directive PHP et de sa valeur, séparée par un espace.

Par exemple, pour définir la directive file_uploads avec la valeur 1 (ou On), vous pouvez utiliser la ligne suivante :

php_flag file_uploads 1 

La directive php_flag permet de définir une valeur booléenne, quand la directive php_value permet de définir tous les autres types de valeur acceptés par une directive.

Par exemple...

Activité 2 : Modifier la configuration de PHP

1. Introduction

Dans cette activité, nous allons vous présenter un guide pas à pas pour modifier la configuration du fichier php.ini du module PHP pour Apache afin de pouvoir afficher les erreurs de nos scripts.

Pour reproduire cette activité, vous devez disposer d’une installation d’Apache fonctionnelle avec une intégration du module PHP (cf. section Activité 3 : Installer des modules complémentaires pour PHP). Enfin, vous devrez également ouvrir une nouvelle session en tant que root pour exécuter les commandes qui suivent, ou vous pourrez utiliser un compte d’utilisateur qui dispose des droits d’administration suffisants avec la commande sudo.

2. Configuration courante

a. Cas d’une erreur de syntaxe

Afin d’illustrer notre activité, nous allons prendre un cas d’erreur de syntaxe simple.

Nous allons créer un fichier hello.php dans le répertoire racine des fichiers de l’hôte par défaut sous Apache, dans lequel nous allons introduire une erreur de syntaxe volontaire.

Pour cela, vous pouvez suivre les étapes ci-dessous.

 Créez le fichier hello.php avec la commande nano, par exemple :

nano /var/www/html/hello.php 

 Puis ajoutez le contenu suivant dans ce fichier :

<?php  
echo Hello, World!;  
?> 

 Quittez et enregistrez le fichier (sous nano, [Ctrl] + [X]).

Depuis votre navigateur web, vous allez pouvoir consulter la page hello.php qui est hébergée sur le serveur Apache.

Pour cela, vous pouvez suivre les instructions suivantes.

 Accédez à la page depuis le navigateur en exécutant une requête sur l’adresse http://srv-lamp.eni.lan/hello.php.

Par exemple, vous obtenez le résultat suivant depuis un navigateur.

images/13RI06_1.png

Figure 4 : Capture d’écran d’une erreur 500 liée à une erreur dans un script PHP

Le navigateur affiche un message d’erreur à la suite de l’erreur retournée par le serveur web lors de l’interprétation...

Les modules PHP

1. Lister les modules

Il existe de nombreux modules qui permettent d’étendre les fonctionnalités de PHP ou encore d’améliorer ses performances. Les modules par défaut, ainsi que des modules complémentaires qui pourraient être utiles dans votre installation, vous seront présentés dans la section suivante (cf. section Installation des modules).

Lorsque vous souhaitez lister les modules disponibles dans votre installation de PHP, vous pouvez exécuter la ligne de commande suivante.

php -m 

Par exemple, en sortie de la commande, vous obtenez le résultat suivant :

[PHP Modules]  
calendar  
Core  
ctype  
date  
exif  
FFI  
fileinfo  
filter  
ftp  
gettext  
hash  
iconv  
json  
libxml  
openssl  
pcntl  
pcre  
PDO  
Phar  
posix  
random  
readline  
Reflection  
session  
shmop  
sockets  
sodium  
SPL  
standard  
sysvmsg  
sysvsem  
sysvshm  
tokenizer  
Zend OPcache  
zlib  
 
[Zend Modules] 
Zend OPcache 

Dans cette liste, on retrouve des modules internes, ainsi que des modules disponibles par défaut lors d’une installation à partir du gestionnaire de paquets de Debian.

Dans la section suivante, nous vous présenterons les solutions disponibles pour l’installation des modules supplémentaires sous PHP.

2. Installation des modules

a. Installation par le gestionnaire de paquets

La méthode la plus courante pour installer des modules supplémentaires est l’installation par le gestionnaire de paquets. Ce type d’installation permet d’ajouter ou de supprimer des modules à la volée puisqu’il s’agit de bibliothèques dynamiques qui peuvent être activées simplement par une définition dans un fichier de configuration.

Sous Debian, plusieurs modules sont disponibles à travers le gestionnaire de paquets. Ces paquets peuvent être obtenus à l’aide de la commande apt.

Généralement, le nom des paquets qui permettent d’installer des fonctionnalités supplémentaires pour PHP commence par « php- ».

L’option search de la commande apt peut être utilisée afin de rechercher...

Activité 3 : Installer des modules complémentaires pour PHP

1. Introduction

Dans cette activité, nous allons installer le module MySQL et le module cURL pour PHP, puis nous validerons l’intégration du module MySQL en réalisant un test de connexion à la base de données installée dans les chapitres précédents.

Pour reproduire cette activité, vous devez disposer d’une installation fonctionnelle d’Apache avec le module PHP, ainsi que d’une installation de MySQL fonctionnelle. Vous devez également disposer d’un accès à Internet qui vous permettra d’installer les paquets depuis les dépôts officiels de Debian. Enfin, vous devrez également ouvrir une nouvelle session en tant que root pour exécuter les commandes qui suivent, ou vous pourrez utiliser un compte d’utilisateur qui dispose des droits d’administration suffisants avec la commande sudo.

2. Installer des modules

a. Mettre à jour la liste des paquets

Dans un premier temps, nous allons mettre à jour la liste de paquets disponibles dans les dépôts de paquets sous Debian.

Pour cela, vous pouvez suivre les instructions suivantes.

 Depuis le terminal de commande, exécutez la ligne de commande suivante en tant que root ou avec la commande sudo.

apt update 

Cette commande permet de vous assurer que vous allez installer...