|
IIS 6 - PHP5 - MySQL 4.1 - phpMyAdmin 2.6
Publié le lundi 18 avril 2005, dernière modification le lundi 28 janvier 2008
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
Pour réaliser ce tutoriel, je me suis appuyé sur les versions suivantes :
Warning |
Pour des raisons de sécurité, il est recommandé de déplacer le répertoire par défaut de votre racine Web (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.
Idea |
|
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.
2.1. Installation
Info |
|
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 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
Info |
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 :
-
php5isapi.dll et php5ts.dll dans c:\windows\system32\inetsrv
-
libmysqli.dll dans c:\windows\system32
-
php.ini-recommanded dans c:\windows\ en le renommant en php.ini
-
php5isapi.dll est le fichier qui fait le « pont » entre IIS et le parser à proprement parler, php5ts.dll.
-
libmysql.dll permet d'utiliser MySQL avec PHP, ce qui, avec la version 5 n'est plus implémentée en standard.
-
php.ini est le fichier de configuration de PHP.
Tous les fichiers dont nous avons besoin étant à leur place, passons à la configuration.
Info |
|
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
|
Copier le code
|
1 error_reporting = E_ALL
2 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
Pour des raisons de sécurité, il est préférable de laisser ce paramète à Off.
Renseignez ici le répertoire où Php trouvera ses extensions.
Comme nous configurons Php avec une version de MySQL supérieur à la 4.1.x, il doit utiliser l'extension MySQL
i
|
Session
|
Copier le code
|
1 session.save_path = "d:\php5\sessions\"
2 session.auto_start = 0
|
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 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.
Info |
|
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 :
Lancez votre navigateur et allez à la page suivante :
. 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.
Idea |
|
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 :
|
URL pour accéder à MySQL
|
Copier le code
|
1 $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
|
Copier le code
|
1 $cfg['Servers'][$i]['host'] = 'localhost';
|
|
L'extension que vous utilisez avec PHP (voir plus haut) pour accéder à vos bases MySQL
|
Copier le code
|
1 $cfg['Servers'][$i]['extension'] = 'mysqli';
|
|
Utilisateur et mot de passe que l'utilisateur utilise pour se connecter
|
Copier le code
|
1 $cfg['Servers'][$i]['user'] = 'user';
2 $cfg['Servers'][$i]['password'] = '*********';
|
Info |
|
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
|
Copier le code
|
1 $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
|
Copier le code
|
1 $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
2 $cfg['Servers'][$i]['relation'] = 'pma_relation';
3 $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
4 $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
5 $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
6 $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
7 $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
Idea |
|
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.
|