• Apache 2.2.8 ( incluant les fichiers necessaires au fonctionnement d’OpenSsl )
http://mirrors.isc.org/pub/apache/httpd ... 0.9.8g.msi
• PHP 5.2.5
http://www.php.net/get/php-5.2.5-Win32. ... m/a/mirror
• MySql Server 5.1
http://www.01net.com/outils/telecharger ... /3129.html
• PhpMyAdmin 2.11.5 ( Telecharger " all-languages.zip " )
http://www.phpmyadmin.net/home_page/downloads.php
• OpenSsl 0.9.8g
http://www.mediafire.com/?saj0nl7tjzc
• Webalizer 2.01.10
http://archive.mgm51.com/mirrors/webali ... 32-bin.zip
• eGroupWare 1.4.002 ( ou SugarCRM, Xoops, Phenix Agenda, Joomla … )
Le Serveur Web est composé d’Apache, PHP, MySql, PhpMyAdmin, OpenSsl, Webalizer, eGroupWare, et est installé sur Windows Server 2003 ( ou XP ). eGroupWare est un portail qui regroupe les contacts, rendez-vous, tâches … de chaque utilisateur afin de les partager, mais il en existe d’autres comme SugarCRM, Xoops, Phenix Agenda, Joomla. Quand à Webalizer, il permet de génerer un rapport qui fournit différentes statistiques sur le serveur.
Dans un premier temps, créer un dossier " www " à la racine du disque dur, le chemin d’accès sera donc "C:\www\". C’est ici que tous les fichiers du serveur se trouveront.
Dans ce dossier, créer un dossier "cle_ssl" qui contiendra les fichiers en rapport avec la Sécurisation SSL, un dossier "site" où seront placés les fichiers des différents sites.
Se procurer les fichiers d’installation pour Apache, MySql, eGroupWare et les dossiers compressés pour PHP, OpenSsl, PhpMyAdmin, et Webalizer. ( Voir liens ci dessus )
Installer eGroupWare, Apache, MySql, et decomprésser PHP, OpenSsl, PhpMyAdmin, Webalizer dans le dossier "www".
Modifier la variable d’environnement path,
-> Clic droit sur le Poste de Travail
-> Onglet Avancé
-> Cliquer sur Variables d'environnement
-> Dans la partie Variables systeme
-> Double cliquer sur path
-> et y ajouter :
C:\www\php ; C:\www\openssl
Redemarrer le PC, pour etre sur que Windows prenne en compte les modifications de la variable path
Modifier le fichier « httpd.conf », accessible dans C:\www\Apache\conf\ :
( ServerName correspond au nom de votre PC, pour le connaître :
-> Clic Droit sur le Poste de Travail
-> Onglet Nom de l’ordinateur
-> Il se trouve à coté de Nom complet de l’ordinateur )
- Code: Tout sélectionner
ServerName nom-machine
Document Root "C:/www/site"
…
<Directory "C:/www/site">
-- à ajouter en dessous des lignes Load Modules
- Code: Tout sélectionner
LoadModule php5_module "C:/www/Php/php5apache2_2.dll"
-- à ajouter a la fin du fichier pour mieux s’y retrouver
- Code: Tout sélectionner
AddType application / x-httpd-php .php
PHPIniDir "C:/WINDOWS"
Alias /pma/ "C:/www/phpmyadmin/"
<Directory "C:/www/phpmyadmin/">
Options Indexes FollowSymLinks
Allow Override None
Order Allow, Deny
Allow from All
</Directory>
Redemarrer le serveur Apache pour qu'il prenne en compte les modifications apportées au fichier httpd.conf
Modifier le fichier php.ini-recommended, qui se trouve dans C:\www\php, le renommer en php.ini, et le placer dans C:\WINDOWS ( Ne pas supprimer le fichier php.ini-recommended ). Chercher Extension_dir et modifier comme ceci :
- Code: Tout sélectionner
Extension_dir = "C:/www/php/ext"
Pour information, le dossier "ext" contient les extensions par défaut de PHP.
Décommenter les lignes ( enlever les ; ) :
- Code: Tout sélectionner
extension=php_mysql.dll
extension=php_mysqli.dll
Pour tester PHP, créer un fichier info.php dont le code à saisir est :
- Code: Tout sélectionner
<?php
phpinfo( );
?>
Placer ce fichier dans le dossier "site" ( C:\www\site\ ), se connecter ensuite avec un navigateur à l’adresse :
- Code: Tout sélectionner
http://localhost/info.php ( localhost = 127.0.0.1 )
Si tout fonctionne normalement, une description complète du serveur devrait s’afficher.
Tester PhpMyAdmin, en se connectant avec un navigateur, à l’adresse :
- Code: Tout sélectionner
http://localhost/pma/
PhpMyAdmin affiche un message d’erreur disant qu’il ne peut pas se connecter à MySql, pour remédier a cela, éditer le fichier config.default.php qui se trouve dans phpmyadmin\librairies, ajouter le mot de passe root de MySql :
- Code: Tout sélectionner
$cfg['Servers'][$i]['password'] = 'xxxx';
-- xxxx étant le mot de passe root que vous avez choisi à l’installation de MySql
Ensuite, l’enregistrer avec le nom config.inc.php dans le dossier phpmyadmin, ce qui a pour effet de créer un nouveau fichier, sans écraser le fichier config.default.php . Relancer PhpMyAdmin, et maintenant il donne accès aux bases de données MySql.
Configurer l’accès à eGroupWare, ( ajouter à la fin ) :
- Code: Tout sélectionner
Alias /egw/ "C:/www/egroupware/"
<Directory "C:/www/egroupware/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from All
</Directory>
Mettre en place la sécurisation des communications ( SSL ) :
Créer un fichier batch appelé SSL.bat, dans le dossier cle_ssl, regroupant les commandes qui permettent de créer le certificat, la clé privée, d’indiquer l’algorithme de cryptage RSA, de générer la clé, de générer le certificat et de le signer.
Contenu de SSL.bat :
- Code: Tout sélectionner
@echo off
openssl req -config openssl.cnf -new -out nom-machine.csr
pause && cls
openssl rsa -in privkey.pem -out nom-machine.key
openssl x509 -in nom-machine.csr -out nom-machine.cert -req -signkey nom-machine.key -days 365
openssl x509 -in nom-machine.cert -out nom-machine.der.crt -outform DER
pause && exit
Remplacer nom-machine par le nom de votre serveur, qui est également le nom de votre PC. Une fois le fichier prêt, l’executer et fournir les informations qui vous serons demandées.
A ce stade, les fichiers necessaires au fonctionnement de SSL, ont été créés dans le dossier cle_ssl. Pour des raisons de sécurité, supprimer le fichier .rnd .
Afin d’être sûr que le module SSL puissent fonctionner, copier libeay32.dll, lissl32.dll et ssleay32.dll dans C:\WINDOWS\System32. Ceci est optionnel, car la variable path indique à Windows où se trouve les dll nécessaires.
Il reste quelques modifications à apporter au fichier httpd.conf :
Listen 443 -- à ajouter en dessous de Listen 80
- Code: Tout sélectionner
LoadModule ssl_module modules/mod_ssl.so
<ifModule ssl_module>
SSLMutex default
SSLSessionCache none
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
Addtype application/x-x509-ca-cert .crt .cert
</ifModule>
<VirtualHost nom-machine:443>
DocumentRoot "C:/www/egroupware"
<Directory "C:/www/egroupware/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from All
</Directory>
SSLEngine On
SSLCertificateFile "C:/www/cle_ssl/nom-machine.cert"
SSLCertificateKeyFile "C:/www/cle_ssl/nom-machine.key"
</VirtualHost>
Pour tester le module SSL, se connecter avec un navigateur à l’adresse :
- Code: Tout sélectionner
https://nom-machine
Un fenêtre s’affiche et demande d’accepter le certificat. Ensuite, la page de connexion sécurisée à eGroupWare s’affiche. Ce qui veut dire que lorsqu’un utilisateur entre son mot de passe, la communication avec le serveur est cryptée.
Pour faciliter la connexion au serveur pour les utilisateurs du réseaux, et également pour sécuriser toutes les connexions distantes, il est possible de mettre en place une redirection du port 80 ( http ) vers le port 443 ( SSL ). Pour cela il faut modifier le fichier « httpd.conf », en ajoutant un serveur virtuel ( virtualhost ) qui s’occupera de la redirection de port :
- Code: Tout sélectionner
<VirtualHost nom-machine:80>
ServerName nom-machine
Redirect permanent / https://nom-machine/
</VirtualHost>
"nom-machine" correspond au nom que vous avez mis a la ligne "ServerName" (qui lui meme correspond au nom du pc - voir plus haut -)
Pensez à redemarrer le serveur Apache après chaque modification au fichier httpd.conf
Lorsqu’un client se connecte au serveur en tapant
- Code: Tout sélectionner
http://nom-machine
il est donc automatiquement redirigé vers
- Code: Tout sélectionner
https://nom-machine
Une fois le serveur configuré, mettre en place Webalizer. Créer un dossier logs dans le repertoire webalizer, qui recevra le rapport généré. Faire une copie du fichier sample.conf, dans le dossier webalizer, en le renommant webalizer.conf. Modifier ce fichier :
- Code: Tout sélectionner
LogFile C:\www\Apache2\logs\access.log
…
OutputDir C:\www\webalizer\logs
…
HostName nom-machine
Configurer l’accès à Webalizer en créant un alias dans le fichier httpd.conf d’Apache:
- Code: Tout sélectionner
Alias /wba/ "C:/www/webalizer/logs/"
<Directory "C:/www/webalizer/logs/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from All
</Directory>
Pour mettre régulièrement ce rapport à jour, il est possible de créer une Tâche planifiée qui exécutera webalizer.exe tous les jours, à une heure précise.
De cette manière, l’adresse http://nom-machine/wba/ affiche le rapport correspondant à l’utilisation du serveur.
______________________________________________________________________________________________________________________________
Bon courage, à ceux qui se lanceront dans l'aventure, ça peut paraitre un peu long et compliqué mais si vous suivez bien ce tuto, il ne devrait pas y avoir de probleme.
Petit conseil :
1- Configurer Apache
2- Configurer PHP
3- Tester PHP
4- etc...
Tout ça pour dire qu'il faut faire les choses étape par étape, et tester chaque modifications.
Pensez a consulter le log d'erreurs d'Apache, l'observateur l'evenements de Windows
peut parfois aider ( Demarrer -> Executer -> eventvwr.msc )
En reinstallant mon serveur, la semaine derniere j'ai eu un probleme dont je ne trouvai pas la solution
et en essayant plusieurs choses, je l'ai resolu en changeant de version de PHP, etant donné que ces logiciels sont des
logiciels libres, il peut arriver que certaines versions ne fonctionnent plus ensemble alors qu'elles
marchaient très bien avant la reinstall...
Certaines choses sont inexpliquables, ça fait partie des mysteres de l'informatique, et c'est aussi pour ça qu'on aime ...

