Atelier : Installation d'un serveur
Apache, PHP, MySQL, phpMyAdmin sous Windows.
Réponse AJAX
Objectif de l'atelier.
- Savoir installer un serveur Internet sous Windows, avec Apache, PHP
et MySQL, sans passer par des packs tout fait comme EasyPHP ou WAMP.
- Avantage : on peut installer les toutes dernières versions
de chacun des trois logiciel, contrairement à EasyPHP qui est
une install qui évolue rarement et renferme de vieilles versions
de chacun des logiciels.
- Au 8 novembre 2010, les versions disponibles sont (cet atelier est basé sur ces versions) :
Comme vous le constatez, on va installer des versions
plus récentes
que celles disponibles dans les derniers packs
EasyPHP
ou
WAMP.
mises à jour 23 sept 08 : ajout de la gestion du index.php, plus de précision sur la désinstallation de l'existant.
mises à jour 8 novembre 2010 : nouvelles versions disponibles, renommé "Apache" en "Apache HTTP Server", transformation du TP au nouveau format CSS et ajout des commentaires.
Désinstallation des versions existantes
(sauf si vous êtes sur un Virtual PC propre)
Il est conseillé de réaliser cet atelier dans une version virtualisée de Windows (par exemple, sous Virtual PC). En effet sur un ordinateur, et de surcroît ceux du lycée, il y a de bonnes chances qu'un serveur Apache soit déjà opérationnel. Si vous n'avez pas le choix, travaillez sur votre machine physique en suivant les étapes de désintallation décrite dans ce paragraphe :
- Pour ne pas détruire le travail (sites PHP et bases MySQL) de vos
camarades, créez un répertoire C:\sauvegardes
www et mysql. Ce qu'il faut sauvegarder dedans est indiqué
dans le point suivant.
- Voici les étapes à suivre pour désinstaller
les versions existantes :
- Lancez le gestionnaire des tâches de Windows et terminez les processus
(s'ils existent) :wamp.exe, apachemonitor.exe,
httpd.exe, mysqld-nt.exe
(qui correspondent à Apache et à MySQL).
- Lancez le gestionnaire de service (grâce à Démarrer
Exécuter
services.msc)
et mettez le type de démarrage à désactivé
pour les services Apache et MySQL
(pour que Windows n'essaie pas de les relancer au prochain redémarrage).
- détruisez C:\Program Files\EasyPHP
(après avoir sauvegardé EasyPHP/htdocs)
- détruisez C:\Program Files\Apache S...
(après avoir sauvegardé Apache.../Apache2.2/htdocs)
- détruisez C:\wamp (après
avoir sauvegardé wamp/www et
wamp/mysql/data)
- détruisez C:\Program Files\PHP
- détruisez C:\mysql (après
avoir sauvegardé mysql/data)
-
Attention ! Il reste peut-être des traces, notamment des fichiers
de configuration PHP ou MySQL dans
C:\.
Ces traces m'ont fait perdre beaucoup de temps auparavant ! Faites une
recherche sur l'ensemble du disque système (en général
C:) pour supprimer :
Remarque : si ces logiciels sont en cours d'exécution,
vous devrez les arrêter afin de pouvoir les désinstaller. Dans
ce cas, un message explicite vous en avertira. On n'a pas le droit de supprimer
un fichier exécutable en cours d'exécution, cela génère
une erreur du type :
Installation de Apache HTTP Server
Remarque sur...Les droits d'utilisateurs requis
Pour installer certains des composants qui suivent, il faut être
administrateur local de la machine. Normalement, vos comptes d'utilisateur
au lycée ont les droits d'administrateurs locaux.
- Téléchargez la dernière version de Apache HTTP Server (httpd) sur http://www.apache.org
(ou récupérez-la dans le répertoire ressources
sur votre serveur). Remarque :
- La version la plus récente (8 nov 2010) est la 2.2.17.
- Vous devez télécharger un "binary release", c'est à dire une version installable (sinon vous risquez de télécharger un code source en C++, que vous devrez recompiler). L'extension est en général .msi (pour Windows).
- Vous pouvez télécharger la version sans prise en charge du SSL (no-ssl).
- Lancez l'installation en ouvrant le fichier téléchargé, acceptez le contrat de licence.
- Ici, remplissez (quoi que vous mettiez, le serveur marchera quand même, c'est quasiment à titre informatif) :
- Network Domain : aubanel.com.
- Server Name : le nom de votre machine (par exemple S354P01)
- Administrator's Email Address : votre adresse électronique pour que Apache vous alerte en cas de problème.
- Installer pour tous les utilisateurs, sur le port 80, en tant que service. Remarque : vous pourriez changez cela pour éviter de rentrer en conflit avec un autre serveur Internet (Apache ou IIS) déjà installé sur cette machine.

- Validez jusqu'à ce que l'installation soit terminée.
- Vous pouvez vérifier, dans le Systray,
que Apache HTTP Server est bien lancé, grâce
à la présence de l'icône suivant :
|
|
|
Serveur Apache lancé
tout va bien
|
|
Serveur Apache arrêté
problème... Avez-vous ouvert
une session administrateur ?
|
- Vérifiez également que Apache HTTP Server
fonctionne correctement en ouvrant l'adresse suivante dans un navigateur :
http://localhost/ (ou http://127.0.0.1/).
La page suivante devrait s'afficher :
- Par la suite, vous pourrez avoir l'impression que Apache HTTP Server plante lorsque vous essayer
de le relancer. C'est parce qu'il tourne déjà, en tant que service
! Dans le doute, refaites de test ci-dessus pour vérifier qu'il est
bien lancé. Voici l'erreur que vous obtenez si vous relancer Apache HTTP Server alors qu'il est déjà en train de tourner :
Installation de PHP
Téléchargez
la dernière version de PHP sur http://www.php.net
(ou récupérez-la dans le répertoire ressources
sur votre serveur), rubrique "Downloads", "Windows
binaries", "PHP 5.x.x installer".
- Attention : si vous téléchargez la version 5.3,
préférez la sous-version VC6, thread
safe. La version 5.2.11 ne pose pas d'ambiguïté.
- Lancez l'installation.
- IMPORTANT : quand vous rencontre la fenêtre suivante, n'oubliez pas
de préciser la bonne version du serveur Apache (à ce jour :
Apache 2.2.x Module).
- IMPORTANT : dans la fenêtre suivante, vous devez choisir le répertoire
de configuration de Apache. Si vous avez fait une installation par défaut
de Apache, choisissez : C:\Program Files\Apache Software Foundation\Apache2.2\conf\.

- Dans la fenêtre Choose Items to Install, ajoutez
l'extension MySQL (selon la version de PHP, elle peut être
activée par défaut), et éventuellement la librairie graphique
GD2 pour le traitement d'images, c'est quelque chose qu'on
utilisera cette année. Lors de mes derniers tests (2010, PHP 5.3.3),
ces deux options étaient cochées par défaut.
- Terminez l'installation.
PHP,
en s'installant, a modifié les fichiers de configuration de Apache
HTTP Server. Mais Apache HTTP Server n'en tiendra
compte que lorsqu'il sera démarré, ce que vous devez faire maintenant
en lançant la commande Restart à partir de
l'icône d'Apache dans le Systray.
Remarque : lors de mon dernier test (2010), j'ai du redémarrer Windows
car Apache refusait de redémarrer).
Remarque : si Apache HTTP Server refuse absolument de redémarrer, supprimer
proprement PHP et revenez à une version précédente :
5.2.14.
Vérification du bon fonctionnement
du module PHP
Normalement,
PHP fonctionne. On va faire une petite vérification :
- Dans le bloc-note, tapez les commandes suivantes :
<?php
phpinfo();
?>
- Sauvez-le sous C:\Program Files\Apache Software
Foundation\Apache2.2\htdocs\info.php (qui est en fait la racine
par défaut des sites Web sur notre serveur Internet).
- Dans le navigateur, testez ce fichier en ouvrant l'adresse suivante : http://localhost/info.php.
Si Apache et PHP
fonctionnent, vous obtenez la page ci-contre.
-
Erreurs fréquentes :
- Si Apache vous dis qu'il ne trouve pas le fichier :commencez par vérifier que le bloc-note ne vous ai pas rajouté
une double extension (info.php.txt au
lieu de info.php).
- Si le code source (tel que vous l'avez tapé ci-dessus) se réaffiche tel quel, c'est que vous avez mal installé PHP. Vous avez probablement sauté le point important "choisir le répertoire
de configuration de Apache". Désinstallez PHP puis réinstallez-le.
Installation de MySQL
Installation à la main
L'installeur nous a posé de nombreux problème, c'est pourquoi je mets cette vieille méthode "à la main".
Eventuellement vous pouvez testez l'étape suivant, si ça marche du premier coup tant mieux. Sinon désinstallez MySQL et suivez cette étape.
Pour télécharger MySQL :
aller sur http://www.mysql.com,
rubrique Downloads, MySQL
Community Server, MySQL 5.1 (ou plus récent), Windows
Downloads, Without Installer.
Décompressez l'archive dans C:\,
puis renommez le dossier c:\mysql-5.1.xx-win32
en c:\mysql.
Vérifiez que vous arrivez à lancer le serveur
MySQL :
- ouvrez une fenêtre MS-DOS
;
- placez-vous dans le bon répertoire avec CD
C:\mysql\bin ;
- tapez la commande mysqld
--console
- si cela marche, la dernière ligne doit ressembler à :
mysqld:
ready for connections
Version: '5.x.xx-community-nt' socket: '' port:
3306 MySQL Community Edition (GPL)
Vérifiez que vous arrivez à arrêter le serveur
MySQL :
- ouvrez une autre fenêtre MS-DOS
;
- placez-vous dans le bon répertoire avec CD
C:\mysql\bin ;
- tapez la commande mysqladmin
-u root shutdown
- si cela marche, vous reprenez la main dans les deux fenêtres MS-DOS.
Maintenant, installez MySQL en tant que
service :
- Dans une des deux fenêtres MS-DOS
(vous pouvez fermer l'autre fenêtre), tapez la commande :
mysqld
--install
ou, dans les plus vieilles versions :
mysqld-nt
--install
- Si cela marche, mysqld répond
:
Service
sucessfully installed.
- Le service démarrera automatiquement au prochain démarrage
de la machine. Mais vous allez le démarrer immédiatement en
allant dans Panneau de configuration,
Outils d'administration, Services. Trouvez
le service nommé MySQL et démarrez-le.
Fermez la fenêtre MS-DOS.
Installation automatisée avec l'installeur
- Pour télécharger MySQL : allez sur http://www.mysql.com,
rubrique Downloads, MySQL Community Server, MySQL
5.1.52 (ou plus récent), Windows (x86, 32-bit), MSI
Installer - Essentials - Recommended. Remarquez : vous n'êtes
pas obligé de vous enregistrer, cliquez en bas de page sur No Thanks,
just take me to downloads !
- Lancez l'installation :
- Choisissez Typical, terminez l'installation et lancez
la configuration.
- A ce stade, choisissez Standard Configuration.
- MySQL va être installé comme service (lancement même
lorsqu'aucun utilisateur ouvre une session). Suivant.
- Entre comme mot de passe root (important : ce mot de passe
va resservir dans 2 paragraphes). Vous pouvez cocher Enable root access
from remote ... si vous souhaitez qu'un pirate puisse exploser votre serveur
à partir de l'extérieur.

- Si tout s'est bien passsé, vous obtenez cette fenêtre :
Si vous obtenez une erreur (connexion impossible avec root), alors
installez-le selon la méthode précédente.
Intégration de MySQL à PHP
- A priori, il n'y a rien à faire si vous utilisez la version 5.3 (ou plus récent) de
PHP. Pour les version précédentes de PHP, suivez les étapes suivantes :
- Copiez la librairie C:\Program Files\PHP\libmysql.dll
vers C:\WINDOWS\system32 (ou C:\winnt\system32).
- Redémarrez le serveur Apache.
Intégration de MySQL à PHP :
vérification du bon fonctionnement
- Dans le bloc-note, tapez les commandes suivantes :
Tests MySQL<br>
<?php
mysql_connect("localhost", "root", "root")
or die("Erreur de connexion au serveur MySQL");
echo "Tout est ok...";
?>
(remarquez que root
correspond au mot de passe que vous avez tapé lors de la configuration
de MySQL, il peut être vide si vous avez utilisé la première
méthode d'installation de MySQL - sans l'installeur).
- Sauvez-le sous C:\Program Files\Apache Software
Foundation\Apache2.2\htdocs\testmysql.php.
- Testez ce fichier dans un navigateur, en ouvrant l'adresse : http://localhost/testmysql.php.
- Si le texte suivant s'affiche, c'est que tout est ok :
Tests MySQL
Tout est ok...
- L'erreur suivante vous indique que le serveur
MySQL est éteint (il y a donc un problème à
l'étape 4) ou que vous avez tapé le mauvais mot de passe root :
Tests MySQL
Erreur de connexion au serveur MySQL
.
- Le résultat suivant vous indique que MySQL a mal été intégré à PHP. Réinstallez MySQL en prenant soin à bien paramétrer chaque étape.
Tests MySQL
- Si ça ne fonctionne pas, commencez par vérifier que le
bloc-note ne vous ai pas rajouté une double extension (testmysql.php.txt
au lieu de testmysql.php).
Installation de PHPMyAdmin
Pour
installer quelque chose d'aussi complet que les suites logicielles EasyPHP
ou WAMP, il nous reste à installer PHPMyAdmin
(gestionnaire graphique de serveur MySQL).
- Rendez-vous à l'adresse http://www.phpmyadmin.net/, Download 3.3.8 (ou plus récent), phpMyAdmin-3.3.8-all-languages.zip.
- téléchargez (ou trouvez-le dans votre répertoire ressources
sur le serveur).
- phpMyAdmin est un site Web ! Vous devez le décompresser dans
C:\Program Files\Apache Software Foundation\Apache2.2\htdocs.
Changez ensuite le nom de la racine : phpmyadmin
(au lieu de phpMyAdmin-3.3.8-all-languages)
- Dans le navigateur, ouvrez l'URL http://127.0.0.1/phpmyadmin/index.php.
Après authentification, vous reconnaissez l'interface de gestion des bases de données MySQL.
Faire de index.php un des fichiers par défaut
- A l'étape précédente, vous avez tapé l'URL http://127.0.0.1/phpmyadmin/index.php alors que vous auriez simplement préférer taper http://127.0.0.1/phpmyadmin.
-
C'est parce que par défaut, lorsqu'on donne entre un répertoire
dans la barre d'adresse (au lieu d'entrer un fichier exact), Apache HTTP Server va chercher la page par défaut
index.htm pour l'afficher. S'il ne la
trouve pas, il liste le répertoire, ce qui donne ceci :
- Vous allez réparer ça en suivant ces étapes :
- cherchez le fichier de configuration de Apache HTTP Server : httpd.conf ;
- cherchez l'entrée DirectoryIndex (qui décrit ce qui se passe si l'URL est un répertoire au lieu d'être un fichier).
- ajoutez index.php et index.htm à cette
liste, ce qui doit donner :
DirectoryIndex index.html index.html index.php
- Redémarrez Apache.
- Vérifiez que cela marche en tapant l'adresse suivante : http://127.0.0.1/phpmyadmin
(Apache devrait lancer phpMyAdmin, au lieu
d'afficher le contenu du répertoire).
 |
|
ça marche
|
ça marche pas
|
Fin de l'atelier
Vous avez maintenant installé un serveur Internet.
Ce serveur est prêt à recevoir des sites
dans sa racine Web locale : C:\Program Files\Apache Group\Apache2\htdocs\ (un atelier ultérieur montrera comment changer ces répertoires grâce à documentRoot, aux Alias et aux VirtualHost).
Apache HTTP Server et MySQL
ont été installés comme des services, késako ? Un service n'a pas besoin qu'on ouvre de session utilisateur pour se lancer. Dès que la machine
est allumée et que Windows est sur
la fenêtre d'ouverture de session, les services sont lancés. Alors que pour une application traditionnelle (que vous mettez dans le menu Démarrer/Programmes/Démarrage), c'est uniquement lorsqu'un utilisateur ouvre sa session que le programme se lance.
Vous
pouvez personnaliser ce serveur Internet en modifiant les paramétrages
:
- Pour Apache : C:\Program Files\Apache Group\Apache2.2\conf\httpd.conf.
- Pour PHP : C:\Program Files\PHP\php.ini.
- Pour MySQL : C:\Program Files\MySQL\MySQL Server 5.1\my.ini.