Installation sous Windows

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.

InstallShield sous Windows

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.

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 le wizard. 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.

Le wizard 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ée à l'utilisation sur des serveurs de production.

Instructions Générales d'installation

Ce guide vous permet d'installer et de configurer manuellement PHP sur vos stations Windows 9x/Me/NT/2000. Vous devrez commencer par télécharger la distribution de PHP au format compressé ZIP à http://www.php.net/downloads.php. La première version de ce guide a été compilée par Bob Silva. La version originale est disponible (en anglais) à http://www.umesd.k12.or.us/php/win32install.html.

Ce guide fournit une aide d'installation pour :

PHP 4 pour Windows est décliné en deux versions : un exécutable CGI (php.exe), et plusieurs modules SAPI (par exemple php4isapi.dll). Cette dernière forme est nouvelle pour PHP 4 et founit des performances améliorées ainsi que des fonctionnalités supplémentaires.

Avertissement

Les modules SAPI ont été significativement améliorés en version 4.1. Toutefois, vous pouvez rencontrer des erreurs de serveur ou des erreurs de modules tels qu'ASP, dans les anciens systèmes.

Si vous choisissez l'un des modules SAPI et utilisez Windows 95, pensez à télécharger la mise à jour DCOM à Microsoft DCOM pages. Pour le module ISAPI, comme un serveur web compatible est nécessaire (testé avec IIS 4.0, PWS 4.0 et IIS 5.0). IIS 3.0 n'est pas supporté; vous devez télécharger et installer le Windows NT 4.0 Option Pack avec IIS 4.0 si vous voulez le support natif de PHP.

Voici les différentes étapes d'installation avant les étapes spécifiques au serveur.

Compilation des sources

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 :

  1. 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.

  2. 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.

Pré-requis

Pour compilerl'exécutable PHP, vous avez besoin d'un Microsoft Development Environment. Microsoft Visual C++ 6.0 est recommendé. Pour éxtraire 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...

Finalement, vous aurez besoin des sources PHP 4 elles-mêmes!! Les dernières versions sont accessibles sur le serveur CVS anonyme. Si vous téléchargez une version intermédiaire ou la source,

Compiler tout ensemble

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).

Après avoir suivi ces instructions, vous devriez obtenir un dossier qui ressemble à ceci :

+--c:\work
|  |
|  +--bindlib_w32
|  |  |
|  |  +--arpa
|  |  |
|  |  +--conf
|  |  |
|  |  +--...
|  |
|  +--php-4.x.x
|  |  |
|  |  +--build
|  |  |
|  |  +--...
|  |  |
|  |  +--win32
|  |  |
|  |  +--...
|  |
|  +--win32build
|  |  |
|  |  +--bin
|  |  |
|  |  +--include
|  |  |
|  |  +--lib

Créez les dossiers c:\usr\local\lib. Copiez le fichier bison.simple depuis c:\work\win32build\bin vers c:\usr\local\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.

Configuration de MVC ++

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 éxécutables : c:\work\win32build\bin, Utilisateurs Cygwin : cygwin\bin

  • Fichiers include: c:\work\win32build\include

  • Fichiers library : c:\work\win32build\lib

Compilation de resolv.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"

A ce stade, vous avez une librairie resolv.lib utilisable, soit dans votre dossier Debug, soit sans le dossier Release. Copiez ce fichier dans votre dossier win32build\lib, en remplaçant le fichier du même nom.

Compilation

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 proejt. 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.

Installation des extensions sous Windows

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.0.6 le support des extensions BCMath, Calendar, COM, FTP, MySQL, ODBC, PCRE, Session, WDDX et XML est activé par défaut. Vous n'avez pas à charger d'extensions particulière pour utiliser ces fonctions. Lisez le fichier README.txt inclus dans la distribution, ou bien install.txt pour connaitre la liste des modules automatiquement activés.

Note : 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

