Cette section s'applique aux systèmes Windows 98/Me et Windows NT/2000/XP. Ne vous attendez pas à ce que PHP fonctionne sur les plateformes 16 bits, comme Windows 3.1. Parfois, on décrira les plateformes supportées sous le nom de Win32. Windows 95 n'est plus supporté à partir de la version 4.3.0 de PHP.
Il y a deux méthodes principales pour installer PHP sous Windows : soit manuellement, soit avec InstallShield.
Si vous avez Microsoft Visual Studio, vous pouvez aussi compiler PHP à partir des sources.
Une fois que PHP est installé sur votre Windows, vous pouvez aussi ajouter diverses extensions.
L'installeur Windows de PHP disponible depuis les pages de http://www.php.net/downloads.php, installe la version CGI de PHP, et configure les serveurs web IIS, PWS, et Xitami.
Notez bien que bien que InstallShield soit une méthode simple pour installer PHP, il est limité dans son fonctionnement, puisque l'installation automatique des extensions n'est pas prise en compte. Le jeu complet des extensions PHP est disponible en téléchargeant et décompressant manuellement l'archive.
Installez votre serveur HTTP favori sur votre système et assurez-vous qu'il fonctionne.
Exécutez l'installeur et suivez les instructions fournies par l'assistant. Deux types d'installation sont fournis : standard, qui utilise toutes les configurations par défaut les plus pratiques, et avancée, qui pose un maximum de questions pour paramétrer le plus finement.
L'assistant d'installation rassemble suffisamment d'informations pour configurer php.ini et le serveur web qui utilisera PHP. Pour IIS, mais aussi PWS sous NT Workstation, une liste de l'arboresence web est affichée, et vous pouvez sélectionner les dossiers qui utiliseront PHP.
Une fois l'installation terminée, l'installeur vous informera que vous devez redémarrer. Suivez ce conseil, ou commencez à utiliser PHP immédiatement.
Avertissement |
Gardez bien à l'esprit que cette installation de PHP n'est pas sécurisée. Si vous voulez avoir une installation sécurisée de PHP, vous devriez commencer par lire la documentation, et choisir toutes vos options avec soin. Cet installeur automatique vous permet de réaliser l'installation en un tour de main, mais n'est pas destiné à l'utilisation sur des serveurs de production. |
Ce guide d'installation vous aide à installer manuellement et configurer PHP sur votre serveur web Windows. La version initiale de ce guide a été compilée par Bob Silva, et est disponible en anglais, à http://www.umesd.k12.or.us/php/win32install.html. Vous devrez télécharger la distribution binaire Zip sur la page http://www.php.net/downloads.php.
PHP 4 pour Windows est distribué en trois versions : exécutable CGI, un exécutable CLI (sapi/php.exe) et d'autres modules SAPI :
php4apache.dll - module Apache 1.3.x. |
php4apache2.dll - module Apache 2.0.x. |
php4isapi.dll - module ISAPI compatible avec les serveurs comme IIS 4.0/PWS 4.0 ou plus récents. |
php4nsapi.dll - module Netscape/iPlanet. |
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 autres systèmes. |
Pré-requis DCOM et MDAC : Si vous choisissez d'installer le module SAPI sur Windows 95, assurez vous de télécharger et installer la mise à jour DCOM, disponible à Microsoft DCOM pages. 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://www.microsoft.com/data/.
Voici les différentes étapes d'installation avant les étapes spécifiques au serveur.
Extrayez la distribution dans un dossier de votre choix, comme par exemple c:\. L'archive zip devient un dossier appelé php-4.3.1-Win32 qui est supposé être renommé en php. Par sourci de clarté, nous supposerons alors que vous avez placé votre distribution dans le dossier c:\php. Vous pouvez choisir un autre dossier, mais vous serez prudents d'éviter les espaces dans le nom du chemin au dossier (comme par exemple c:\program files\php n'est pas une bonne idée). car certains serveurs web vont crasher sinon. La structure du dossier que vous avez extrait ressemble à ceci :
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 | | | |-php4apache.dll | | | |-php4apache2.dll | | | |-php4isapi.dll | | | |-.. | |-install.txt | |-.. | |-php.exe -- executable CGI | |-.. | |-php.ini-dist | |-php.ini-recommended | |-php4ts.dll -- DLL principale --> dossier systeme Windows | |-... |
Le binaire CGI (C:\php\php.exe), le binaire CLI (c:\php\cli\php.exe), et les modules SAPI (c:\php\sapi\*.dll) dépendent de la DLL principale c:\php\php4ts.dll. Vous devez vous assurer que cette DLL est disponible pour votre installation PHP. L'ordre des dossiers lors de la recherche est le suivant :
Le dossier d'où php.exe est appelé. Lorsque vous utilisez le module SAPI, c'est le dossier d'où le serveur web charge la DLL (i.e. php4apache.dll). |
Tout dossier dans la variable d'environnement Windows PATH. |
La meilleure chose à faire est de rendre php4ts.dll accessible, indépendemmant de l'interface utilisée (CGI ou module SAPI). Pour cela, vous devez copier la DLL dans un dossier de votre PATH Windows. La meilleure place est alors le dossier système Windows :
c:\windows\system pour Windows 9x/ME |
c:\winnt\system32 pour Windows NT/2000 ou c:\winnt40\system32 pour NT/2000 server |
c:\windows\system32 pour Windows XP |
L'étape suivante est de faire un fichier de configuration valide pour PHP, c'est à dire le fichier php.ini. Il y a deux versions de ce fichier disponibles dans l'archive : php.ini-dist et php.ini-recommended. Nous vous recommandons d'utiliser php.ini-recommended, car nous avons optimisé les configurations par défaut dans ce fichier pour les performances et la sécurité. Lisez bien ce fichier documenté, et étudiez toutes les configurations, puis faites vos propres choix. Si vous voulez atteindre la meilleure sécurité, c'est la meilleure méthode. Copiez votre fichier de configuration de choix dans un dossier où PHP est capable de le lire, et renommez le php.ini. Par défaut, PHP recherche php.ini dans votre dossier Windows :
Sur Windows 9x/ME/XP, copiez le fichier php.ini dans votre dossier %WINDIR%, qui est généralement c:\windows. |
Sur Windows NT/2000, copiez le fichier php.ini dans votre dossier %WINDIR% ou %SYSTEMROOT%, qui est typiquement c:\winnt ou c:\winnt40 pour les serveurs NT/2000. |
Si vous utilisez NTFS sur Windows NT, 2000 ou XP, assurez vous que l'utilisateur qui fait tourner le serveur web a les droits de lecture de votre fichier php.ini (e.g. rendez le lisible par tout le monde).
Les étapes suivantes sont optionnelles :
Editez votre nouveau fichier php.ini. Si vous envisagez d'utiliser OmniHTTPd, ignorez l'étape suivante. Configurez doc_root pour qu'il pointe sur la racine de votre serveur web. Par exemple :
Choisissez les extensions que vous voulez que PHP démarre. Voyez la section sur les extensions Windows, pour les configurer, si elles ne sont pas intégrées. Notez que sur une nouvelle installation, il est recommandé de commencer par faire fonctionner PHP avant d'ajouter ou retirer des extensions via le php.ini.
Sur PWS et IIS, vous pouvez utiliser la directive browscap pour qu'elle pointe sur : c:\windows\system\inetsrv\browscap.ini sur Windows 9x/Me, c:\winnt\system32\inetsrv\browscap.ini sur NT/2000, et c:\windows\system32\inetsrv\browscap.ini sur XP.
Copiez le fichier php.ini-dist dans votre dossier %WINDOWS sous Windows 95/98, ou vers votre dossier %SYSTEMROOT% sous Windows NT ou Windows 2000 et renommez-le en php.ini. Votre dossier %WINDOWS% ou %SYSTEMROOT% est généralement :
c:\windows pour Windows 9x/Me |
c:\winnt ou c:\winnt40 pour les serveurs NT/2000 |
Il y a deux fichiers ini, distribués dans le fichier zip, php.ini-dist et php.ini-optimized. Nous vous recommandons d'utiliser php.ini-optimized, car nous l'avons optimisé d'un point de vue sécurité et vitesse d'exécution. Le mieux est tout de même de lire le fichier de configuration php.ini et de choisir vos options manuellement. Si vous voulez atteindre un meilleur niveau de sécurité, c'est par ce moyen que vous pourrez le faire, même si PHP fonctionne parfaitement avec les configurations par défaut.
Editez votre fichier php.ini :
la famille des serveurs Windows, Personal Web server (PWS) 3 et 4 ou plus récents; Internet Information Server (IIS) 3 et 4 ou plus récents.
les serveurs Apache Apache 1.3.x, et Apache 2.x.
les serveurs Netscape/iPlanet.
le serveur OmniHTTPd.
le serveur Oreilly Website Pro.
le serveur Sambar.
le serveur Xitami.
Avant de commencer, il est bon de se poser la question suivante : "Pourquoi la compilation de PHP sous Windows est si difficile?". Deux raisons viennent immédiatement à l'esprit :
Windows ne dispose pas (encore) d'une grande communauté de développeurs qui partagent librement leurs sources. La conséquence directe est que les investissements nécessaires en infrastructure pour supporter ce type de développement n'ont pas été faits. Ce qui fait que le portage des utilitaires Unix a été la solution pour pallier ce manque. Ne soyez donc pas surpris de rencontrer cette parenté de temps en temps.
La majorité des instructions que vous allez rencontrer sont du type : "faire et oublier". Alors, asseyez-vous confortablement et suivez aussi scrupuleusement que possible les instructions.
Pour compiler l'exécutable PHP, vous avez besoin d'un Microsoft Development Environment. Microsoft Visual C++ 6.0 est recommendé. Pour extraire le fichier téléchargé, vous avez besoin d'un outil de décompression (e.g.: Winzip). Si vous n'avez pas encore d'utilitaire de décompression, vous pouvez en télécharger un chez InfoZip.
Avant de commencer, vous devez télécharger...
les win32 buildtools de PHP, sur http://www.php.net/extra/win32build.zip.
le code source du résolveur de noms DNS utilisé par PHP sur http://www.php.net/extra/bindlib_w32.zip. C'est un remplacement pour la librairie resolv.lib inclue dans win32build.zip.
Si vous prévoyez de compiler PHP comme module pour Apache, vous aurez aussi besion des sources d'Apache.
Finalement, vous aurez besoin des sources PHP 4 elles-mêmes. Les dernières versions sont accessibles sur le serveur CVS anonyme. Vous pouvez aussi télécharger une version intermédiaire ou l'archive des sources la plus récente.
Après téléchargement des paquets nécessaires, vous devez les extraire au bon endroit.
Créez un dossier où tous les fichiers seront placés après l'extraction, comme par exemple :c:\work.
Créez le dossier win32build dans votre dossier de travail (ici c:\work) et décompressez win32build.zip dedans.
Créez le dossier bindlib_w32 sous votre dossier de travail (ici c:\work) et décompressez bindlib_w32.zip dedans.
Décompressez le code source de PHP dans votre dossier de travail (c:\work).
+--c:\work | | | +--bindlib_w32 | | | | | +--arpa | | | | | +--conf | | | | | +--... | | | +--php-4.x.x | | | | | +--build | | | | | +--... | | | | | +--win32 | | | | | +--... | | | +--win32build | | | | | +--bin | | | | | +--include | | | | | +--lib |
Note : Les utilisateurs de Cygwin peuvent omettre la dernière étable. Un environnement Cygwin correctement installé fournit les fichiers obligatoires de bison.simple et bison.exe.
Lancez Microsoft Visual C++, et allez dans le menu "select Tools => Options". Dans le dialogue, sélectionnez l'onglet "directories". Modifiez les valeurs pour les items du menu Executables, Includes et Library files. Votre configuration doit alors ressembler à
Fichiers exécutables : c:\work\win32build\bin, Utilisateurs Cygwin : cygwin\bin
Fichiers include: c:\work\win32build\include
Fichiers library : c:\work\win32build\lib
Vous devez compiler la librairie resolv.lib. Decidez si vous avez besoin des symboles de débogage (bindlib - Win32 Debug) ou non (bindlib - Win32 Release). Compilez la configuration ad hoc :
Pour les utilisateurs de l'interface graphique, lancez VC++, puis sélectionnez le menu "File => Open Workspace" et "bindlib". Puis sélectionnez "Build=>Set Active Configuration" et sélectionnez la configuration voulue. Enfin, sélectionnez "Build=>Rebuild All".
Pour les utilisateurs en ligne de commande, assurez-vous que vous avez enregistré les variables d'environnement C++, ou que vous avez exécuté vcvars.bat. Exécutez maintenant l'une des commandes suivantes :
msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"
msdev bindlib.dsp /MAKE "bindlib - Win32 Release"
La meilleure façon de compiler est de commander par la version CGI/exécutable.
Pour les utilisateurs GUI, lancez VC++, puis sélectionnez le menu "File => Open Workspace" et sélectionnez "php4ts". Ensuite, sélectionnez le menu "Build=>Set Active Configuration", et sélectionnez la configuration voulue. Finalement, sélectionnez le menu "Build=>Rebuild All".
Pour les utilisateurs en ligne de commande, assurez-vous que vous avez enregistré les variables d'environnement C++, ou que vous avez exécuté vcvars.bat. Exécutez maintenant l'une des commandes suivantes :
msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
A ce stade, vous avez un exécutable php.exe utilisable, soit dans votre dossier Debug_TS soit sans le dossier Release_TS.
Il est possible de faire des modifications particulières mineures en éditant le fichier main/config.win32.h.in.
Ensuite, vous pouvez compiler la version CLI qui est conçue pour un usage en ligne de commande. Les étapes sont les mêmes que pour la compilation en mode CGI, hormis le fait que vous devez sélectionner php4ts_cli - Win32 Debug_TS ou php4ts_cli - Win32 Release_TS dans le fichier de projet. Après une compilation réussie, vous pouvez exécuter le fichier php.exe dans l'un des dossiers Release_TS\cli\ ou Debug_TS\cli\.
Note : Si vous voulez utiliser PEAR et l'installeur en ligne de commande, la version CLI-SAPI est obligatoire. Pour plus d'informations sur le projet PEAR et l'installeur, lisez la documentation sur le site de PEAR.
Afin de compiler le module SAPI (php4isapi.dll pour l'intégrer dans Microsoft IIS, vous devez utiliser la configuration php4isapi-whatever-config et compiler la DLL nécessaire.
Après avoir installé PHP et votre serveur web sous Windows, vous voudrez sûrement ajouter quelques extensions bien pratiques. La table suivante liste une partie des extensions disponibles. Comme indiqué dans le manuel, vous pouvez choisir quelles extensions vous voulez charger en décommentant la ligne 'extension=php_*.dll' dans le fichier php.ini. Vous pouvez aussi charger dynamiquement un module avec la fonction dl().
Les fichiers DLLs des extensions PHP sont préfixés par php_ en PHP 4, et php3_ en PHP 3. Cela évite la confusion des extensions PHP et de leurs librairies.
Note : En PHP 4.3.1, les extensions BCMath, Calendar, COM, Ctype, FTP, MySQL, ODBC, Overload, PCRE, Session, Tokenizer, WDDX, XML et Zlib sont intégrées. Vous n'avez pas besoin d'ajouter d'autres extensions pour pouvoir utiliser ces fonctions. Voyez le fichier README.txt ou install.txt de votre distribution, ou bien cette table pour une liste des modules intégrés.
Editez votre fichier php.ini :
Vous devez modifier l'option de extension_dir pour qu'elle pointe sur le dossier qui contient les extensions, là où vous avez placé vos fichiers php_*.dll. N'oubliez surtout pas l'anti-slash final. Par exemple :
Pour activer les extensions dans le php.ini, il suffit de décommenter les lignes extension=php_*.dll dans le php.ini. Ceci est fait en effaçant le point-virgule initial de la ligne :
Exemple 3-4. Activer l'extension Bzip2 sous Windows
|
Certaines de ces extensions requièrent des librairies DLL supplémentaires pour fonctionner correctement. Certaines d'entre elles sont disponibles dans la distribution. dans le dossier dlls mais certaines (comme Oracle (php_oci8.dll)), demandent des dlls qui ne sont pas dans la distribution.
Copiez les dlls fournies depuis le dossier dlls dans votre PATH Windows. Les bons emplacements sont typiquement
c:\windows\system pour Windows 9x/Me |
c:\winnt\system32 pour Windows NT/2000 |
c:\windows\system32 pour Windows XP |
Tableau 3-1. Extensions PHP pour Windows
Extension | Description | Notes |
---|---|---|
php_bz2.dll | Fonctions de compression bzip2 | Aucune |
php_calendar.dll | Fonctions de conversions calendaires Calendar | Disponible depuis PHP 4.0.3 |
php_cpdf.dll | Fonctions ClibPDF | Aucune |
php_crack.dll | Fonctions de CrackLib | Aucune |
php3_crypt.dll | Fonctions de Crypt | Inconnu |
php_ctype.dll | Fonctions ctype | Aucune |
php_curl.dll | CURL, Bibliothèque de fonctions "Client URL" | Requiert : libeay32.dll, ssleay32.dll (fournies) |
php_cybercash.dll | Fonctions de paiement Cybercash | Aucune |
php_db.dll | Fonctions DBM | Obsolètes. Utilisez DBA à la place (php_dba.dll) |
php_dba.dll | DBA: DataBase Abstraction, fonctions d'abstraction de base de données (de type dbm) | Aucune |
php_dbase.dll | Fonctions dBase | Aucune |
php3_dbm.dll | Fonctions Berkeley DB2 | Inconnu |
php_dbx.dll | Fonctions dbx | |
php_domxml.dll | Fonctions de DOM XML | Requiert : libxml2.dll (fournie) |
php_dotnet.dll | Fonctions .NET | Aucune |
php_exif.dll | Fonctions de lecture des en-têtes JPEG Read EXIF | Aucune |
php_fbsql.dll | Fonctions de FrontBase | Aucune |
php_fdf.dll | Fonctions FDF: Forms Data Format. | Requiert : fdftk.dll (fournies) |
php_filepro.dll | Fonctions filePro | Accès en lecture seule |
php_ftp.dll | Fonctions FTP | Disponible depuis PHP 4.0.3 |
php_gd.dll | Fonctions de traitement des images GD | Aucune |
php_gd2.dll | Fonctions de traitement des images GD2 | Aucune |
php_gettext.dll | Fonctions Gettext | PHP <= 4.2.0 requiert : gnu_gettext.dll (fournie), PHP >= 4.2.3 requiert libintl-1.dll (fournie). |
php_hyperwave.dll | Fonctions HyperWave | Aucune |
php_iconv.dll | Fonctions de conversions de jeux de caractères ICONV | Requiert : iconv-1.3.dll (fournies) |
php_ifx.dll | Fonctions Informix | Requiert : les bibliothèques Informix |
php_iisfunc.dll | Fonctions de gestion de IIS | Aucune |
php_imap.dll | Fonctions IMAP, POP3 et NNTP | PHP 3 : php3_imap4r1.dll |
php_ingres.dll | Fonctions Ingres II | Requiert : librairies Ingres II |
php_interbase.dll | Fonctions InterBase | Requiert : gds32.dll (fournies) |
php_java.dll | Extension Java | Requiert : jvm.dll (fournies) |
php_ldap.dll | Fonctions LDAP | PHP <= 4.2.0 requiert libsasl.dll (fournie), PHP >= 4.3.0 requiert libeay32.dll, ssleay32.dll (fournies). |
php_mbstring.dll | Fonctions chaînes multi-octets | Aucune |
php_mcrypt.dll | Fonctions de chiffrement Mcrypt | Requiert : libmcrypt.dll |
php_mhash.dll | Fonctions Mhash | Aucune |
php_mime_magic.dll | Fonctions Mimetype | Requiert : magic.mime (fournie) |
php_ming.dll | Fonctions de génération de fichiers Flash avec Ming | Aucune |
php_msql.dll | Fonctions de mSQL | Requiert : msql.dll (fournies) |
php3_msql1.dll | mSQL 1 client | Inconnu |
php3_msql2.dll | mSQL 2 client | Inconnu |
php_mssql.dll | Fonctions MSSQL | Requiert : ntwdblib.dll (fournies) |
php3_mysql.dll | Fonctions MySQL | Intégré à PHP 4 |
php3_nsmail.dll | Fonctions de email Netscape | Inconnu |
php3_oci73.dll | Fonctions Oracle | Inconnu |
php_oci8.dll | Fonctions Oracle 8 | Requiert : librairies clientes Oracle 8 |
php_openssl.dll | Fonctions OpenSSL | Requiert : libeay32.dll (fournies) |
php_oracle.dll | Fonctions de Oracle 7 | Requiert : librairies clientes Oracle 7 |
php_overload.dll | Fonctions relatives à la surcharge d'objets | Intégrée depuis PHP 4.3.0 |
php_pdf.dll | Fonctions de PDF | Aucune |
php_pgsql.dll | Fonctions de PostgreSQL | Aucune |
php_printer.dll | Fonctions d'impressions | Aucune |
php_shmop.dll | Fonctions de mémoire partagée | Aucune |
php_snmp.dll | Fonctions SNMP | NT uniquement! |
php_sockets.dll | Fonctions de socket | Aucune |
php_sybase_ct.dll | Fonctions Sybase | Requiert : librairies clientes Sybase |
php_tokenizer.dll | Tokenizer | Intégrée depuis PHP 4.3.0 |
php_w32api.dll | Fonctions W32api | Aucune |
php_xmlrpc.dll | Fonctions XML-RPC | PHP >= 4.2.1 requiert iconv.dll (fournie) |
php_xslt.dll | Fonctions XSLT | Requiert : sablot.dll, expat.dll (fournies) |
php_yaz.dll | Fonctions YAZ | Aucune |
php_zib.dll | Fonctions de compression Zip | Accès en lecture seule |
php_zlib.dll | Fonctions de compression ZLib | Aucune |
Précédent | Sommaire | Suivant |
Installation sous UNIX | Niveau supérieur | CGI/ Installation pour exécution en ligne de commande |