Apache des Tutoriels pour les Débutants

qu’est-Ce que Apache?

Apache est un logiciel d’application remarquable. C’est l’application de serveur Web la plus utilisée au monde avec plus de 50% de part 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 de la tribu amérindienne « Apache », célèbre pour ses compétences en matière de guerre et de stratégie.

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 elles sont compilées en tant que modules distincts 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 servir un certain nombre de sites web différents.,

Comment installer Apache

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

  1. L’une des caractéristiques de cette application web open source est que tout le monde peut faire installer selon leur propre environnement. Cela a permis à divers fournisseurs comme Debian, Red Hat, FreeBSD, Suse, etc. pour 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 installateur 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 & fonctionne pour tous les systèmes d’exploitation.

le serveur web apache est une application modulaire où l’administrateur peut choisir les fonctionnalités requises 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 de 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 une application sur les systèmes Linux), c’est-à-dire, Red Hat, Fedora, CentOs, Suse, vous pouvez installer cette application par le Gestionnaire de paquets spécifique au fournisseur ou directement construire le fichier rpm à partir de l’archive tar source disponible.

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

# yum install httpd

l’archive tar Source apache peut être convertie en un fichier rpm à l’aide de la commande suivante.

# rpmbuild -tb httpd-2.4.x.tar.bz2

Il est obligatoire d’avoir -devel paquet installé sur votre serveur de création .fichier rpm 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.

# 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.

# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start

installer Apache à partir de la Source

L’installation d’apache à partir de la source nécessite l’installation du package –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.

afin de voir toutes les options de configuration disponibles pour Apache, vous pouvez utiliser ./ configure-aide option. La configuration la plus courante option –prefix={répertoire d’installation nom}.

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 ACCEPT

service iptables save

Vous pouvez voir L’écran D’accueil Apache2 par défaut 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 d’une machine serveur distincte et d’un logiciel apache pour chaque site web. Cela peut être réalisé en utilisant le concept D’hôte virtuel ou de VHost.

Tout domaine que vous souhaitez héberger sur votre serveur web aura une entrée séparée dans le fichier de configuration apache.

Types de Apache Virtualhost

  1. Virtuel basé sur le Nom d’hôte
  2. basée sur l’Adresse IP ou serveur virtuel à base et de.

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.,

pour configurer le nom de la fonction d’hôte virtuel, vous devez définir l’adresse IP sur laquelle vous allez recevoir Apache demandes pour tous les sites désirés. Vous pouvez le faire par la directive NameVirutalHost dans la configuration apache, c’est-à-dire httpd.conf / apache2.fichier conf.

exemple D’hôte virtuel Apache:

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

#httpd –tSyntax OK

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

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 denombre d’adresse IP configurée sur votre serveur. Si votre serveur dispose de 10 adresses IP, vous pouvez créer 10 hôtes virtuels basés sur IP.

Dans le schéma ci-dessus deux sites exemple1.,com et example2.com ont été affectés à différentes adresses IP et utilisent un hébergement virtuel basé sur IP.

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 /etc/httpd/conf.d/ répertoire., Vous pouvez également vérifier avec:

httpd -M | grep "php5_module"

La sortie est similaire à:

Php gestionnaires d’Apache

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_phpis la plus ancienne de PHP gestionnaire, il fait partie PHP, apache et ne fait pas appel externe du processus PHP. Ce module est installé par défaut dans chaque dépôt de distribution Linux, il est donc très facile d’activer/désactiver ce module.,

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

FastCGI c’est-à-dire mod_fastcgi est une extension de mod_fcgid, où comme mod_fcgid est une alternative haute performance de CGI c’est-à-dire mod_cgi . Il démarre un nombre suffisant d’instances de CGI pour gérer 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 l’activation de mod_ruby. Apache peut également gérer les fichiers ruby via FastCGI., Il est possible d’utiliser plusieurs versions de ruby avec l’aide de mod_fcgid c’est à dire FastCGI.

Vous pouvez également installer apache passenger et configurer Apache pour qu’il l’utilise pour servir des pages ruby.

(Phusion Passenger également connu sous le nom de « passenger” est un module de serveur web gratuit conçu pour s’intégrer à Apache et Nginx)

étapes pour installer mod_ruby sur votre serveur –

comment exécuter Ruby avec Apache

Nous devons ajouter le module mod_ruby à la configuration Apache, c’est-à-dire/etc/httpd / conf.d / ruby.conf et ajouter la ligne suivante. il est possible de créer des modules de modules ruby_module/mod_ruby.,donc

Si vous souhaitez activer ou désactiver ces modules, vous devez modifier 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

Ce sont des choses courantes qui améliorent la sécurité de vos serveurs Web Apache.,

1) Cacher les informations sur la version et le système D’exploitation D’Apache:

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 peut utiliser ces informations pour lancer une attaque avec le public vulnérabilités disponibles dans la version du serveur ou de l’OS.

afin d’empêcher Apache webserver de lire ces informations, nous devons modifier

l’option « signature du serveur” disponible dans le fichier de configuration apache., Par défaut, il est « activé », nous devons le définir”désactivé ».

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

Nous avons également défini « ServerTokens Prod” qui indique au serveur web de renvoyer uniquement apache et de supprimer les versions majeure et mineure du système d’exploitation

