Tutoriels Apache pour les débutants

Table des matières

Qu'est-ce qu'Apache?

Apache est un logiciel d'application remarquable. Il s'agit de l'application de serveur Web la plus utilisée au monde avec plus de 50% de parts sur le marché des serveurs Web commerciaux. Apache est l'application de serveur Web la plus utilisée dans les systèmes d'exploitation de type Unix, mais peut être utilisée sur presque toutes les plates-formes telles que Windows, OS X, OS / 2, etc. Le mot, Apache, a été tiré du nom du Native Tribu américaine «Apache», célèbre pour ses compétences en matière de guerre et d'élaboration de stratégies.

Il s'agit d'une application serveur Web modulaire basée sur des processus qui crée un nouveau thread à chaque connexion simultanée. Il prend en charge un certain nombre de fonctionnalités; beaucoup d'entre eux sont compilés en tant que modules séparés et étendent ses fonctionnalités de base, et peuvent tout fournir, du support du langage de programmation côté serveur au mécanisme d'authentification. L'hébergement virtuel est l'une de ces fonctionnalités qui permet à un seul serveur Web Apache de desservir un certain nombre de sites Web différents.

Comment installer Apache

Il existe de nombreuses façons d'installer le package ou l'application. Il y a enrôlé ci-dessous -

  1. L'une des caractéristiques de cette application Web open source est que n'importe qui peut créer un programme d'installation selon son propre environnement. Cela a permis à divers fournisseurs comme Debian, Red Hat, FreeBSD, Suse, etc. de personnaliser l'emplacement du fichier et la configuration d'Apache en tenant compte des autres applications installées et du système d'exploitation de base.
  2. En plus de l'installer à partir d'un programme d'installation basé sur un fournisseur, il y a toujours la possibilité de le construire et de l'installer à partir du code source. L'installation d'Apache à partir du fichier source est indépendante de la plate-forme et fonctionne pour tous les systèmes d'exploitation.

Le serveur Web Apache est une application modulaire où l'administrateur peut choisir la fonctionnalité requise et installer différents modules selon ses besoins.

Tous les modules peuvent être compilés en tant qu'objets partagés dynamiques (DSO est un fichier objet qui peut être partagé par plusieurs applications pendant leur exécution) qui existe séparément du fichier apache principal. L'approche DSO est fortement recommandée, elle rend la tâche d'ajout / suppression / mise à jour des modules de la configuration des serveurs très simple.

Installez Apache: Linux Platform

Sur les systèmes basés sur Red Hat ou RPM

Si vous utilisez une distribution Linux basée sur rpm (RedHat Package Manager est un utilitaire pour installer des applications sur les systèmes Linux), c'est-à-dire Red Hat, Fedora, CentOs, Suse, vous pouvez installer cette application soit par le gestionnaire de package spécifique au fournisseur, soit en créant directement le fichier rpm à partir de l'archive tar source disponible.

Vous pouvez installer Apache via le gestionnaire de packages par défaut disponible sur toutes les distributions basées sur Red Hat telles que CentOs, Red Hat et Fedora.

[root @ amsterdam ~] # yum install httpd

L'archive tar de la source Apache peut être convertie en fichier rpm à l'aide de la commande suivante.

[root @ amsterdam ~] # rpmbuild -tb httpd-2.4.x.tar.bz2

Il est obligatoire d'installer le package -devel sur votre serveur pour créer un fichier .rpm à partir de la source.

Une fois que vous avez converti le fichier source en un programme d'installation rpm, vous pouvez utiliser la commande suivante pour installer Apache.

[root @ amsterdam ~] # rpm -ivh httpd-2.4.4-3.1.x86_64.rpm

Après l'installation, le serveur ne démarre pas automatiquement, pour démarrer le service, vous devez utiliser l'une des commandes suivantes sur Fedora, CentOs ou Red Hat.

[root @ amsterdam ~] # / usr / sbin / apachectl start[root @ amsterdam ~] # service httpd start[root @ amsterdam ~] # /etc/init.d/httpd start

