Apparu en 1995, Apache est devenu le serveur HTTP le plus populaire au monde. Dans le jargon des informaticiens, un serveur apache est un service Unix ou Windows nommé http ou apache2 installé sur une machine. De base, ce service ne fait pas grand chose, il est juste conçu pour répondre à des requêtes HTTP et retourner du contenu aux clients. La force d'Apache réside dans sa capacité à supporter de nombreux modules additionnels permettant de supporter les requêtes cryptées en SSL et d'interpréter tout un tas de langages de programmation tel que Perl, PHP, Python ou Ruby et d'héberger ainsi des sites web dynamiques.
Si cela vous intéressé, vous trouverez la liste des modules officiels sur httpd.apache.org/docs/current/fr/mod/
Dans les lignes qui suivent, on va découvrir la simplicité avec laquelle on installe un serveur apache sous Linux et comment on le configure pour y héberger notre site web.
Installation
Nous utiliserons le gestionnaire de paquets APT pour installer notre serveur. Il est disponible sur la plupart des distributions Debian dont Ubuntu. De cette manière on ne se cassera pas la tête avec les dépendances.
sudo apt-get install apache2
Une fois l'installation terminée, on vérifie que le service est en route avec
/etc/init.d/apache2 status
Si tout va bien, vous devriez obtenir une réponse du type
Apache2 is running (pid 2410).
Si ce n'est pas le cas, redémarrez le service
/etc/init.d/apache2 restart
Et jetez un œil aux fichiers de log, il peuvent être riche d'informations surtout en cas d'échec =) (/var/log/apache2/)
En fonction de votre distribution, le service Apache peut s'appeler apache2 ou httpd
A cette étape, votre serveur Apache est fonctionnel et en tapant http://localhost dans votre navigateur, vous découvrirez une belle page comme celle-ci
Qui vous précise que votre serveur fonctionne à merveille.
Par défaut le document root du serveur est /var/www. Vous pouvez donc ajouter vos fichiers html, css, et autres dans ce répertoire et y accéder avec l'adresse localhost/nomDeMonFichier.html.
Allons un peu plus loin...
Un peu de configuration
Les fichiers de configuration du serveur Apache sont placés par défaut dans /etc/apache2
C'est le fichier de configuration principal de votre serveur Apache.
- apache2.conf
Les principales options de ce fichier sont les suivantes :
- Timeout X : Nb de secondes avant de retourner un timeout au client
- LogLevel : Niveau de log émise par le serveur
- Include mods-enabled/*.load|conf : Charger ou non les configurations des modules
- Include sites-enabled/ : Charger ou non les configurations des hôtes virtuels
Pour la liste complète des options, allez voir http://httpd.apache.org/docs/2.2/fr/configuring.html
- ports.conf
Ce fichier contient la liste des ports sur lequel votre serveur écoute.Par défaut 80 pour les requêtes non sécurisées, 443 pour les requêtes sécurisées (HTTPs).
- sites-enabled/ et sites-available/
Le répertoire sites-available/ contient un sous répertoire par hôte virtuel. Ce répertoire contient l'ensemble des ressources mises à disposition des clients.
Le répertoire sites-enabled/ contient un lien symbolique par virtual host. Chacun des liens pointant vers un sous répertoire de sites-available/.
Pour être activé, un vhost doit posséder à la fois son répertoire dans sites-available/ et son lien symbolique dans sites-enabled/.
La commande a2ensite nomDuSite permet de créer automatiquement ce lien symbolique.
La commande a2dissite nomDuSite permet de le supprimer et ainsi de désactiver le site.
La commande a2dissite nomDuSite permet de le supprimer et ainsi de désactiver le site.
- mods-enabled et mods-available
mods-available/ contient l'ensemble des modules rattachés au serveur. Par défaut une liste de modules sont présents tels que le core, mpm_common, event, etc. De nombreux modules optionnels existent permettant de limiter la bande passante, de faire de l'url rewriting, de supporter les scripts cgi,etc.
mods-enabled/ contient un lien symbolique par module activé. Chacun des liens pointant vers un module situé dans mods-available/.
De manière analogue aux hôtes virtuels, il existe les commandes a2enmod et a2dismod pour activer et désactiver les modules.
Plusieurs sites sur un même serveur ?
Vous souhaitez héberger un second site sur votre apache ? Les virtualhost sont là pour ça !
Imaginons que vous souhaitiez héberger http://sitedetata et http://sitedetonton
Pour cela, créez un fichier sitedetata.conf dans sites-available/ et copiez-y le contenu suivant
Imaginons que vous souhaitiez héberger http://sitedetata et http://sitedetonton
Pour cela, créez un fichier sitedetata.conf dans sites-available/ et copiez-y le contenu suivant
<VirtualHost *:80> DocumentRoot "/home/ben/mes_sites/sitedetata" ServerName sitedetata ErrorLog /var/log/error_log_du_site_de_tata <Directory "/home/ben/mes_sites/sitedetata"> Options Indexes FollowSymLinks Includes AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
DocumentRoot définit l'emplacement du répertoire racine du site, ici /home/ben/mes_sites/sitedetata.
ServerName correspond au nom de domaine de votre nouveau site en local (http://sitedetata)
Utilisez ensuite la commande a2ensite
sudo a2ensite sitedetata.conf
De manière à créer le lien symbolique dans le répertoire sites-enabled/ puis recharger la configuration de votre serveur apache
sudo service apache2 reload
Ouvrez votre navigateur et rendez vous sur http://sitedetata, votre site est accessible !
Il ne vous reste plus qu'à recommencer pour votre second site http://sitedetonton.
Il ne vous reste plus qu'à recommencer pour votre second site http://sitedetonton.
Aucun commentaire:
Enregistrer un commentaire
Un avis ? Une question ?
N'hésitez pas à laissez des commentaires !