Manuel PHP
Précédent | Chapitre 6. Installation sur les système Windows | Suivant

# Installation manuelle sous Windows

Ce guide d'installation vous aide à installer manuellement et configurer PHP avec un serveur web sous Microsoft Windows. Pour commencer, vous devrez télécharger la distribution binaire Zip sur la page http://www.php.net/downloads.php.

Bien qu'il existe beaucoup d'installeurs et que nous fournissons également un installeur pour Microsoft Windows, nous vous recommandons de prendre le temps de lire ceci et d'installer PHP vous-même, ce qui est la meilleur façon d'apprendre le système, et vous permettera d'installer des extensions PHP facilement lorsque vous en aurez besoin.

> Mise à jour d'une ancienne version de PHP : Les précédentes éditions de ce manuel vous suggéraient de déplacer les fichiers ini et les DLLs dans votre répertoire système (i.e dans le dossier `C:\WINDOWS`) et de ce fait, vous aviez des fichiers relatifs à PHP dans de multiples dossiers sur votre disque dur. Nous vous conseillons d'effacer tous ces fichiers (comme `php.ini`et les bibliothèques DLLs relatives à PHP du dossier système de Windows), avant de commencer l'installation d'une nouvelle version de PHP. Assurez vous d'avoir effectué des sauvegardes de ces bibliothèques DLLs, sinon, vous risquez de corrompte la totalité de votre système. L'ancien fichier `php.ini` peut également vous aider à configurer votre nouvelle installation de PHP. Et, comme vous l'apprendrez bientôt, la méthode préférée pour installer PHP est de garder tous les fichiers relatifs à PHP dans un seul dossier et d'avoir le dossier de disponible dans votre variable système PATH.

> Pré-requis MDAC : Si vous utilisez Microsoft Windows 9x/NT4, téléchargez la dernière version de Microsoft Data Access Components (MDAC) pour votre plate-forme. MDAC est disponible à http://msdn.microsoft.com/data/. Cette condition existe car ODBC est compilé dans les binaires distribués pour Windows.

Les étapes suivantes doivent être terminées sur toutes les installations avant d'exécuter une quelconque instruction spécifique au serveur.