Installer Apache à partir de la source

L'installation d'Apache à partir des sources nécessite l'installation du paquet -devel sur votre serveur… Vous pouvez trouver la dernière version disponible d'Apache, vous pouvez la télécharger ici. Une fois que vous avez téléchargé le fichier source, déplacez-le dans le dossier / usr / local / src.

[root @ amserversterdam ~] cd / usr / local / src[root @ amserversterdam ~] gzip -d httpd-2.2.26.tar.gz[root @ amserversterdam ~] tar xvf httpd-2.2.26.tar[root @ amserversterdam ~] httpd-2.2.26

Afin de voir toutes les options de configuration disponibles pour Apache, vous pouvez utiliser l'option ./configure -help. L'option de configuration la plus courante est -prefix = {nom du répertoire d'installation}.

[root @ amserversterdam ~] ./ configure --help[root @ amserversterdam ~] ./ configure -prefix = / usr / local / apache -enable-so[root @ amserversterdam ~] créer[root @ amserversterdam ~] effectuer l'installation

L'exemple ci-dessus montre la compilation d'Apache dans le répertoire / usr / local / apache avec la capacité DSO. L'option -enable-so, peut charger les modules requis sur Apache au moment de l'exécution via le mécanisme DSO plutôt que de nécessiter une recompilation.

Une fois l'installation terminée, vous pouvez parcourir la page par défaut des serveurs Web avec votre navigateur préféré. Si le pare-feu est activé sur votre serveur, vous devez faire une exception pour le port 80 sur le pare-feu de votre système d'exploitation. Vous pouvez utiliser la commande suivante pour ouvrir le port 80.

iptables -I INPUT -p tcp --dport 80 -j ACCEPTER

service iptables enregistrer

Vous pouvez voir l' écran d'accueil par défaut d' Apache2 en parcourant l'adresse IP de votre serveur.

Qu'est-ce que l'hôte virtuel?

Un serveur Web Apache peut héberger plusieurs sites Web sur le même serveur. Vous n'avez pas besoin de machine serveur et de logiciel Apache séparés pour chaque site Web. Ceci peut être réalisé en utilisant le concept d' hôte virtuel ou VHost.

Tout domaine que vous souhaitez héberger sur votre serveur Web aura une entrée distincte dans le fichier de configuration Apache.

Types d'hôte virtuel Apache

  1. Hôte virtuel basé sur le nom
  2. Hôte virtuel basé sur adresse ou IP et.

Hôte virtuel basé sur le nom

L'hébergement virtuel basé sur le nom est utilisé pour héberger plusieurs sites virtuels sur une seule adresse IP.

Afin de configurer l'hébergement virtuel basé sur le nom, vous devez définir l'adresse IP sur laquelle vous allez recevoir les requêtes Apache pour tous les sites Web souhaités. Vous pouvez le faire par la directive NameVirutalHost dans la configuration apache, c'est -à-dire le fichier httpd.conf / apache2.conf.

Exemple d'hôte virtuel Apache:

NomVirtualHost *: 80ServerAdmin Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer JavaScript pour le visualiser.DocumentRoot /var/www/html/example1.comNom du serveur www.example1.comServerAdmin Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer JavaScript pour le visualiser. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

Vous pouvez ajouter autant d'hôtes virtuels, selon vos besoins. Vous pouvez vérifier vos fichiers de configuration Web avec:

[root @ amsterdam ~] #httpd -tSyntaxe OK

Si le fichier de configuration a une syntaxe incorrecte, il générera une erreur

[root @ 115 conf.d] # httpd -tErreur de syntaxe à la ligne 978 de /etc/httpd/conf/httpd.conf:Commande «*» non valide, peut-être mal orthographiée ou définie par un module non inclus dans la configuration du serveur

Hôte virtuel basé sur IP

Pour configurer l'hébergement virtuel basé sur IP, vous avez besoin de plusieurs adresses IP configurées sur votre serveur. Ainsi, le nombre de vhost apache dépendra du nombre d'adresses IP configurées sur votre serveur. Si votre serveur possède 10 adresses IP, vous pouvez créer 10 hôtes virtuels basés sur IP.

Dans le diagramme ci-dessus, deux sites Web example1.com et example2.com se sont vus attribuer des adresses IP différentes et utilisent un hébergement virtuel basé sur IP.

Écoutez 192.168.0.100:80ServerAdmin Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer JavaScript pour le visualiser.DocumentRoot /var/www/html/example1.comNom du serveur www.example1.comServerAdmin Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer JavaScript pour le visualiser. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

De quoi Apache a-t-il besoin pour exécuter un fichier Php?

L'exécution de fichiers Php sur Apache nécessite l' activation de mod_php sur votre serveur. Il permet à Apache d'interpréter les fichiers .Php. Il a des gestionnaires Php qui interprètent le code Php dans Apache et envoient du HTML à votre serveur Web.

Si mod_php est activé sur votre serveur, vous aurez un fichier nommé php.conf dans le répertoire /etc/httpd/conf.d/. Vous pouvez également le vérifier avec:

httpd -M | grep "php5_module"

La sortie sera similaire à:

Gestionnaires PHP dans Apache

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_php est le plus ancien gestionnaire PHP, il intègre PHP à apache et n'appelle aucun processus PHP externe. Ce module est installé par défaut dans chaque référentiel de distribution Linux, donc activer / désactiver ce module est très simple.

Si vous utilisez FastCGI comme gestionnaire PHP, vous pouvez définir plusieurs versions de PHP à utiliser par différents comptes sur votre serveur.

FastCGI ie mod_fastcgi est une extension de mod_fcgid , où comme mod_fcgid est une alternative haute performance de CGI ie mod_cgi. Il démarre un nombre suffisant d'instances de CGI pour traiter les requêtes Web simultanées. Il utilise également suexec pour prendre en charge différents utilisateurs avec leurs propres instances de PHP et améliore la sécurité Web.

L'exécution de fichiers ruby ​​sur Apache nécessite que mod_ruby soit activé. Apache peut également gérer les fichiers ruby ​​via FastCGI. Il est possible d'utiliser plusieurs versions de ruby ​​à l'aide de mod_fcgid ie FastCGI.

Vous pouvez également installer Apache Passager et configurer Apache pour l'utiliser pour servir des pages Ruby.

(Phusion Passenger également appelé « passager » est un module de serveur Web gratuit conçu pour s'intégrer à Apache et Nginx)

Étapes pour installer mod_ruby sur votre serveur -

cd / tmpwget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gztar zxvf mod_ruby-1.2.6.tar.gzcd mod_ruby-1.2.6 /./configure.rb --with-apr-includes = / usr / include / apr-1Fabriquerfaire installer

Comment exécuter Ruby avec Apache

Nous devons ajouter le module mod_ruby à la configuration Apache ie /etc/httpd/conf.d/ruby.conf et ajouter la ligne suivante.

LoadModule modules ruby_module / mod_ruby.so

Si vous souhaitez activer ou désactiver ces modules, vous devez éditer le fichier de configuration apache et commenter ou décommenter ces modules, si le serveur Web est déjà compilé avec ces modules.

Comment sécuriser le serveur Web Apache

Sécuriser votre serveur Web est très important, cela signifie permettre aux autres de voir uniquement les informations prévues, protéger vos données et restreindre l'accès.

Ce sont des éléments courants qui améliorent la sécurité de vos serveurs Web Apache.

1) Masquage de la version d'Apache et des informations du système d'exploitation:

Apache affiche sa version et le nom du système d'exploitation dans les erreurs, comme indiqué dans la capture d'écran ci-dessous.

Un pirate informatique peut utiliser ces informations pour lancer une attaque en utilisant les vulnérabilités publiquement disponibles dans la version particulière du serveur ou du système d'exploitation.

Afin d'empêcher le serveur Web Apache d'afficher ces informations, nous devons modifier

Option «signature du serveur» disponible dans le fichier de configuration apache. Par défaut, il est «activé», nous devons le désactiver.

vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod

Nous avons également défini «ServerTokens Prod» qui indique au serveur Web de ne renvoyer qu'apache et de supprimer la version majeure et mineure du système d'exploitation

Après avoir modifié le fichier de configuration, vous devez redémarrer / recharger votre serveur Web Apache pour le rendre effectif.

redémarrage du service httpd

2) Désactiver la liste des répertoires

