logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Table des matières

le serveur apache

  
* Objet : du tuto : une approche du serveur apache2
* Auteur : Lagrenouille
* Niveau requis : {{tag>débutant avisé}}
* Commentaires : //Contexte d'utilisation du sujet du tuto. // 
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)

Introduction

Internet désigne l’interconnexion mondiale de réseaux, permettant à des milliards d’équipements disséminés dans le monde de communiquer.

Le Web, de son côté, désigne le système hypertexte constitué de l’ensemble des pages desservies par les serveurs HTTP de par le monde.

la doc en français : https://httpd.apache.org/docs/2.4/fr/getting-started.html

Pour communiquer, un serveur et un client ont besoin d'utiliser un protocole commun.

Pour le Web, ce protocole s'appelle HTTP (Hyper Text Transfert Protocol

Le serveur HTTP est le premier et le plus connu des projets, mais la fondation Apache va bien plus loin que cela, et gère d’autres projets d’envergure. serveur LDAP, * OpenOffice.org, SpamAssassin, Subversion,Tomcat….

Apache supporte – bien évidemment – le protocole sécurisé HTTPS, qui permet de chiffrer les communications afin d’en empêcher la lecture par un tiers. Ce support est disponible avec le module mod_ssl .

Un serveur web est un logiciel permettant à des clients, d’accéder à des pages web, c’est-à-dire en réalité des fichiers au format HTML à partir d’un navigateur, ce navigateur est votre client web.

Un serveur web est donc un « simple » logiciel capable d’interpréter les requêtes HTTP arrivant sur le port associé au protocole HTTP (par défaut sur le port 80), et de fournir une réponse avec ce même protocole.

Lorsqu’il démarre, Apache charge les fichiers de configuration et se met en attente de requêtes sur les interfaces réseaux. On dit qu’il écoute (listen en anglais) certains ports.

