PhpConcept
 
 

Les Articles de PhpConcept

 
   
 

Installer un environnement de Développement pour PHP

Janvier 2006
Vincent Blavet
vincent@phpconcept.net

Introduction

Cet article décrit l'installation de PHP pour un environnement de développement. L'objectif est de pouvoir tester ses développements PHP (scripts, applications, ...) ou ses sites Web en PHP avant de les rendre disponibles ou de les publier.

Les paragraphes suivants vont décrire la mise en place d'un environnement PHP simple avec un serveur Apache (voir l'installation du serveur Apache dans "Installer un serveur Web Apache de Développement sur Windows"). Un article spécifique décrira la mise en place d'un environnement de développement multiple.

Il existe deux méthodes pour installer PHP sur Windows, la première qui peut paraître la plus simple, utilise un "Installer Windows" qui fait "tout pour vous". C'est justement la méthode que l'on n'utilisera pas. En effet lorsque l'on commence à faire un peu de développement (ou même simplement de tester un site Web) il est utile de savoir comment ça marche. L'installation manuelle a l'avantage de ne pas placer plein de fichiers dans tous les coins sans nous le dire. Bref on garde le contrôle. Cela nous permettra aussi plus tard de configurer un environnement de développement supportant plusieurs projets que l'on veut pouvoir tester indépendemment (plusieurs sites Web, plusieurs scripts PHP, ...)

A noter que l'on va ici installer une version PHP 4.4.1 et non une version PHP 5.x. A ce jour les versions PHP 4 sont encore les plus courantes chez les hébergeurs et c'est donc généralement avec celles-ci que l'on souhaite tester son code. L'installation manuelle du PHP 5.x reste cependant similaire.

Installation

Dans un premier temps on récupère l'archive contenant le code PHP (et non le programme d'installation). Dans notre exemple : "php-4.4.1-Win32.zip".

On decide ensuite où l'on va vouloir installer le programme PHP. Le plus simple est de créer un dossier "C:\php\", mais il est possible de l'installer ailleurs. On décompresse alors l'archive PHP dans ce dossier.

On notera que l'on a volontairement conservé sous "C:\php" un sous-dossier "C:\php\php-4.4.1-Win32", alors que l'on aurait pu tout mettre directement dans "C:\php". Cela pourra nous permettre dans le futur d'avoir différents environnements de développement.

PHP est maintenant installé, en tout cas en ce qui concerne la base. Des modifications pourront être faites ultérieurement si nécessaire.

Prise en compte de PHP par le serveur Apache

Pour que les fichiers PHP soient interprêtés par le serveur Web Apache comme du code PHP à traiter et non comme un fichier texte ordinaire, il est nécessaire de modifier la configuration du serveur.

Pour cela on ouvre le fichier "httpd.conf" et l'on ajoute les lignes suivantes, après les directive "AddType" déjà existantes :

# Add Type for PHP
Addtype application/x-httpd-php .php
ScriptAlias /php/ "C:/php/php-4.4.1-Win32/"
Action application/x-httpd-php "/php/php.exe"

La première ligne "Addtype application/x-httpd-php .php" indique au serveur Web que tous les fichiers dont l'extension est ".php", correspondent à une application décrite par "application/x-httpd-php".
La seconde ligne "ScriptAlias /php/ "C:/php/php-4.4.1-Win32/"" indique le chemin où l'on va retrouver le programme PHP.
La dernière ligne "Action application/x-httpd-php "/php/php.exe"" indique quelle action il faut exécuter sur les fichiers associés à l'application "application/x-httpd-php". A noter que dans le cas de PHP5 il faut utiliser "/php/php-cgi.exe".

Il faut alors redémarrer le serveur Apache pour que ces modifications soient prises en compte.

Vérification de l'installation

Pour vérifier le bon fonctionnement de l'installation, on créé un fichier "index.php" dans la racine de son site Web de test ("C:/data/www/index.php") contenant les lignes :

<?php
echo "Hello World !!";
phpinfo();
?>

On vérifie alors en appelant l'URL http://localhost/index.php

On notera que la commande phpinfo(); affiche l'ensemble des paramètres de configuration de l'environnement de développement.

 

Personnaliser PHP

La configuration de PHP peut être modifiée et adaptée à votre besoin en utilisant le fichier de configuration "php.ini". Ce fichier se trouve dans le dossier d'installation de PHP ("C:\php\php-4.4.1-Win32").
On fait une copie du fichier donné en exemple "php.ini-recommended" en un fichier "php.ini". On peut alors modifier les propriétés de PHP. Les paragraphes suivants vont montrer les paramètres essentiels à regarder, mais aussi certains paramètres plus spécialisés.

> Modifier l'affichage des erreurs

Dans un environnement de test on va chercher à avoir un maximum d'informations sur les erreurs eventuelles de ses scripts. Pour cela on vérifie que le niveau d'erreur est bien au maximum :

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
error_reporting = E_ALL