Si le répertoire racine de votre document ne possède pas de fichier d'index, votre serveur Web Apache affichera par défaut tout le contenu du répertoire racine du document.

Cette fonctionnalité peut être désactivée pour un répertoire spécifique via la «directive options» disponible dans le fichier de configuration Apache.

Options -Index

3) Désactivation des modules inutiles

Il est recommandé de désactiver tous les modules inutiles qui ne sont pas utilisés. Vous pouvez voir la liste des modules activés disponibles dans votre fichier de configuration Apache -

[root @ amsterdam ~] #httpd -Mperl_module (partagé)php5_module (partagé)proxy_ajp_module (partagé)python_module (partagé)ssl_module (partagé)

La plupart des modules listés peuvent être désactivés comme par exemple, mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, car ils ne sont pratiquement pas utilisés par les serveurs Web de production.

vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules / mod_auth_digest.so

Une fois que vous avez commenté le module, enregistrez le fichier.

Redémarrez les services Apache avec la commande suivante.

/etc/init.d/httpd redémarrer

4) Restreindre l'accès aux fichiers en dehors du répertoire racine Web

Si vous souhaitez vous assurer que les fichiers qui se trouvent en dehors du répertoire racine Web ne sont pas accessibles, vous devez vous assurer que le répertoire est limité avec «Autoriser» et «Option Refuser» dans le fichier de configuration de votre serveur Web.