Si vous les avez déjà d'installées sur votre système, ne les écrasez que si PHP ne fonctionne pas correctement (et de toutes manières, faites une sauvegarde de ces DLL, en cas de problème).

Tableau 3-1. PHP Extensions

ExtensionDescriptionNotes
php_bz2.dllFonctions de compression bzip2Aucune
php_calendar.dllFonctions de conversions calendaires CalendarDisponible depuis PHP 4.0.3
php_cpdf.dllFonctions ClibPDFAucune
php_crack.dllFonctions de CrackLibAucune
php3_crypt.dllFonctions de CryptInconnu
php_ctype.dllFonctions ctypeAucune
php_curl.dllCURL, Client URL library functionsRequiert : libeay32.dll, ssleay32.dll (fournies)
php_cybercash.dllFonctions de paiement CybercashAucune
php_db.dllFonctions DBMObsolètes. Utilisez DBA à la place (php_dba.dll)
php_dba.dllDBA: DataBase (dbm-style) Abstraction layer functionsAucune
php_dbase.dllFonctions dBaseAucune
php3_dbm.dllFonctions Berkeley DB2Inconnu
php_domxml.dllFonctions de DOM XMLRequiert : libxml2.dll (fournie)
php_dotnet.dllFonctions .NETAucune
php_exif.dllFonctions de lecture des entêtes JPEG Read EXIFAucune
php_fbsql.dllFonctions de FrontBaseAucune
php_fdf.dllFonctions FDF: Forms Data Format.Requiert : fdftk.dll (fournies)
php_filepro.dllFonctions fileProAccès en lecture seule
php_ftp.dllFonctions FTPDisponible depuis PHP 4.0.3
php_gd.dllFonctions de traitement des images GDAucune
php_gettext.dllFonctions GettextRequiert : gnu_gettext.dll (fournies)
php_hyperwave.dllFonctions HyperWaveAucune
php_iconv.dllFonctions de conversions de jeux de caractères ICONVRequiert : iconv-1.3.dll (fournies)
php_ifx.dllFonctions InformixRequiert : Informix libraries
php_iisfunc.dllFonctions de gestion de IISAucune
php_imap.dllFonctions IMAP, POP3 et NNTPPHP 3: php3_imap4r1.dll
php_ingres.dllFonctions Ingres IIRequiert : Ingres II libraries
php_interbase.dllFonctions InterBaseRequiert : gds32.dll (fournies)
php_java.dllExtension JavaRequiert : jvm.dll (fournies)
php_ldap.dllFonctions LDAPRequiert : libsasl.dll (fournies)
php_mhash.dllFonctions MhashAucune
php_ming.dllFonctions de générations de fichiers Flash avec MingAucune
php_msql.dllFonctions de mSQLRequiert : msql.dll (fournies)
php3_msql1.dllmSQL 1 clientInconnu
php3_msql2.dllmSQL 2 clientInconnu
php_mssql.dllFonctions MSSQLRequiert : ntwdblib.dll (fournies)
php3_mysql.dllFonctions MySQLBuilt-in in PHP 4
php3_nsmail.dllFonctions de email NetscapeInconnu
php3_oci73.dllFonctions OracleInconnu
php_oci8.dllFonctions Oracle 8Requiert : librairies clientes Oracle 8
php_openssl.dllFonctions OpenSSLRequiert : libeay32.dll (fournies)
php_oracle.dllFonctions de Oracle 7Requiert : librairies clientes Oracle 7
php_pdf.dllFonctions de PDFAucune
php_pgsql.dllFonctions de PostgreSQLAucune
php_printer.dllFonctions d'impressionsAucune
php_xslt.dllFonctions XSLTRequiert : sablot.dll (fournies)
php_snmp.dllFonctions SNMPNT only!
php_sybase_ct.dllFonctions SybaseRequiert : librairies clientes Sybase
php_yaz.dllFonctions YAZAucune
php_zlib.dllFonctions de compression ZLibAucune