IIS 6 - PHP5 - MySQL 4.1 - phpmyadmin 2.6 Date de publication : 18/04/2005 Par Olivier Delmotte On a souvent l'habitude d'entendre parler de LAMP (linux Apache MySQL Php). En effet, c'est la configuration que l'on rencontre le plus souvent dans les offres d'hébergements de sites Web. Mais le couple Php / MySQL fonctionne aussi très bien sous Windows avec le serveur web de Microsoft. Dans ce tutorial, nous verrons comment installer et configurer un serveur complet. Pour cela, je me suis appuyé sur un Windows 2003 Serveur et j'ai utilisé les dernières versions de PHP, de MySQL et de phpmyadmin disponibles à ce jour. Bonne lecture. Pour tout problème, n'hésitez pas à me contacter par MP Introduction 1. Installation de IIS 6 sur Windows 2003 2. Installation de MySQL 4.1 2.1. Installation 2.2. Configuration 2.3. Test final 3. Installation de PHP 5 3.1. Installation manuelle 3.2. Configuration 3.2.1. php.ini 3.2.2. IIS 3.3. Test 4. Installation de phpmyadmin Conclusion Introduction Pour réaliser ce tutoriel, je me suis appuyé sur les versions suivantes : Produit Version Site Langue Windows 2003 Server 5.2 Site de Windows 2003 Server IIS 6 Site de IIS PHP 5.0.4 Site du PHP MySQL 4.1.11 Site de MySQL phpmyadmin 2.6.2 Site de phpmyadmin Pour des raisons de sécurité, il est recommandé de déplacer le répertoire par défaut de votre racine Web 1 van 9 15/10/2006 10:50
2 van 9 15/10/2006 10:50 (par défaut C:\Inetpub\wwwroot). L'idéal serait d'avoir une partition dédiée à votre espace Web. Pour ma part, j'ai réservé une partition de 2 Go qui ne me sert qu'à l'hébergement des dossiers de IIS, de Php, MySQL et phpmyadmin. Cette partition, vous la retrouverez sous le nom de D: dans la suite du tutoriel. Voici donc l'arborescence de ma partition : D: --- MySQL --- php5 --- --- sessions --- www --- --- phpmyadmin --- --- root Pensez à créer les répertoires qui apparaissent en gras 1. Installation de IIS 6 sur Windows 2003 L'installation de IIS 6 sous Windows 2003 est des plus simple. Pour commencer, munissez vous de votre CD Windows 2003 Server. Ensuite, depuis le Panneau de configuration, choisissez Ajout / Suppression de programme. Dans la fenêtre qui s'ouvre, choisissez Ajouter ou supprimer des composants Windows. Voici un récapitulatif visuel des différentes étapes de l'installation de IIS : IIS fait partie de la catégorie Serveur d'applications. Entrez dans les détails de IIS et choisissez Service World Wide Web. Tout ce dont vous aurez besoin sera alors sélectionné automatiquement par l'assistant. Vous pouvez toujours revenir ici si vous voulez rajouter des composants par la suite. Vous pouvez installer également le Service FTP, afin de pouvoir mettre votre site en ligne à distance si c'est un serveur distant. Vous trouverez des informations sur comment installer et configurer un serveur FTP dans ce tutoriel 2. Installation de MySQL 4.1 Si vous avez déjà utilisé MySQL 4.0.x, vous verrez que l'assistant d'installation de cette nouvelle version n'a strictement rien à voir. Avec cette nouvelle version, tout est fait au moment de l'installation. MySQL est disponible gratuitement sur www.mysql.com. La version que j'ai utilisée pour ce tutorial est la 4.1.7.
3 van 9 15/10/2006 10:50 2.1. Installation Pour ceux qui ont déjà installé une version 4.0.x de MySQL, ils avaient peut être l'habitude d'utiliser WinMySQLMyAdmin, moi aussi. Vous ne le trouverez plus avec MySQL, il a été remplacé par MySQL Administrator disponible gratuitement. Il est beaucoup plus complet et très simple d'utilisation. La phase d'installation est très rapide. Sélectionnez l'option Custom afin d'avoir la possibilité de modifier les éléments à installer, ainsi que le répertoire d'installation (d:\mysql dans mon cas). Copie des fichiers terminée, passons à la phase de configuration... 2.2. Configuration Par rapport aux anciennes versions, l'assistant d'installation vous propose de configurer MySQL pendant la phase d'installation. Fini le casse-tête post installation. Pour commencer, à la fin de l'installation, choisissez Configure the MySQL Server now. Un nouvel assistant, de configuration celui la, se lance. Choisissez l'option Detailled Configuration. Dans mon cas, étant donné que je ne dispose pas d'un serveur dédié, j'ai choisi Server Machine. Ensuite, pour des raisons de capacités de ma machine, j'ai choisi un système exclusivement non-transactionel (Non-Transactional Database Only). Choisissez ensuite le nombre de connexions concurrentes que vous allez accepter. Le choix par défaut (Decision Support (DSS)/OLAP) me parait largement suffisant pour le développement. Laissez ensuite Enable TCP/IP Networking activé sur le port par défaut (3306) ainsi que le Jeu de Caractères par défaut (Standard Character Set). Choisissez également d'installer MySQL en tant que Service
4 van 9 15/10/2006 10:50 Windows. Libre à vous de choisir son mode de démarrage. Dernière étape des choix cruciaux, le choix du mot de passe root. Pas besoin de vous préciser qu'un mot de passe du style toto ne sera quasiment d'aucune utilité, choisissez le assez complexe tout de même. Dernière étape de la configuration, appliquer tous ces choix. L'assistant vous détaille les étapes et une petite coche bleue doit apparaître sur les 4 étapes pour que ce soit OK. Finish, votre serveur MySQL est prêt. 2.3. Test final Un petit test à l'aide de la console pour vérifier que le serveur est bien disponible et que votre mot de passe est le bon :D Comme vous pouvez le constater, l'installation de MySQL est simple, rapide et complète. Nettement plus efficace que l'ancienne version de l'instaleur. Prochaine étape Php... 3. Installation de PHP 5 3.1. Installation manuelle Pour info, PHP, comme tous les autres modules, donne de meilleures performances en mode Isapi qu'en mode CGI, c'est pour cela que je ne détaillerai que l'installation en mode Isapi, mais sachez que l'installation ne diffère pas énormément en mode CGI. Le mode Isapi permet à IIS de charger PHP comme s'il faisait partie intégrante de IIS. Il est donc chargé en mémoire une seule fois. Le mode CGI, au contraire, force IIS à appeler une nouvelle instance de PHP à chaque demande de page PHP. Vous pouvez utiliser CGI si vos appels aux pages PHP sont rares. Je recommande cependant d'utiliser le mode Isapi dans tous les cas. L'installation de PHP5 est quasiment la même que celle de PHP4. Seul quelques petits changements sont à apporter à cause de IIS6. Pour commencer, téléchargez sur le site de PHP (www.php.net) la dernière version de PHP sans programme d'installation. Décompressez l'archive et copier son contenu dans d:\php5 par exemple, ça sera notre répertoire de travail avec PHP. Créez tout de suite le répertoire php5\sessions\, si ce n'est pas encore fait, il servira au stockage des fichiers de sessions. Copiez maintenant les fichiers suivant dans les répertoires indiqués : 1. php5isapi.dll et php5ts.dll dans c:\windows\system32\inetsrv 2. libmysqli.dll dans c:\windows\system32 3. php.ini-recommanded dans c:\windows\ en le renommant en php.ini
5 van 9 15/10/2006 10:50 1. php5isapi.dll est le fichier qui fait le «pont» entre IIS et le parser à proprement parler, php5ts.dll. 2. libmysql.dll permet d'utiliser MySQL avec PHP, ce qui, avec la version 5 n'est plus implémentée en standard. 3. php.ini est le fichier de configuration de PHP. Tous les fichiers dont nous avons besoin étant à leur place, passons à la configuration. Vous vous demandez certainement pourquoi je n'utilise pas l'installer qui est disponible en téléchargement. Trois bonnes raisons : la première est simple. Je n'ai jamais réussi à avoir un Php opérationnel avec un IIS en utilisant cet assistant. La deuxième est que vous êtes plus libre de vos choix de configuration. Il y en a une troisième, mais un peu moins importante, c'est le contenu, qui est beaucoup plus restreint que la version que je vous fais utiliser, regardez seulement la taille de l'archive ;). 3.2. Configuration La configuration de php se déroule en 2 étapes. La première porte sur Php lui-même et la seconde sur IIS pour intégrer Php. 3.2.1. php.ini Editez maintenant le fichier php.ini que vous venez de copier. Il y a quelques paramètres à vérifier et à modifier afin de correspondre à la configuration de votre machine. Error handling and logging error_reporting = E_ALL display_errors = on Php vous montrera ainsi toutes les erreurs qu'il rencontrera dans les scripts. Une fois votre serveur en production, mettez display_errors à off Data handling register_globals = Off Pour des raisons de sécurité, il est préférable de laisser ce paramète à Off. Paths and Directories extension_dir = "d:\php5\ext\" Renseignez ici le répertoire où Php trouvera ses extensions. Dynamic Extensions extension=php_mysqli.dll Comme nous configurons Php avec une version de MySQL supérieur à la 4.1.x, il doit utiliser l'extension MySQLi Session session.save_path = "d:\php5\sessions\" session.auto_start = 0
6 van 9 15/10/2006 10:50 Renseignez ici le répertoire de stockage des fichiers de sessions (par défaut gérées en mode fichier). auto_start est à faux, la majorité des hébergeurs le mettant à faux, il est préférable de le laisser ainsi. Configurons maintenant IIS pour y intégrer Php... 3.2.2. IIS Ouvrez une console d'administration des Services Web (Démarrer > Exécuter > inetmgr ou Démarrer > Programmes > Outils d'administration > Gestionnaire des services Internet (IIS)). Tout ce fera à partir d'ici où presque. Première étape, ajouter Php comme filtre Isapi. Pour cela, utilisez l'onglet approprié dans les propriétés du site web. Choisissez Ajouter. Donnez lui par exemple le nom Php5 en Isapi et sélectionnez php5isapi.dll que vous avez copié dans c:\windows\system32\inetsrv\ comme Exécutable. Voila une chose de faite. Maintenant, il faut associer l'extension.php à notre filtre Isapi. Dans l'onglet répertoire de base, choisissez Configuration puis Ajouter. L'exécutable est le même que pour le filtre (php5isapi.dll), l'extension est donc.php. Les autres options sont par défaut correctes. OK et le tour est joué, IIS sait maintenant que quand il rencontrera une page avec l'extension php, il devra utiliser php5isapi.dll pour la traiter Si vous désirez travailler principalement avec Php, vous devez préciser que index.php est la page par défaut du site Web (c'est comme ça dans la majorité des scripts php que vous récupérez sur Internet). Pour cela, allez dans l'onglet Documents, choisissez Ajouter et saisissez index.php. index.php apparaît alors, mais en bas de la liste. Pour être sur que IIS regarde d'abord les pages index.php, utilisez le bouton Monter jusqu'à le faire arriver en début de liste. Dernière étape, et sûrement la plus importante. Autoriser l'extension php. Toujours dans la console de management de IIS, faites un clic droit sur Extensions du Site Web et choisissez Ajouter une nouvelle extension de Service Web... Donnez lui le nom php5 par exemple et une fois de plus, la dernière, promis, sélectionnez php5isapi.dll comme Fichiers requis et sélectionnez l'option Définir le statut de l'extension à Autorisée. OK, php5 apparaît dans la
7 van 9 15/10/2006 10:50 liste avec une petite coche verte normalement. Vous pouvez maintenant fermer la console IIS. Lancer une commande MS-Dos (Exécuter > Cmd) et tapez-y iisreset pour relancer IIS et charger Php. Cette dernière étape, ainsi que la première, ne sont pas utiles pour installer php avec les versions de Windows 2000 Professionel et XP (respectivement 5 et 5.1) de IIS. C'est la seule différence entre les 2 types d'installation. 3.3. Test Pour tester si Php est bien installé et configuré, créez un fichier index.php contenant le code suivant à la racine de votre serveur Web : <?php phpinfo();?> Lancez votre navigateur et allez à la page suivante : http://localhost/. Vous devriez voir apparaitre toute la configuration de Php en détail. Si tel n'est pas le cas, reprenez toutes les étapes précédentes une par une. Dernière étape de cette installation, la mise en place de phpmyadmin... 4. Installation de phpmyadmin L'installation et la configuration de phpmyadmin sont des plus simples. Décompressez phpmyadmin dans le dossier de votre choix. Ensuite rendez-vous dans la console d'administration de IIS pour lui créer un répertoire virtuel. Pour installer phpmyadmin, j'ai décidé de le mettre dans un répertoire virtuel, afin qu'il n'encombre pas la racine de mon site Web. La première étape est donc de créer cet espace virtuel. L'intérêt de cette méthode est qu'il est possible de protéger phpmyadmin à l'aide du système d'authentification Windows et des droits NTFS. Création du répertoire virtuel phpmyadmin Pour activer la demande de login / mot de passe sur le dossier, et ainsi restreindre son accès, allez dans les propriétés du répertoire virtuel que nous venons de créer. Dans l'onglet Sécurité de répertoire, choisissez Authentification et contrôle d'accès. Désélectionnez Activer la connexion anonyme. Essayez maintenant d'accéder à phpmyadmin depuis le navigateur d'une autre machine pour vérifier. Pensez à configurer les droits NTFS sur le répertoire physique de phpmyadmin pour contrôler les accès. Editez ensuite le fichier de configuration de PHPMyAdmin : config.inc.php Plusieurs éléments sont à renseigner :
8 van 9 15/10/2006 10:50 URL pour accéder à MySQL $cfg['pmaabsoluteuri'] = 'http://server/phpmyadmin/'; Le $i du fichier de configuration vous permet de disposer d'autant de configurations que vous le désirez. Ainsi pour chaque configuration, ces paramètres sont à modifier. Serveur où se situe la base MySQL Nom ou adresse IP du serveur $cfg['servers'][$i]['host'] = 'localhost'; L'extension que vous utilisez avec PHP (voir plus haut) pour accéder à vos bases MySQL $cfg['servers'][$i]['extension'] = 'mysqli'; Utilisateur et mot de passe que l'utilisateur utilise pour se connecter $cfg['servers'][$i]['user'] = 'user'; $cfg['servers'][$i]['password'] = '*********'; Il se peut que vous ayez un vilain message rouge en bas de la page principale de phpmyadmin vous indiquant que l'extension PHP mbstring n'a pu être localisée. Qu'à cela ne tienne, ajoutez la par l'intermédiare du fichier de configuration de Php, dans la section Dynamic Extension, il suffit de décommenter la ligne extension=php_mbstring.dll(suppression du ;). Attention de ne pas oublier de relancer IIS pour prendre en compte ces modifications. Pour fonctionner au mieux, phpmyadmin a besoin de garder certaines informations, bien sur dans une base de données. Créez une base de données que vous nomerez phpmyadmin. Base de données de phpmyadmin $cfg['servers'][$i]['pmadb'] = 'phpmyadmin'; Précisez également le nom des tables de cette base utilisées pour stocker ces données: Tables de phpmyadmin $cfg['servers'][$i]['bookmarktable'] = 'pma_bookmark'; $cfg['servers'][$i]['relation'] = 'pma_relation'; $cfg['servers'][$i]['table_info'] = 'pma_table_info'; $cfg['servers'][$i]['table_coords'] = 'pma_table_coords'; $cfg['servers'][$i]['pdf_pages'] = 'pma_pdf_pages'; $cfg['servers'][$i]['column_info'] = 'pma_column_info'; $cfg['servers'][$i]['history'] = 'pma_history'; Après avoir créé la base de données phpmyadmin, créez maintenant les tables précédentes à l'aide du script contenu dans ce fichier : CreateTables.sql La création des tables peut se faire à partir de phpmyadmin, l'absence de celles-ci n'affectant en rien son fonctionnement. Conclusion Comme vous pouvez le constater, l'installation est simple et rapide. En quelques instants vous disposez d'un serveur Web basé sur Php / MySQL avec en prime une interface d'administration de vos bases de données agréable et efficace. Mes autres articles Les évènements en.net Création de contrôles avancés pour Visual Studio 2005 Les thèmes avec ASP.Net v2
9 van 9 15/10/2006 10:50 PHP, MySQL et PhpMyAdmin sur 2003 Server Managed DirectX Configurer un FTP sous IIS Ce qui ne devrait plus tarder Ce qui va arriver A ne pas manquer Les sources.net FAQ.NET Tutoriels.NET Copyright 2005 Olivier DELMOTTE. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.