Options AucuneAllowOverride AucunCommander refuser, autoriserRefuser de tous

Une fois que vous restreignez l'accès en dehors du directoy racine Web, vous ne pourrez accéder à aucun fichier situé sur un autre dossier de votre serveur Web, vous obtiendrez le code de retour 404.

5) Utilisation de mod_evasive pour réfuter l'attaque DoS

Si vous souhaitez protéger votre serveur Web contre les dosages (c'est-à-dire le déni de service), vous devez activer le module mod_evasive. C'est un module tiers qui détecte l'attaque Dos et empêche l'attaque de faire autant de dégâts qu'elle le ferait si elle suivait son cours. Il peut être téléchargé ici.

Téléchargez le fichier ci-dessus

6) Utilisation de mod_security pour améliorer la sécurité d'Apache

Ce module fonctionne comme un pare-feu pour Apache et vous permet de surveiller le trafic en temps réel. Il empêche également le serveur Web d'attaques par force brute. Le module mod_security peut être installé avec le gestionnaire de paquets par défaut de votre distribution.

7) Limiter la taille de la demande

Apache n'a aucune restriction sur la taille totale de la requête http qui pourrait conduire à une attaque DoS. Vous pouvez limiter la taille de la requête d'une directive Apache «LimitRequestBody» avec la balise directory. La valeur peut être définie entre 0 et 2 Go (c'est-à-dire 2147483647 octets) selon vos besoins.

LimitRequestBody 512000

Format du journal Apache

Les journaux Apache fournissent des informations détaillées qui aident à détecter les problèmes courants avec le serveur.

Pour créer des journaux d'accès, mod_log_configmodule doit être activé.

Trois directives disponibles dans le fichier de configuration Apache ie

  • TransferLog: création d'un fichier journal.
  • LogFormat: spécification d'un format personnalisé.
  • CustomLog: création et formatage d'un fichier journal.

La directive TransferLog est disponible dans le fichier de configuration apache et fait pivoter les fichiers journaux de l'hôte virtuel selon les paramètres définis.

ServerAdmin Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer JavaScript pour le visualiser.DocumentRoot / usr / www / exemple / httpd / htdocs /Nom du serveur www.example.comServerAlias ​​example.com www.exampleErrorLog / usr / www / example / httpd / logs / error_logTransferLog / usr / www / exemple / httpd / logs / accesslogCustomLog / usr / www / example / httpd / logs / accesslog combiné

Deux types de format de journal Apache

  • Format de journal commun
  • Format de journal combiné.

Vous pouvez les activer en éditant le fichier de configuration Apache, c'est-à-dire le fichier apache2.conf (Debian / ubuntu) ou httpd.conf (systèmes basés sur rpm)

Format de journal commun

LogFormat "% h% l% u% t \"% r \ "%> s% b" communJournaux CustomLog / access_log commun

Journal commun généré par Apache

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client refusé par la configuration du serveur: / export / home / live / ap / htdocs / test

Format de journal combiné

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-agent} i \ "" combinéCustomLog log / access_log combiné