On va ensuite demander à ce que toutes les erreurs soient envoyées à l'ecran pour pouvoir les corriger :

display_errors = On
display_startup_errors = On

> Contrôler l'accès aux fichiers par PHP

PHP permet d'empêcher les scripts d'aller n'importe où dans le système de fichier. A priori vos développements PHP se trouveront sous "C:/data/www", il n'y a donc pas de raison qu'un script PHP aille chercher quelque chose dans "C:/windows". Une erreur de codage peut faire des dégats. On a la possibilité de limiter l'accès par la commande :

open_basedir = "C:/data/www/"

Ainsi si par exemple un script PHP essaie de lire le dossier "C:/data" (ou le fichier système "C:/WINNT" ou "C:/WINDOWS"), PHP l'en empêchera et affichera une erreur. Cela est bien pratique lorsque l'on teste un code que l'on ne connaît pas.

<?php
opendir('c:/data');
?>

A noter :

  • Ne pas oublier le dernier '/'. En effet la valeur est en fait un prefixe, et non un nom de dossier complet. Si on ne met pas le dernier '/' alors le dossier 'C:/data/www2' est aussi accessible.
  • Il est possible de spécifier plusieurs valeurs séparées par des ';'.

> Autres contrôles de sécurité

PHP possède un mode particulier, le "safe_mode" qui permet d'être un peu plus restrictif sur certaines choses qui pourraient avoir un mauvais effet. Par exemple il existe des fonctions ('exec', 'system', ...) qui permettent de lancer des commandes ou des programmes windows directement depuis PHP. Cette capacité peut être très intêressante, mais aussi dangereuse. On peut donc aussi activer le "safe_mode" :

safe_mode = On

Il est aussi possible de choisir volontairement de désactiver certaines fonctions ou classes d'objets avec les commandes 'disable_functions' et 'disable_classes'. Il n'est à priori pas nécessaire de le faire dans un environnement de développement. Il est par contre important, si l'on utilise un hébergement externe, de regarder les fonctions désactivées chez son hébergeur. Cela peut être vu par la commande phpinfo();

> Configurer les sessions

La notion de session en PHP permet de conserver des informations lors de la navigation d'un utilisateur sur un site Web. L'objectif ce cet article n'est pas de décrire le fonctionnement des sessions, mais de configurer ce qu'il faut pour qu'elles fonctionnent correctement.

En gros, pour chaque session utilisateur, PHP créé un fichier dans lequel il mémorise les informations de la session. Il peut ainsi à l'appel suivant du script PHP renvoyer les informations de la session. Pour faire cela PHP doit pouvoir écrire dans un dossier créé pour cela. On définit pour cela le chemin du dossier dans "php.ini".

Plusieurs stratégies sont possibles pour ce dossier des sessions. Soit on en créé un global au niveau de l'installation de PHP (dans notre cas "c:\php"), soit au niveau du site web en developpement (dans notre cas "c:\data\www").

[Session]
session.save_path = "C:/data/www/sessions"

A noter que le dossier "C:/data/www/sessions" doit exister, il ne sera pas automatiquement créé par PHP.

> Configurer le dossier "include"

Un fichier PHP peut faire appel à une autre fichier par la commande "include" ou "require". Il est possible de déclarer un dossier comme "dossier include" dans lequel PHP ira rechercher les fichiers à inclure. Cela permet de ne pas avoir à indiquer le chemin exact entre le script et le fichier à inclure.

include_path = ".;c:\data\www\include"

Il faut être prudent avec l'usage de cette facilité car certains hebergeurs de sites Web ne la supportent pas. Donc si vous développez un site web bien identifié, publié chez un hebergeur qui supporte "include_path", alors configurez cette propriété de la même façon que l'hebergeur. Si par contre vous développez un script que vous voulez le plus générique possible pour être utilisé par d'autres, il est peut être prudent de ne pas compter sur "include_path".

> Configurer les extensions

PHP supporte aussi des modules d'extensions qui ne sont pas activés par défaut. Si par exemple vous voulez activer le module GD2, il vous l'indiquer dans le fichier php.ini. Il faut aussi indiquer le chemin pour trouver le dossier avec les modules d'extensions :

extension_dir = "./extensions/"
extension=php_gd2.dll

La liste des extensions possibles est écrite, mais mise en commentaires avec un ";" devant. Il suffit de supprimer le ";" pour les activer. Il faut cependant noter que certaines extensions demandent des DLL particulières, se trouvant dans le dossier "dlls" et devant être rendues accessibles (par exemple en les copiant dans le dossier système).

 

Voir aussi

PHP : Installation sous le système Windows
(http://fr.php.net/manual/fr/install.windows.php)

 

 
   

Member login - Stats
Copyright 2003 - PhpConcept

Powered by PcWeb