Installation sous Windows 9x/ME/NT/2000

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 téléchargement, installe la version CGI de PHP, et configure les serveurs web IIS, PWS, et Xitami.

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.

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. 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. Notez cependant que les modules SAPI ne sont pas considéré comme ayant atteint une qualité de production. La raison à cela est que les modules SAPI utilisent le système de thread sécurisé de PHP, ce qui est nouveau en PHP 4, et qui n'a pas été testé et torturé suffisamment pour être considérés comme stable. Il y a encore quelques bugs qui trainent. D'un autre côté, certains d'entre vous ont rapporté des résultats significativement meilleurs avec les modules SAPI, même si nous ne connaissons actuellement personne qui le fasse fonctionner en production. En clair, faites votre choix : soit vous avez absolument besoin de stabilité, et il vaut mieux laisser les performances SAPI de côté; soit vous avez besoin de performances, et alors c'est l'occasion de tester en production et de nous rapporter vos résultats.

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éparation

Avant de commencer, il faut télécharger un maximum de fichiers!

  • Pour commencer, téléchargez le Cygwin depuis le miroir cygwin le plus proche. Cela vous donnera les utilitaires GNU les plus populaires, utilisés durant le processus de compilation.

  • Téléchargez le reste des utilitaires de compilation dont vous aurez besoin depuis le site PHP à http://www.php.net/extra/win32build.zip.

  • Téléchargez le code source du DNS utilisé par PHP à http://www.php.net/extra/bindlib_w32.zip. Il remplacera le fichier resolv.lib inclut dans win32build.zip.

  • Si vous n'avez pas d'utilitaire de dézippage, vous devez en télécharger un. Une version libre est disponible à InfoZip.

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, vous devez non seulement extraire les fichiers, mais aussi convertir les nouvelles lignes en leur équivalent windows (crlf) dans les fichiers *.dsp et *.dsw avant que Microsoft Visual C++ ne soit capable de les comprendre.

Note : Placez les dossiers Zend et TSRM dans le dossier php4 pour que les projets puissent les trouver durant la compilation.

Mettre tout ensemble

  • Suivez les instructions pour installer l'utilitaire d'unzip de votre choix.

  • Exécutez setup.exe et suivez les instructions d'installation. Si vous décidez d'installer dans un autre dossier que c:\cygnus, indiquez le au processus de compilation en modifiant la variable d'environnement Cygwin. Sous Windows 95/98, modifier une variable d'environnement se fait en ajoutant une ligne dans le fichier autoexec.bat. Sous Windows NT, allez dans le menu "Démarrer => Paramètres => Panneau de contrôle => Système " ("My Computer => Control Panel => System ") et sélectionnez l'onglet "environnement" ("environment").

    Avertissement

    Créez un dossier temporaire pour Cygwin, sinon de nombreuses commandes (comme bison) échoueront. Sous Windows 95/98, mkdir C:\TMP. Sous Windows NT, mkdir %SystemDrive%\tmp.

  • Créez un dossier et dézippez win32build.zip dedans.

  • Lancez Microsoft Visual C++, et allez dans le menu "select Tools => Options". Dans le dialogue, sélectionnez l'onglet "directories". Assurez-vous que cygwin\bin, win32build\include, et win32build\lib sont bien dans les menus déroulants "Executables", "Include", et "Library". (Pour ajouter une entrée, sélectionnez une ligne blanche, et tapez). Une entrée typique ressemble à ceci :

    • c:\cygnus\bin

    • c:\php-win32build\include

    • c:\php-win32build\lib

    Pressez "OK", et sortez de Visual C++.

  • Créez un autre dossier et dézippez bindlib_w32.zip dedans. Décidez si vous avez besoin des symboles de débuggage (bindlib - Win32 Debug) ou non (bindlib - Win32 Release). Compilez la configuration adéquate :

    • Pour les utilisateurs de GUI, 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 une librairie php.exe utilisable, soit dans votre dossier Debug_TS soit sans le dossier Release_TS.

Répétez les instructions ci-dessus avec php4isapi.dsp (qui est dans sapi\isapi) pour compiler le code nécessaire pour intégrer PHP avec Microsoft IIS.

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.4pl1, les extensions BCMath, BCMath,Calendar, COM, FTP, MySQL, ODBC, PCRE, Sessions, WDDX et XML sont activées par défaut. Vous n'avez rien à faire pour qu'elles soient inclues. Lisez le fichier README.txt ou install.txt dans votre distribution pour connaître la liste des modules par défaut.

Tableau 2-1. Extensions PHP

php_bz2.dllFonctions de compression Bzip2
php_calendar.dllFonctions de conversions calendaires (Depuis PHP 4.03, elles sont activées par défaut)
php_cpdf.dllFonctions ClibPDF
php_crypt.dllFonctions de cryptage
php_ctype.dllFonctions ctype
php_curl.dllFonctions CURL
php_cybercash.dllFonctions de paiement Cybercash
php_db.dllFonctions DBM
php_dba.dllFonctions dbm-style
php_dbase.dllFonctions DBase
php3_dbm.dllLibrairie d'émulation GDBM via Berkely DB2
php_domxml.dllFonctions DOM XML
php_dotnet.dllFonctions .NET
php_exif.dllEntêtes EXIF des images JPEG
php_fbsql.dllFonctions FrontBase
php_fdf.dllFonction FDF (Forms Data Format)
php_filepro.dllLecture des bases filepro
php_ftp.dllFonctions FTP(Depuis PHP 4.0.3, elles sont activées par défaut)
php_gd.dllBibliothèque GD (pour les manipulations d'images)
php_gettext.dllFonctions GNU Gettext
php_hyperwave.dllFonctions HyperWave
php_iconv.dllFonctions de conversions ICONV
php_ifx.dllFonctions Informix
php_iisfunc.dllFonctions IIS
php_imap.dllFonctions IMAP 4(en PHP 3: php3_imap4r1.dll)
php_ingres.dllFonctions Ingres II
php_interbase.dllFonctoins InterBase
php_java.dllExtension Java
php_ldap.dllFonctions LDAP
php_mhash.dllFonctions Mhash
php_ming.dllFonctions Ming pour Flash
php_msql.dllFonctions mSQL
php3_msql1.dllFonctions mSQL 1
php3_msql2.dllFonctions mSQL 2
php_mssql.dllFonctions MSSQL (anciennement php_mssql70.dll, requiert MSSQL DB-Libraries)
php3_mysql.dllFonctions MySQL (Activées par défaut en PHP 4)
php_nsmail.dllFonctions Netscape mail
php3_oci73.dllFonctions Oracle
php_oci8.dllFonctions Oracle 8
php_openssl.dllFonctions OpenSSL
php_oracle.dllFonctions Oracle
php_pdf.dllFonctions PDF
php_pgsql.dllFonctions PostgreSQL
php_printer.dllFonctions d'impression
php_sablot.dllFocntions XSLT
php_snmp.dllFonctions SNMP get et walk (NT uniquement!)
php_sybase_ct.dllFonctions Sybase
php_yaz.dllFonctions YAZ
php_zlib.dllFonctions ZLib