Ici,

  • % h est l'hôte distant
  • % l est l'identité de l'utilisateur déterminée par identd
  • % u est le nom d'utilisateur déterminé par l'authentification HTTP
  • % t est l'heure à laquelle le serveur a fini de traiter la demande.
  • % r est la ligne de demande du client. ("GET / HTTP / 1.0")
  • %> s est le code d'état envoyé du serveur au client (500, 404 etc.)
  • % b est la taille de la réponse au client (en octets)
  • Le référent est la page liée à cette URL.
  • L'agent utilisateur est la chaîne d'identification du navigateur.

Journal combiné généré par Apache:

199.187.122.91 - - [06 / mars / 2014: 04: 22: 58 +0100] "GET /robots.txt HTTP / 1.1" 404 1228 "-" "Mozilla / 4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1 ; .NET CLR 2.0.50727) "

Le journal personnalisé crée un fichier journal distinct pour chaque hôte virtuel de votre serveur. Il doit être spécifié dans la section hôte virtuel du fichier de configuration.

Vous pouvez voir la configuration d'hôte virtuel mentionnée ci-dessous, le journal généré sera personnalisé pour cet hôte virtuel et le format sera combiné.

Configurez votre tout premier serveur Web de production

1. Pour avoir un serveur Web de production en cours d'exécution, vous avez besoin d'un nœud dédié (instance physique / virtuelle ou cloud) exécutant Linux / Unix, Windows, MacOS, etc.

2. Le serveur Web doit disposer d'une connexion réseau directe et d'une adresse IP statique configurée dessus.

3. Il doit disposer de tous les modules nécessaires à l'exécution des pages Web. Si un serveur Web traite des pages PHP, il doit activer le module PHP.

  1. Il doit également disposer d'une bonne application antivirus configurée et en cours d'exécution pour sécuriser le serveur Web contre les attaques de logiciels malveillants ou de virus. Vous avez également besoin d'un mécanisme pour mettre à jour régulièrement l'application antivirus / anti-malware configurée sans aucune intervention manuelle afin d'en tirer le meilleur parti.
  2. Si vous avez des centaines de domaines à héberger sur votre serveur Web, vous devez mettre en œuvre des limitations sur le quota du système de fichiers pour chaque domaine, le nombre de bases de données que chaque domaine peut créer, le nombre de comptes de messagerie par domaine, etc.
  3. Si votre serveur Web a été configuré pour des services d'hébergement partagé, les utilisateurs de votre serveur Web doivent être limités . Un utilisateur d'hébergement partagé doit avoir le moins de privilèges d'utilisateur afin de ne pas endommager les fichiers importants et de casser tout le serveur. Apache ne fournit aucune fonctionnalité de ce type et a besoin de différentes applications tierces, la personnalisation du système d'exploitation pour y parvenir.
  4. Si vous ajoutez un nouveau domaine sur votre serveur Web, il doit modifier des centaines de fichiers de configuration pour activer toutes les fonctionnalités du domaine ajouté.
  5. Si l'un des domaines hébergés nécessite des paramètres PHP différents de ceux du reste des domaines, l'implémentation de cela dans le serveur Web Apache principal est très complexe et nécessite une personnalisation de votre serveur Web dans une large mesure.
  6. Un serveur Web de production a besoin d'un pare - feu pour bloquer le trafic indésirable qui pourrait entraîner une charge élevée sur votre serveur. L'implémentation des règles IPTABLE avec la ligne de commande est très complexe. Il a besoin de l'expertise de l'environnement Linux / Unix de base pour écrire des règles de pare-feu efficaces pour bloquer le trafic indésirable. IPTABLE est basé sur le module netfilter; il s'agit d'un pare-feu au niveau du système d'exploitation qui permet à un administrateur de créer des règles pour le trafic entrant / sortant sur le serveur.
  7. Un serveur Web de production nécessite plusieurs applications différentes telles que la messagerie électronique , le FTP pour le téléchargement de fichiers, le système de noms de domaine pour les domaines parqués. La gestion de toutes ces applications sur un système Linux / Unix de base nécessite une expertise sur les technologies respectives.

