Dans un précédent article, je t’expliquais que la mise en place d’un Système d’Informations Géographiques (SIG) peut nécessiter un serveur web, un Système de Gestion de Base de Données (SGBD), un serveur cartographique, une interface web/application mobile et un logiciel SIG.
Ici, je présente l’installation de deux composants du SIG : le serveur web Apache et le langage de programmation PHP qui sert à développer des interfaces web. Cette architecture est relativement simple et rapide à installer sur un environnement UNIX comme une distribution LINUX DEBIAN mais cela fera l’objet d’un prochain tutoriel.
1. Téléchargement des fichiers Apache et PHP
Avant de télécharger l’ensemble des projets, il faut penser à vérifier quelques éléments relatifs à ton environnement Windows. Il faut connaître le processeur de ton système d’exploitation (32 bits ou 64 bits) et s’assurer que le port 80 utilisé pour internet soit libre. Pour cela, lance une console en tapant cmd dans la barre de recherche et saisis :
netstat -ano | find ":80"
L’avant dernière colonne montre l’état de la connexion et la dernière le numéro du processus qui utilise ce port. Si l’état LISTENING apparaît, cela signifie que le port est utilisé. Il faut donc trouver quel est le processus correspondant, tape dans la console en remplaçant le numéro du processus :
tasklist | find "numéro du processus"
Suite à cela, tu peux désactiver le processus trouvé dans les services de Windows. En général, le service de publication World Wide Web doit être désactivé. Nous pouvons maintenant télécharger les différents composants :
- Télécharger les fichiers binaires d’Apache pour Windows : http://httpd.apache.org/docs/current/platform/windows.html#down. Les projets Apache Haus et Apache Lounge mettent à disposition les paquets. Il est important de noter quelle version de Visual Studio (VC14 par exemple) est utilisé pour compiler ces fichiers. Créer un répertoire Apache sur ton disque dur (par exemple, C:\Apache24) et placer l’ensemble des fichiers à l’intérieur.
- Télécharger les codes sources de PHP correspondant à la version de Visual Studio utilisée pour Apache. PHP doit être une version Thread Safe (TS) pour fonctionner avec Apache : http://windows.php.net/download. Créer un répertoire PHP sur ton disque dur (par exemple, C:\PHP) et placer l’ensemble des fichiers à l’intérieur.
- Télécharger et exécuter la version correspondante de Visual Studio. Un lien est disponible sur la colonne de gauche du projet PHP.
2. Configuration d’Apache et de PHP
2.1. Configuration propre à Apache
Nous allons intégrer le module PHP dans Apache en modifiant les fichiers de configurations.
Dans C:\Apache24\conf, éditez le fichier httpd.conf (par exemple avec Notepad) en modifiant le chemin de la racine du serveur : ServerRoot "C:/Apache24"
A cette étape, tu peux déjà tester Apache en lançant le httpd.exe ou ApacheMonitor.exe qui se situent dans le répertoire C:\Apache24\bin. Dans le navigateur web, saisis localhost, le contenu du fichier index.html qui est dans C:\Apache24\htdocs apparaît. En aparté, tu peux donc d’ores et déjà coder tes premières cartographies en html comme je le montre dans ce post.
Pour installer Apache en tant que service sur Windows à partir de la console, tu te situes dans le répertoire bin d’Apache (cd C:\Apache24\bin), puis tu écris :
httpd –k install
Dans le fichier de configuration, tu peux préciser d’autres fonctionnalités liées au serveur :
- le paramétrage du fuseau horaire :
SetEnv TZ Europe/Paris;
- la localisation de tes fichiers affichés. Par défaut le répertoire C:\Apache24\htdocs est utilisé mais tu peux très bien en créer un autre et l’indiquer au serveur en modifiant ces lignes :
DocumentRoot "c:/Apache24/htdocs"
et
<Directory "c:/Apache24/htdocs">
Pour aller plus loin, si tu fais pointer un nom de domaine depuis un registrar (par exemple OVH) vers ton adresse IP publique, tu peux changer les lignes suivantes :
- le nom de l’administrateur du serveur :
ServerAdmin admin@[ton nom de domaine.com];
- le nom du serveur :
ServerName www.[ton nom de domaine.com];
Et pour sécuriser l’accès au fichier de ton serveur tu modifies :
<Directory "c:/Apache24/htdocs">
AllowOverride all
Require all granted
Options indexes
</Directory>
Après la modification du fichier httpd.conf, il faut redémarrer Apache. Si le serveur ne redémarre pas, tu peux connaître l’erreur dans les logs : C:\Apache24\logs .
2.2. Configuration d’Apache et de PHP
Pour intégrer le module de PHP, c’est assez simple, il faut ajouter le module de PHP dans le httpd.conf (après le bloc de LoadModule) en précisant la version de PHP installé et en vérifiant que le fichier php[version de php]apache[version d’Apache].dll est bien présente dans votre répertoire de PHP:
LoadModule php7_module "c:/php/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
Puisque nous allons coder en PHP, on peut créer un fichier index.php avec un éditeur de texte (<?php echo ‘yes’; ?>) que l’on place à la racine (htdocs si vous n’avez pas changé de répertoire) et indiquer le nom du fichier index chargé dans httpd.conf:
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
Dans le répertoire PHP, deux fichiers de configuration sont présents php.ini-production et developpement. Tu renommes celui de production en php.ini. On précise le chemin du fichier de configuration de PHP php.ini dans le httpd.conf (en bas du fichier par exemple).
PHPIniDir "c:/php"
Dans le fichier php.ini, il faut préciser les chemin des extensions de PHP :
extension_dir = "C:/php/ext/"
Tu peux aussi configurer la date en fonction de ton fuseau horaire comme Apache :
date.timezone = Europe/Paris
Enfin, tu redémarres Apache. Si tout se passe bien, tu dois voir YES sur la page localhost de ton navigateur web.
Si ce n’est pas le cas, il faut regarder les erreurs dans les logs d’Apache. Elles sont souvent liées à des problèmes de chargement de module comme module ssl.so ; il suffit alors de le commenter dans httpd.conf.
Dans cet article, je te montre comment installer PostgreSQL et son extension PostGIS et comment intégrer ce SGBD dans Apache et PHP.
Très bon article.
Bonjour
Après de multiples recherches c’est finalement grâce à vous que j’ai réussi à installer en local un second serveur local en virtualhost enfin opérationnel ! Merci et bravo !
Par contre je n’arrive pas à avoir mes deux serveurs opérationnels en même temps, je suis obligé de changer mon fichier hosts (ou mon httpd.conf) à chaque fois pour changer de serveur ! Grrrr
En core merci pour votre clarté.
2 heures de moins :
J’ai hébergé mon site en local sur mon PC en Windows et Apache. Mon PC est à l’heure. Mon serveur indique 2 heures de moins. J’ai ajouté »
SetEnv TZ Europe/Paris; » conseillé ci-dessous en bas de mon httpd.conf mais j’ai toujours le même sousci.
Bonjour,
Besoin d’aide. Je ne parviens pas a installer le serveur Apache/PHP a partir de l’utilitaire StackBuilder de PostgreSQL
Hello,
J’ai suivi le process mais j’obtiens des erreurs sur le chargement de modules :
« PHP Warning: PHP Startup: Unable to load dynamic library ‘ldap’ (tried: C:/php7430/ext/ldap (Le module sp\xc3\xa9cifi\xc3\xa9 est introuvable.), C:/php7430/ext/php_ldap.dll (Le module sp\xc3\xa9cifi\xc3\xa9 est introuvable.)) in Unknown on line 0 »
Je m’arrache les cheveux sur cette erreur !