Vous êtes sur la page 1sur 11

Atelier : Installation d'un serveur

Apache, PHP, MySQL, phpMyAdmin sous Windows.

Sommaire...
Désinstallation des versions existantes (sauf si vous êtes sur un
Virtual PC propre)
Installation de Apache HTTP Server
Installation de PHP
Vérification du bon fonctionnement du module PHP
Installation de MySQL
Installation à la main
Installation automatisée avec l'installeur
Intégration de MySQL à PHP
Intégration de MySQL à PHP : vérification du bon fonctionnement
Installation de PHPMyAdmin
Faire de index.php un des fichiers par défaut
Fin de l'atelier

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.
Cet atelier est basé sur ces versions

Apache 2.2.17 (http://httpd.apache.org/download.cgi);


PHP 5.3.3 (http://www.php.net/downloads.php) ;
MySQL 5.1.52 (http://dev.mysql.com/downloads/).

1
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 :
tous les php.ini (fichier de configuration de PHP) ;
tous les my.ini (fichier de configuration de MySQL).

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 :

Remarque sur...Les droits d'utilisateurs requis


Pour installer certains des composants qui suivent, il faut être administrateur local
de la machine.

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
2
votre serveur).

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 arrêté


Serveur Apache lancé
problème... Avez-vous ouvert
tout va bien
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 :

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

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

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

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
5
\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.

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 :
6
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.

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.

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

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.

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

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


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

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

10
ça marche ça marche pas

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.

11