Après avoir modifié le fichier de configuration, vous devez redémarrer / recharger votre serveur web,

service httpd restart

2) Désactiver l’Inscription à l’Annuaire

Si votre répertoire racine du document n’a pas un fichier d’index, par défaut de votre serveur web apache affiche 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.,

<Directory /var/www/html> Options -Indexes</Directory>

3) la Désactivation de modules inutiles

Il est de bonne pratique de désactiver tous les modules inutiles qui ne sont pas en cours d’utilisation. Vous pouvez voir la liste des modules activés disponibles dans votre fichier de configuration apache –

de nombreux modules répertoriés peuvent être désactivés commemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, car ils ne sont pratiquement utilisés par aucun serveur 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 restart

4) restreindre l’accès aux fichiers en dehors du répertoire racine web

Si vous souhaitez vous assurer que les fichiers en dehors du répertoire racine web ne sont pas accessibles, vous devez vous assurer que le répertoire est restreint avec « autoriser” et « refuser l’option” dans votre fichier

<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>

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 Dos (C’est-à-dire le déni de Service), vous devez activer le module mod_evasive. Il s’agit d’un module tiers qui détecte les attaques Dos et empêche l’attaque de faire autant de dégâts qu’elle le ferait si elle restait à suivre son cours. Il pourrait être téléchargé ici.,

télécharger le fichier ci-dessus

6) Utiliser mod_security pour améliorer la sécurité 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 des 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 pas de restriction sur la taille totale de la requête http qui pourrait conduire à une attaque de DoS., Vous pouvez limiter la taille de la requête D’une directive Apache « LimitRequestBody” avec la balise directory. La valeur pourrait être définie de 0 à 2 Go (c’est-à-dire 2147483647 octets) selon vos besoins.

<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>

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, c’est-à-dire

  • TransferLog: création d’un fichier journal.
  • Format : Spécification d’un format personnalisé.,
  • CustomLog : création et mise en forme d’un fichier journal.

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

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 apache2.conf (Debian / ubuntu) ou httpd.,fichier conf (rpm based systems)

format de journal commun

LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common

journal commun généré par Apache

 client denied by server configuration: /export/home/live/ap/htdocs/test

format de journal combiné

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

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 requête du client. (« OBTENIR / 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)
  • Referer est la page liée à cette URL.
  • User-agent est la chaîne d’identification du navigateur.

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

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

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

Configurer votre première Production de serveur Web

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 avoir une connexion réseau directe et une adresse staticIP configurée dessus.

3., Il doit avoir tous les modules requis pour exécuter des pages web. Si un serveur web traite des pages PHP, il doit avoir le module PHP activé.

  1. Il doit également avoir 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 maximum d’avantages.,
  2. Si vous avez des centaines de domaines à héberger sur votre serveur web, vous devez implémenter des limitations sur le quota de 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 restreints. Un utilisateur d’hébergement partagé doit avoir le moins de privilèges utilisateur afin de ne pas endommager les fichiers importants & casser l’ensemble du serveur., Apache ne fournit aucune fonctionnalité de ce type et nécessite différentes applications tierces, une personnalisation du système d’exploitation pour y parvenir.
  4. Si vous ajoutez un nouveau domaine sur votre serveur web, il doit éditer 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 un paramètre PHP différent du reste des domaines, l’implémenter 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 de règles iptables avec la ligne de commande est très complexe. Il a besoin d’une 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; c’est 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 comme le courrier électronique, le FTP pour le téléchargement de fichiers, le système de noms de domaine pour les domaines garés., La gestion de toutes ces applications sur un système Linux/Unix 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, la personnalisation de chaque application pour atteindre le résultat souhaité. Le dépannage de toute configuration manquante sera très difficile pour les débutants.

la Solution utilisant Cpanel ou un logiciel similaire

Cpanel fournit un moyen 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 obstacles techniques à l’entrée dans la gestion de l’hébergement et du serveur web. Il facilite la tâche complexe, il fournit de nombreuses interfaces web utiles et faciles à utiliser qui effectuent les tâches d’administration du système courantes requises pour faire fonctionner un serveur web.

cPanel compile sa propre version de logiciel.

Si vous devez recompiler votre serveur web, c’est à dire, apache sur la 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 aussi du courrier, DNS, FTP et bien d’autres services nécessaires à votre application web.,

une tâche qui nécessite une expertise sur l’hébergement basé sur Linux / Unix, comme l’installation de SSLs, la recompilation D’Apache avec différents modules PHP, la mise à jour de la sécurité Web, la configuration de règles iptables efficaces, L’ajout d’utilisateurs ftp, la création de comptes de messagerie pour chaque domaine, la numérisation de la racine

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

Il fournit une fonctionnalité de sauvegarde et de restauration éliminant le besoin de copier manuellement les fichiers dans 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 mails, les comptes ftp, les bases de données, les enregistrements DNS et d’autres applications.

Il fournit également une documentation robuste, et a une très grande communauté d’utilisateurs où vous pouvez discuter et obtenir une solution de vos problèmes.

donc, on peut dire que cPanel est une 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 à cPanel comme Plesk, ISPConfig, Ajenti, Kloxo, Panneau Ouvert, Zpanel etc.

Leave a Comment