Extract the distribution file into a directory of your choice. If you are installing PHP 4, extract to `C:\`, as the zip file expands to a foldername like `php-4.3.7-Win32`. If you are installing PHP 5, extract to `C:\php` as the zip file doesn't expand as in PHP 4. You may choose a different location but do not have spaces in the path (like `C:\Program Files\PHP`) as some web servers will crash if you do. Extrayez la distribution dans un dossier de votre choix. Si vous installez PHP 4, extrayez le fichier zippé dans `C:\` car il va créer un dossier comme `php-4.3.7-Win32`. Si vous installez PHP 5, extrayez le fichier zippé dans `C:\php` car il ne va pas créer de dossier principal, comme en PHP 4. Vous pouvez choisir un autre dossier, mais soyez prudent d'éviter les espaces dans le nom du chemin au dossier (comme `C:\Program Files\PHP`), sinon, certains serveurs web crasheront.

La structure du dossier que vous avez extrait depuis le fichier zippé est différente pour les versions 4 et 5 de PHP et ressemble à ceci :

Exemple 6-1. Structure de la distribution Windows de PHP 4

    c:\php
       |
       +--cli
       |  |
       |  |-php.exe           -- Executable CLI - UNIQUEMENT pour la ligne de commande
       |
       +--dlls                -- DLL de support des extensions  --> dossier systeme Windows
       |  |
       |  |-expat.dll
       |  |
       |  |-fdftk.dll
       |  |
       |  |-...
       |
       +--extensions          -- extensions DLL pour PHP
       |  |
       |  |-php_bz2.dll
       |  |
       |  |-php_cpdf.dll
       |  |
       |  |-..
       |
       +--mibs                -- fichiers de support de SNMP
       |
       +--openssl             -- fichiers de support de Openssl
       |
       +--pdf-related         -- fichiers de support de PDF
       |
       +--sapi                -- DLL SAPI
       |  |
       |  |-php4activescript.dll
       |  |
       |  |-php4apache.dll
       |  |
       |  |-php4apache2.dll
       |  |
       |  |-..
       |
       +--PEAR                -- copie initiale de PEAR
       |
       |
       |-go-pear.bat          -- script de configuration de PEAR
       |
       |-..
       |
       |-php.exe              -- exécutable CGI
       |
       |-..
       |
       |-php.ini-dist         -- paramètres par défaut du php.ini
       |
       |-php.ini-recommended  -- paramètres recommandés du php.ini
       |
       |-php4ts.dll           -- DLL principale
       |
       |-...

Ou :

Exemple 6-2. Structure du paquet PHP 5

    c:\php
       |
       +--dev
       |  |
       |  |-php5ts.lib
       |
       +--ext                 -- extension DLLs pour PHP
       |  |
       |  |-php_bz2.dll
       |  |
       |  |-php_cpdf.dll
       |  |
       |  |-..
       |
       +--extras
       |  |
       |  +--mibs             -- fichiers de support de SNMP
       |  |
       |  +--openssl          -- fichiers de support de Openssl
       |  |
       |  +--pdf-related      -- fichiers de support de PDF
       |  |
       |  |-mime.magic
       |
       +--pear                -- copie initiale de PEAR
       |
       |
       |-go-pear.bat          -- script de configuration de PEAR
       |
       |-fdftk.dll
       |
       |-..
       |
       |-php-cgi.exe          -- exécutable CGI
       |
       |-php-win.exe          -- permet d'exécuter des scripts sans ouvrir un fenêtre de prompt
       |
       |-php.exe              -- exécutable CLI - UNIQUEMENT pour du script en ligne de commande
       |
       |-..
       |
       |-php.ini-dist         -- paramètres par défaut du php.ini
       |
       |-php.ini-recommended  -- paramètres recommandés du php.ini
       |
       |-php5activescript.dll
       |
       |-php5apache.dll
       |
       |-php5apache2.dll
       |
       |-..
       |
       |-php5ts.dll           -- DLL principale
       |
       |-...

Notez les différences et les similitudes. PHP 4 et PHP 5 ont tous les deux un exécutable CGI, un exéctuable CLI et des modules serveurs, mais qu'ils sont situés dans des dossiers différents et/ou ont des noms différents. En PHP 4, les modules serveurs se trouvent dans le dossier `sapi`, tandis qu'ils se trouvent dans le dossier principal en PHP 5. Le support des DLLs pour les extensions de PHP sont également dans le dossier principal en PHP 5. Observez l'arborescence pour connaître l'emplacement des exécutables CGI et CLI.

> Note : En PHP 4, vous devez déplacer tous les fichiers se trouvant dans les dossiers `dll` et `sapi` dans le dossier principal (e.g. `C:\php`).

Voici une liste de modules serveur avec la correspondance entre PHP 4 et PHP 5.

- `sapi/php4activescript.dll (php5activescript.dll)` - moteur ActiveScript vous permet d'intégrer PHP dans vos applications Windows.

- `sapi/php4apache.dll (php5apache.dll)` - module Apache 1.3.x.

- `sapi/php4apache2.dll (php5apache2.dll)` - module Apache 2.0.x.

- `sapi/php4isapi.dll (php5isapi.dll)` - module ISAPI pour les serveurs ISAPI compliant comme IIS 4.0/PWS 4.0 ou autres.

- `sapi/php4nsapi.dll (php5nsapi.dll)` - module serveur Sun/iPlanet/Netscape.

- `sapi/php4pi3web.dll (no equivalent in PHP 5)` - module serveur Pi3Web.

Les modules serveurs permettent des gains de performances et quelques fonctionnalités supplémentaires par rapport à la version CGI. La version CLI est destinée à être utilisée pour les scripts en ligne de commande. Plus d'informations sur la version CLI est disponible dans le chapitre à propos "utilisez PHP en ligne de commande".

Avertissement
Les modules SAPI ont été significativement améliorés dans la version 4.1, mais vous pourrez rencontrer des erreurs avec le serveur ou d'autres modules (tels ASP), dans les systèmes plus anciens.

Les binaires CGI et CLI et les modules des serveurs web requierent tous la bibliothèque `php4ts.dll` (`php5ts.dll`). Vous devez vous assurer que ce fichier peut être trouvé par votre installation de PHP. Le dossier où ce fichier sera recherché suit ces règles :

- Le même dossier depuis lequel le fichier `php.exe` est appelé ou, dans le cas où vous utilisez le module SAPI, le dossier du serveur web (e.g. `C:\Program Files\Apache Group\Apache2\bin`).

- N'importe quel dossier de votre variable d'environnement PATH.

Pour rendre le fichier `php4ts.dll` / `php5ts.dll` disponible, vous avez trois options : copiez le fichier dans le dossier système de Windwos, copiez le fichier dans le dossier du serveur web ou ajoutez le dossier PHP, `C:\php` à votre variable d'environnement PATH. Pour une meilleur maintenance, nousvous conseillons de suivre la dernière option et d'ajoutez le dossier `C:\php` à votre variable d'environnement PATH, celà rendera plus facile la mise à jour de PHP dans le futur. Lisez l'entée correspondante de la FAQ pour avoir plus d'informations sur la façon d'ajouter votre dossier PHP à la variable d'environnement PATH.

L'étape suivante est de définir une configuration valide pour PHP, `php.ini`. Il y a deux fichiers ini distribués avec lepaquet zip, `php.ini-dist` et `php.ini-recommended`. Nous vous recommandons vivement d'utiliser le fichier `php.ini-recommended`, car nous avons optimisé les options par défaut dans ce fichier pour rendre PHP plus performant, plus sécurisé. Lisez ce document très attentivement car il contient des modifications depuis `php.ini-dist` qui affectent sérieusement votre configuration. Par exemple, display_errors est à off et magic_quotes_gpc est aussi à off. En complément de cette lecture, étudiez la configuration du fichier ini et définissez chaqu'un des éléments manuellement. Si vous voulez avoir la meilleur sécurité, alors, c'est la seule façon pour vous, bien que PHP fonctionne très bien avec le fichier ini par défaut. Copiez le fichier ini de votre choix dans un dossier où PHP sera capable de le trouver et renommez le en `php.ini`. PHP recherche un fichier `php.ini` dans les endroits suivants (et dans l'ordre) :

- directive PHPIniDir (module Apache 2 uniquement)

- HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath

- la variable d'environnement PHPRC

- le dossier de PHP (pour CLI) ou le dossier du serveur web (pour les modules SAPI)

- dossier Windows (`C:\windows` ou `C:\winnt`)

Si vous utilisez Apache 2, l'option la plus simple est d'utiliser la directive PHPIniDir (lisez la page traitant de l'installation de PHP avec Apache 2) sinon, la meilleure option est de définir la variable d'environnement PHPRC. Ce processus est expliqué dans cette entrée de la FAQ.

> Note : Si vous utilisez NTFS sous Windows NT, 2000, XP ou 2003, assurez vous que l'utilisateur faisant fonctionner le serveur web a les permissions en lecture sur votre fichier `php.ini` (e.g. rendez le lisible pour tout le monde).

Les étapes suivantes sont optionnelles :

- Editez votre nouveau fichier `php.ini`. Si vous avez prévu d'utiliser OmniHTTPd, ne suivez pas l'étape suivante. Définissez le paramètre doc_root de façon à ce qu'il pointe vers le document_root de votre serveur web. Par exemple :

      doc_root = c:\inetpub        // pour IIS/PWS

      doc_root = c:\apache\htdocs // pour Apache

- Choisissez les extensions que vous voulez charger au démarrage de PHP. Lisez la section sur les extensions Windows, sur la manière de les configurer et celles qui sont déjà intégrées à PHP. Notez que sur les nouvells installations, il est préférable de faire fonctionner PHP et de le tester avec aucune extension avant d'en activer dans votre fichier `php.ini`.

- Sous PWS et IIS, vous pouvez définir le paramètre de configuration browscap pour pointer vers `c:\windows\system\inetsrv\browscap.ini` sous Windows 9x/Me, `c:\winnt\system32\inetsrv\browscap.ini` sous NT/2000 et `c:\windows\system32\inetsrv\browscap.ini` sous XP. Pour un fichier `browscap.ini` à jour, lisez cette entrée de la FAQ.

PHP est maintenant installé sur votre système. L'étape suivante est le choix du serveur web et de le configurer pour y faire fonctionner PHP. Choisissez un serveur web parmis ceux supportés.

Précédent | Sommaire | Suivant
Installation sur les système Windows | Niveau supérieur | ActiveScript