Ainsi, on peut dire que la gestion d'un serveur Web pour plusieurs domaines est une tâche très complexe et nécessite l'édition de centaines de fichiers de configuration, en personnalisant chaque application pour obtenir le résultat souhaité. Le dépannage de toute configuration manquée sera très difficile pour les débutants.

La solution utilisant Cpanel ou un logiciel similaire

Cpanel fournit une manière graphique de gérer votre serveur Web . Il est destiné à fournir des services d'hébergement de masse faciles à utiliser et à configurer. cPanel a réduit les barrières techniques à l'entrée dans l'hébergement et la gestion des serveurs Web. Il facilite les tâches complexes et fournit de nombreuses interfaces Web utiles et faciles à utiliser qui exécutent les tâches d'administration système courantes requises pour faire fonctionner un serveur Web.

cPanel compile sa propre version du logiciel.

Si vous devez recompiler votre serveur Web, c'est-à-dire apache sur une plate-forme Linux normale, vous devez sélectionner / rechercher manuellement le module requis. cPanel fournit la fonctionnalité Easyapache qui est une méthode de compilation de serveur Web basée sur un script.

Il vous fournit non seulement des services Web, mais également des services de messagerie, DNS, FTP et bien d'autres services requis pour votre application Web.

Une tâche qui nécessite une expertise sur l'hébergement Linux / Unix de base comme l'installation de SSL, la recompilation d'Apache avec différents modules PHP, la mise à jour de la sécurité Web, la configuration de règles IPTABLE efficaces, l'ajout d'utilisateurs ftp, la création de comptes de messagerie pour chaque domaine, l'analyse de la racine de votre document avec un antivirus et la création de bases de données est facile à compléter avec cPanel.

Il fournit de nombreux scripts qui corrigent, installent et résolvent les tâches administratives courantes.

Il fournit une fonctionnalité de sauvegarde et de restauration éliminant le besoin de copier manuellement les fichiers sur le stockage de sauvegarde. Si vous sauvegardez votre domaine, cPanel créera un fichier tar qui contiendra le dossier racine du document, les comptes de messagerie et les courriers électroniques, les comptes ftp, les bases de données, les enregistrements DNS et d'autres applications.

Il fournit également une documentation robuste et dispose d'une très grande communauté d'utilisateurs où vous pouvez discuter et trouver une solution à vos problèmes.

Ainsi, on peut dire que cPanel est la meilleure application pour gérer votre serveur Web avec les fonctionnalités requises. Il vous fournit une interface facile à utiliser pour gérer votre domaine et un mécanisme pour éviter la complexité de la gestion du serveur Web principal.

Il existe de nombreux produits concurrents sur cPanel tels que Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel, etc.

Articles intéressants...