Le navigateur résout le nom de domaine (il obtient l’adresse IP du serveur. Il envoie une requête HTTP avec la méthode GET à l’IP du serveur sur le port 80 (ou HTTPS sur le port 443) pour lui demander de retourner un contenu particulier.

Le serveur HTTP reçoit la requête, et en fonction de divers paramètres (URL appelée, configuration du serveur, etc.), va chercher un contenu dans un fichier ou lance un script qui va générer un contenu.

Le serveur renvoie ce contenu à l’IP du navigateur depuis le même port (80 ou 443).

Le navigateur traite le contenu et le rend accessible à l’internaute (en l’affichant à l’écran

HTTP (HyperText Transfer Protocol) est un protocole de communication entre un client et un serveur développé pour le Web. L’une de ses fonctions principales est ainsi de récupérer des pages Web.

Quand on ouvre une URL en http://, le navigateur va agir comme un client HTTP. Il va donc envoyer une requête HTTP.

Le serveur HTTP renvoie une réponse HTTP qui contient la page Web demandée.Le navigateur interprète alors la page Web et l’affiche.

Le client : c’est le visiteur d’un site Web. Il demande la page Web au serveur. vous êtes des clients quand vous surfez sur le Web

c’est votre navigateur Web qui est le client, car c’est lui qui demande la page Web.

Les serveurs : ce sont les ordinateurs qui délivrent les sites Web aux internautes (aux clients)

Installation

Quelques installations qui vous seront utils

apt install apache2 libapache2-mod-php7.0 libapache2-mod-evasive apachetop asql debsums php php5-dev php5-gd php-mysql php7.0.sqlite3 php7.0-cli phpmyadmin mysql sqlite mysql-server mysql-client openssh-client openssh-server openssh-sftp-server rsync fail2ban multitail

-apache2-utils est installé par defauts ainsi que mariadb

-multitail est un utilitaire pour surveiller les logs apache en directe via un terminal.

multitail /var/log/apache2/access.log

asql un petit outil qui permet d’interroger vos logs Apache, voir plus loin.

debsums est un utilitaire pour afficher sur votre terminal tout ce qui est installé et concerne un logiciel

debsums --all | grep apache2

php5-dev : Fichiers de développements (nécessaires pour certains modules) ; php5-gd : La librairie GD, pour manipuler les images.

et ssh, rsync donne accès pour les configurations

Utilisation

J'installe mon ou mes sites en générale dans un répertoire que je nomme WEB, je ferai des liens symbolique vers /var/www/html.

je mets ensuite les droits à 770, (excepté quelques fichiers si c'est du spip à l’installation qui requièrent 777)

Pour que apache puisse écrire sur les fichiers, le groupe doit appartenir à www-data, puis a laide d'adduser je me mets dans le groupe www-data

groups
lagrenouille disk cdrom floppy sudo audio dip www-data video plugdev netdev scanner lpadmin lufi

Il faut configurer un VirtualHost par site et les activer.

La configuration d’Apache utilise des balises sous la forme

<...>, / , </...>
<VirtualHost *:80> ou voir <VirtualHost *:8390> suivant le port
DocumentRoot /var/www
[...]
</VirtualHost>

Nous définissons donc ici un hôte virtuel. L’argument en ouverture du bloc, « *:80 », ou autre port, correspond à l’interface physique et au port sur lequel écouter.

https://httpd.apache.org/docs/2.4/fr/vhosts/examples.html

Avec Apache, chaque site ou application web correspond en principe à un hôte virtuel (VirtualHost en anglais).

Chaque hôte virtuel est défini par un fichier de configuration indépendant, qu’on trouve ou qu’on créé dans le répertoire /etc/apache2/sites-available/.

La majorité de la configuration d’Apache se fait donc dans les fichiers .conf .

Les répertoires mods-enabled et sites-enabled ne contiennent que des liens symboliques vers leurs équivalents en *-available .

Les liens symboliques sont gérés par les commandes :

a2ensite pour activer un site (apache2 enable site) ;
a2dissite pour désactiver un site (apache2 disable site) ;
a2enmod pour activer un module (apache2 enable module) ;
a2dismod pour désactiver un module (apache2 disablemodule).
a2enconf [configuration d’un service à activer]
a2disconf [configuration d’un service à désactiver

Sur Debian, l’hôte virtuel de la configuration par défaut d’Apache2 est dans un fichier 000-default : ces trois zéros lui permettent d’être évalué en premier lieu et de servir d’hôte par défaut.ce fichier qui détermine aussi comment afficher la page « Itworks !

Autrement dit, ne placez pas une application critique et privée dans le tout premier hôte virtuel : n’importe qui pourrait y accéder sans même connaître son URL !

le paramètre DocumentRoot , que nous venons de rencontrer, permet de signaler à Apache où il doit chercher les fichiers à desservir.

le fichier php.ini Réglage maximale la taille de vos fichiers uploadés sur vos sites, dans /etc/php/7.3/apache2/php.ini

upload_max_filesize = 20000M

Vous aurez parfois ce message:

La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.

memory_limit = 512M

les fichiers .htaccess

permettent également de définir des contextes.

Avant d’aller plus loin:dans votre conf apache. Lorsque la directive AllowOverrideList est définie à None, les fichiers .htaccess sont totalement ignorés. Dans ce cas, le serveur n’essaiera même pas de lire les ichiers .htaccess du système de fichiers.

AllowOverride None

Lorsque cette directive est définie à All, toute directive valable dans le Contexte .htaccess sera autorisée dans les fichiers .htaccess.

si il est spécifié AllowOverrideList Redirect RedirectMatch seules les directives Redirect et RedirectMatch sont autorisées. Toutes les autresprovoqueront une erreur interne du serveur.

voir pour les les redirections ici https://httpd.apache.org/docs/2.4/fr/rewrite/remapping.html

 C'EST PAS FINI .O))
utilisateurs/lagrenouille/tutos/le-serveur-apache2.1572982331.txt.gz · Dernière modification: 05/11/2019 20:32 par lagrenouille

Pied de page des forums

Propulsé par FluxBB