Pour ceux qui veulent faire vite et avec une sécurité qu'on ne maîtrise pas, il y a easyPHP. Pour les autres, il y a cet article.

Connaître son système

Votre Windows est-il 32 bits ou 64 bits? Pour le savoir: Sur le bureau: Clic doit sur Ordinateur > Propriétés (ou alors: Panneau de configuration > Système) x64

Windows 64bits (système dit "x64"), contrairement à Windows 32bits (système dit "x86") permet d'adresser les variables avec des références de longueur 64 bits. L'avantage est un gain de performances pour les applications utilisant des données massives, en particulier les bases de données. C'est donc intéressant pour MySQL. On peut faire fonctionner des logiciels 32bits sur Windows 64bits. On ne peut pas faire fonctionner des logiciels 64bits sur Windows 32bits.

Installer Apache

Apache 32bits ou 64bits ?

Il n'y a pas de version officielle d'Apache 64bits, la question ne se pose donc pas. Pour les bidouilleurs, il existe bien une version non officielle d'Apache 64bits. Ça ne présente presque pas d'intérêt et c'est à vos risques et périls.

Apache: quel numéro de version?

Téléchargez la dernière version STABLE pour vous éviter tout ennui, à moins que vous n'ayez absolument besoin d'une fonctionnalité d'une version non stable (alpha ou bêta). Ça se télécharge ici. Cliquez sur la dernière version stable (2.2.17 à ce jour, et non pas 2.30.10-alpha).

Apache: avec ou sans SSL?

Téléchargez au choix l'un ou l'autre des fichiers:

  • Win32 Binary without crypto (no mod_ssl) (MSI Installer)
  • Win32 Binary including OpenSSL 0.9.8o (MSI Installer)

Le deuxième fichier permet d'utiliser SSL (adresses cryptées et authentifiées commençant par https://). C'est utile que si vous prévoyez de l'utiliser, par exemple pour un site d'e-commerce ou pour protéger la phase d'authentification des utilisateurs de votre site (c'est très rarement mis en oeuvre).

Il n'y a plus qu'à installer Apache! Débrouillez-vous =)

Apache vs Skype

Apache et Skype ne s'entendent pas très bien : Skype a la facheuse tendance à piquer les ports 80 et 443. Skype apache

Empêcher l'accès à Apache depuis Internet

Pour les environnements de développement, il faut empêcher toute connexion à Apache depuis Internet.

Soit vous configurez ça dans Apache:

Ouvrez [Répertorie d'installation d'apache]/conf/httpd.cong (il vous faut parfois ouvrir votre éditeur de texte avec les droits Administrateurs sous Windows 7). Cherchez la ligne "Listen" au début. Remplacez par "Listen 127.0.0.1:80". Votre serveur n'écoutera pas les requêtes qui proviennent du réseau.

Soit vous utilisez le pare-feux Windows

Assurez-vous qu'Apache n'a accès ni au réseau Privé ni au réseau Public (Windows 7).

Note: La fonction NAT de votre box Internet, si elle est activée, fait déjà office de pare-feu, mais c'est pas le top.

Installer PHP

PHP 32bits ou 64bits ?

Il n'y a pas de version officielle de PHP 64bits pour Windows (même si ça apparait dans la liste déroulante...). Ca règle le problème.

PHP: quelle version? (VC6 ou VC9?)

Liste bien le texte sur la page de téléchargement: http://windows.php.net/download/

If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP

If you are using PHP with IIS you should use the VC9 versions of PHP

VC6 Versions are compiled with the legacy Visual Studio 6 compiler

VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C Runtime (x86) or the Microsoft 2008 C Runtime (x64) installed

Do NOT use VC9 version with apache.org binaries

  • IIS: Version VC9 de préférence.
  • Apache: Version VC6 OBLIGATOIRE.

PHP: Thread-safe ou non thread-safe?

C'est une grande question auquel en fait peu de gens ont la réponse. Quelques discussions sur le net:

Le plus simple et le plus pratiqué est d'installer PHP comme module Apache.

  • VC6 Thread-Safe: Pour installer PHP comme un Module Apache
  • VC6 non Thread-Safe: Pour installer PHP en mode FastCGI (ou en mode CGI tout court mais c'est déconseillé)

Configurer httpd.conf pour PHP (répertorie PHP supposé ici: C:\php

# A rajouter dans httpd.conf:
PHPIniDir "C:/php/"
LoadModule php5_module "C:/php/php5apache2_2.dll"
AddHandler application/x-httpd-php .php
# A modifier au bon endroit:
DirectoryIndex index.html index.php

Installer MySQL

Quelle version?

La page de téléchargement s'adapte à votre version de Windows: http://dev.mysql.com/downloads/mysql/

Préférez la version MSI plutôt que EXE, plus facile à installer. Préférez aussi la version 64bit à la version 32bit, si votre Windows en 64bit.

Sécuriser MySQL

Pour ne permettre qu'un accès local, éditez [Dossier d'installation de MySQL]/my.ini et rajoutez la ligne:

bind-address=127.0.0.1

Autres bonnes pratiques de sécurisation

Faites tourner Apache et MySQL dans un processus sans droits administrateur pour augmenter la sécurité.

http://httpd.apache.org/docs/2.2/mi...

http://dev.mysql.com/doc/refman/5.0...

S'inscrire aux notifications de mise à jour

Etape importante peu suivie: Inscivez-vous aux mailing list d'Apache, PHP et MySQL pour être prévenu des mises à jour!

Les hacks viennent avant tout de défauts de comptes mal sécurisés (absence de mots de passe) ou de versions pas mises à jour. Recevoir les bulletins de sécurité est une nécessité.

http://httpd.apache.org/lists.html

http://php.net/mailing-lists.php

http://lists.mysql.com/announce