Installer et configurer un serveur web en local
Il est très, très, loin le temps du développement de sites web composés uniquement de pages HTML statiques. De plus en plus, il nous faut constamment penser dynamique et avec l’appui d’AJAX , de WebSockets ou de Push API, les pages peuvent continuellement s’actualiser et réagir de manière applicatives aux interactions utilisateurs. Nous avons donc besoin d’environnement de travail et de développement qui nous permettent de développer et mettre au point nos sites, en réelle condition client / serveur.
Deux grands axes se présentent alors à nous, d’un coté employant une architecture historique utilisant un stack à base de LAMP, MAMP ou WAMP… ou bien une approche plus orientée framework comme NodeJs, PurpleJS, Reactor, VertX, Cool.io, Cyclone.io et même des frameworks basé sur PHP comme ReactPHP… Bref vous l’aurez compris, ce ne sont pas les environnements qui manquent pour développer et mettre en place des applications réactives.
Nous aurons bien matière, et temps, pour y revenir plus en détails….
Décortiquons les stacks AMP
Afin de pouvoir travailler dans un environnement serveur complet, il nous faut donc installer divers éléments, ou diverses applications. C’est pour cela qu’on parle de Server Stack, ou Solution Stack. En général les stacks sont composés au minimum d’un triptyque applicatif, à savoir;
- un serveur web pour livrer et servir des pages et des médias (Apache, Jrun, Tomcat, IIS, ColdFusion…),
- un serveur applicatif qui lui va permettre d’interpréter le langage utilisé coté serveur (ASP, PHP, JSP, ColdFusion…)
- un serveur de base de données qui correspond au système de stockage de l’information (SQLServeur, MySQL, Oracle, MongoDB, Sybase…)
Nous comprenons bien qu’en fonction du serveur web d’hébergement, du langage employé et du système d’information utilisé, ce stack va contenir différents type de composants. Généralement les prestataires hébergeurs (OVH, Haisoft, 1 and 1, PlanetHoster, Media Temple, Alwaysdata, Amen, 000webhost…) qui proposent des services mutualisés optent pour une solution classique et récurrente autour de Apache, MySQL (ou MariaDB, voir PostgreSQL) et de PHP…. Nous avons accès à un triptyque applicatif de base qui est Apache, MySQL, PHP, pour couvrir l’acronyme AMP. Bien sûr, d’autres éléments, ou applications, peuvent venir compléter cette liste, on peut alors penser à des outils comme PERL, Python, MongoDB, FTP, PHPMyAdmin pour ne citer qu’eux.
Mais nous pourrions également parler de stacks ayant des bases totalement différentes comme WINS (Windows Server, Internet Information Services, .NET et SQL Server), ou bien des structures comme ColdFusion JRun et Apache, ou tout simplement JSP Tomcat… et bien d’autres encore.
Quelles solutions utiliser ?
Je vous propose, quant à nous et pour nourrir cet article, que nous focalisions uniquement sur un stack de type AMP et que vous soyez sous Linux, MacOS ou Windows , nous voyons comment les installer et les utiliser.
Rien qu’en recherchant des stacks AMP, vous verrez qu’il existe diverses solutions, et, qu’en fonction du système d’exploitation, toutes ne sont pas vraiment identiques, ou, ne donnent pas les mêmes satisfactions. C’est pour cela que l’on parle de MAMP (pour MacOS), LAMP (concernant Linux) et WAMP (à destination de windows)… certains encore, comme XAMPP, proposent une approche multi-plateforme.
En faisant le tour de divers groupes de travail, on dira que les plus fréquemment rencontrés seront MAMP chez les utilisateurs Mac OS, WampServer sous Windows, parfois on trouve du Xampp ou encore du ampps voir EasyPHP, et enfin sous Linux on trouve souvent Bitnami ou bien souvent une installation paquet par paquet.
De quoi parle-t-on là ?
En disant MAMP, WampServer, Xampp, Bitnami…. on parle en fait d’applications paquetées, c’est à dire un installeur général qui va prendre en charge pour nous l’installation des divers composant. Concrètement, l’application va devenir un super tableau de bord qui nous permet de contrôler chacun des composants installés. Prenons un exemple… à ce jour nous sommes en terme de versions:
build courante | MAMP | WampServer | Xampp | EasyPHP | ampps | |
---|---|---|---|---|---|---|
stack version | 3.2.2 | 3.0.6 | 7.1.1 | 16.1.1 | 3.6 | |
Apache | 2.4.25 | 2.2.31 | 2.4.23 | 2.4.25 | 2.4.23 | 2.4.23 |
MySQL | 5.7.18 | 5.5.49 | 5.7.14 | 5.7.11 | 5.6.31 | |
MariaDB | 10.2.4 | 10.1.21 | ||||
PHP | 7.1.2 | 7.0.9 | 7.0.10 | 7.1.1 | 7.0.14 | 7.0.8 |
PHPMyAdmin | 4.6.6 | 4.4.15.5 | 4.6.4 | 4.6.5.2 | 4.6.2 | |
Autres | Nginx, xdebug, PERL, Python, curl… | Adminer, PhpSysInfo | Tomcat, PERL… | Xdebug Manager, Nginx | PERL, Python, MongoDB | |
Valeurs en date du 22 février 2017 |
build courante | MAMP | WampServer | XAMPP | EasyPHP | AMPPS | |
---|---|---|---|---|---|---|
stack version | 8.2.1 | 3.2.6 | 8.2.0 | 17.0 | 3.9 | |
Apache | 2.4.25 | 2.4.54 | 2.4.54 | 2.4.54 | 2.4.54 | 2.4.54 |
MySQL | 5.7.18 | 8.0.30 | 8.0.31 | 8.0.30 | 8.0.30 | 10.5.17 |
MariaDB | 10.2.4 | 10.3.38 | 10.3.38 | 10.5.18 | 10.3.38 | 10.6.10 |
PHP | 7.1.2 | 8.2.1 | 8.1.12 | 8.2.0 | 8.0.30 | 8.1.12 |
PHPMyAdmin | 4.6.6 | 5.2.0 | 5.2.0 | 5.2.0 | 5.1.0 | 5.2.0 |
Autres | Nginx, xdebug, PERL, Python, curl… | Adminer, PhpSysInfo | Tomcat, PERL… | Xdebug Manager, Nginx | PERL, Python, MongoDB | |
Valeurs en date de novembre 2024 |
… et bien au lieu d’installer chacun des ces composants, de manière indépendante et individuelle, nous pouvons avec un simple clic sur l’application choisie (parmi xampp, wampserver, mamp…) les installer, et surtout les gérer (démarrer, arrêter, relancer, créer des alias, activer des services, mettre à jour…), et ce, au travers d’un tableau de bord intuitif et central.
Que se passe-t-il une fois installé ?
Une fois installé, et comme mentionné dans le chapitre précédent, il suffit de lancer le tableau de bord pour activer (ou désactiver) les services. Cela se passe soit depuis un clic droit sur l’application où un menu propose les services, soit depuis un tableau de bord avec divers icônes pour chaque services.
Une fois installé l’application propose un dossier racine (htdocs, www…) pour y déposer les divers sites travaillés sous forme de dossier enfant (site1, autredomaine, etc…) et ces sites seront accessibles depuis un navigateur en pointant généralement vers http://localhost/site1, ou http://localhost:8080/site1. La racine de l’URL locale, et le port employé, sont toujours précisés dans la documentation de base.
Il est également possible de créer des alias, c’est à dire de pouvoir positionner des dossiers sites, en dehors du site racine local de base. ampps propose cela de manière native, du fait qu’il n’y a pas de dossier racine, mais uniquement des alias (domaines) qui sont associés à des chemins, distincts et différents, sur la machine locale.
Le cas Xampp
Seul Xampp ne propose pas de fonctionnalité alias, et donc tous les sites doivent être nécessairement déposés dans le dossier racine local. Bon, il est quand même possible de contourner cette limitation et ce de manière assez simple.
Une fois Xampp installé, il suffit d’une part de créer un dossier nommé alias (ou différemment si vous préférez) à la racine du dossier Xampp (ou ailleurs, également si vous préférez) puis d’en informer Apache. Pour cela, il suffit d’ouvrir le fichier de configuration de Apache qui se situe (par défaut) dans C:\xampp\apache\conf\httpd.conf et de placer en dernière ligne l’instruction suivante
include "c:/xampp/alias/*"
Vous comprenez que si vous avez opté pour un autre nom de dossier, et/ou un autre emplacement, cette ligne devra le refléter. Cette instruction demande simplement à Apache de prendre en compte, lors de son lancement, tous les fichiers inclus dans le dossier alias. Maintenant pour créer un alias, il faut simplement ajouter un fichier de configuration dans le dossier alias. Attention, ce fichier doit respecter un certain nombre de règles:
- Le nom du fichier correspond au nom de l’alias, (idéalement écrit en bas de casse et ne contenant pas de caractère accentués, espace et autres… restons simple) et se termine par l’extension .conf, par exemple lenomdelalias.conf
- Le fichier contient les instructions suivantes
Alias /lenomdelalias/ "//chemin/complet/vers/le/dossier/"
<Directory "//chemin/complet/vers/le/dossier/">
Require all granted
</Directory> - Vous pouvez affiner les instructions passées concernant cette configuration
Ensuite, il suffit donc de placer se fichier dans le dossier alias, de s’assurer qu’il pointe bien vers un chemin valide et enfin de relancer Apache afin d’être pris en compte. Dorénavant l’alias sera accessible depuis http://localhost/lenomdelalias
Et que faire si on ne souhaite pas installer de stack ?
Il existe une solution portable de Xampp sous Windows, qui peut donc être placée sur un disque externe (clé USB, SDRAM ou autre WD Passport…) et pareillement USBWebserver 8 propose un service similaire.
De ce fait vous pouvez travailler de manière mobile, et indépendante, avec un disque externe contenant à la fois le serveur, et le stack nécessaire, ainsi que les fichiers de votre site, y compris sa base de données.
Aller plus loin
Apache The Definitive Guide
Ben et Peter Laurie
With this new third edition of Apache: The Definitive Guide, web administrators new to Apache will come up to speed quickly, and experienced administrators will find the logically organized, concise reference sections indispensable, and system programmers interested in customizing their servers will rely on the chapters on the API and Apache modules. Updated to cover the changes in Apache's latest release, 2.0, as well as Apache 1.3, this useful guide discusses how to obtain, set up, secure, mod...
3 réponses
[…] Afin de pouvoir tester et développer certaines fonctionnalités, il est important de ne pas opérer directement en ligne, mais dans un espace souple et protégé. L’idéal peut être sur un serveur de type NAS (comme un Synology par exemple) ou tout simplement sur sa propre machine de travail en prenant soin de configurer un stack web (Xampp, Mamp, Wampserver, EasyPHP, USBWebServer 8…). Vous pouvez vous rapprocher de l’article Installer et configurer un serveur web en local. […]
[…] Si par contre, vous créez votre site web de scratch, ou même que vous reprenez le travail sur un ancien site, vous allez devoir configurer un espace local de test. Rapprochez-vous alors de Installer et configurer un serveur web en local. […]
[…] vous de l’article Installer et configurer un serveur web en local ou nous approcherons en détails les diverses solutions et la manière de les […]