« Serveur Web Apache2 » : différence entre les versions
Ligne 22 : | Ligne 22 : | ||
** site1.domaine.tld.'''csr''' : fichier de demande de certificat pour le site exemple. | ** site1.domaine.tld.'''csr''' : fichier de demande de certificat pour le site exemple. | ||
** site1.domaine.tld.'''crt''' : certificat SSL pour le site exemple. | ** site1.domaine.tld.'''crt''' : certificat SSL pour le site exemple. | ||
<br /> | |||
* Le cas échéant, le programme certbot sera utilisé pour générer des certificats Let's Encrypt. | * Le cas échéant, le programme certbot sera utilisé pour générer des certificats Let's Encrypt. | ||
Version du 6 juillet 2024 à 23:35
— Serveur Web —
Certificats SSL Web | .htaccess | Authentification par carte à puce | Certificats Let's Encrypt
Archives : Ancien article sur Apache2 | Module Whois | ProFTPd
Architecture & Organisation
Pour chaque site web hébergé sur le serveur web, il faudra systématiquement créer et référencer :
- 1 compte d’accès SFTP
- 1 hôte virtuel Apache2 (VHost)
- 1 certificat électronique SSL
- 1 nom de domaine
- 1 base de données SQL
- Chaque site web dispose d’un répertoire web à la racine :
/var/www
- Le nom du répertoire du site web reprend son nom de site (FQDN) ainsi que la version de développement du site :
/var/www/exemple/2.5.0/
- S'il s'agit de sites intranets, les certificats pour les sites web nécessitant une connexion SSL sont stockés dans le répertoire :
/etc/ssl/private
- Et sont nommés tel que définit :
- site1.domaine.tld.key : fichier de clé privé pour le site exemple.
- site1.domaine.tld.csr : fichier de demande de certificat pour le site exemple.
- site1.domaine.tld.crt : certificat SSL pour le site exemple.
- Le cas échéant, le programme certbot sera utilisé pour générer des certificats Let's Encrypt.
Gestion des comptes SFTP
|
Un compte SFTP permet de se connecter au système de fichiers du serveur web de manière sécurisée. Utiliser un client comme Filezilla pour vous connecter en SFTP. |
Création d’un utilisateur SFTP
- Création de l’utilisateur UNIX exemple :
|
|
- Affectation de l’utilisateur au groupe UNIX SFTP :
|
|
Changer le mot de passe d’un compte SFTP
- Pour réinitialiser ou mettre à jour le mot de passe d’un compte SFTP, utiliser la commande passwd.
|
|
Supprimer un compte SFTP
- Dissocier l’utilisateur du groupe SFTP :
|
|
- Supprimer le compte utilisateur :
|
|
Préparation du dossier web
Création du répertoire web
- Depuis la racine /var/www/ créer le répertoire de l’application nommé par le nom du site :
|
|
- Ensuite, créer un sous-répertoire correspondant à la version courante de l’application :
|
|
Définition des permissions d’accès
- Affecter l’utilisateurs exemple à la racine /var/www/exemple :
|
|
- Autoriser les droits rwx pour le propriétaire et rx pour tous les utilisateurs sur le répertoire :
|
|
Création de l’hôte virtuel (Vhost)
Création du Vhost http
- Depuis la racine /etc/apache2/site-available, créer le fichier exemple.domaine.tld.conf et y insérer / adapter les lignes suivantes :
<VirtualHost *:80> DocumentRoot /var/www/exemple.domaine.tld ServerName exemple.domaine.tld ErrorLog ${APACHE_LOG_DIR}/exemple.domaine.tld_error.log CustomLog ${APACHE_LOG_DIR}/exemple.domaine.tld_access.log combined <Directory /var/www/exemple.domaine.tld> allow from all AllowOverride all Options +Indexes </Directory> </VirtualHost>
- Activation de l’hôte virtuel exemple.domaine.tld :
|
|
- Redémarrer le service Apache2 pour prendre en compte les modifications :
|
|
- Le site web est dès à présent accessible depuis l’url : http://exemple.domaine.tld.
Si la résolution DNS ne fonctionne pas, assurez-vous d'avoir correctement déclarés vos enregistrements DNS. Pour de plus amples informations, vous pouvez vous référer à cette article Création d'une zone DNS sur Bind9 |
Création du Vhost https
- Depuis la racine /etc/apache2/site-available, créer le fichier exemple.domaine.tld.conf et y insérer / adapter les lignes suivantes :
<VirtualHost *:80> DocumentRoot /var/www/exemple.domaine.tld ServerName exemple.domaine.tld ErrorLog ${APACHE_LOG_DIR}/exemple.domaine.tld_error.log CustomLog ${APACHE_LOG_DIR}/exemple.domaine.tld_access.log combined <Directory /var/www/exemple.domaine.tld> allow from all AllowOverride all Options +Indexes </Directory> </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www/exemple.domaine.tld ServerName exemple.domaine.tld ErrorLog ${APACHE_LOG_DIR}/exemple.domaine.tld_error.log CustomLog ${APACHE_LOG_DIR}/exemple.domaine.tld_access.log combined <Directory /var/www/exemple.domaine.tld> allow from all AllowOverride all Options +Indexes </Directory> SSLEngine on SSLCertificateFile /etc/ssl/private/exemple.domaine.tld.crt SSLCertificateKeyFile /etc/ssl/private/exemple.domaine.tld.key </VirtualHost>
- Activation de l’hôte virtuel exemple.domaine.tld :
|
|
- Redémarrer le service Apache2 pour prendre en compte les modifications :
|
|
- Le site web est dès à présent accessible depuis l’url : https://exemple.domaine.tld.
Création du pool PHP
|
Les pools permettent de contrôler les droits et les ressources utilisés pour chaque VHost hébergés sur le serveur. |
- Créer le fichier de configuration /etc/php/8.2/fpm/pool.d/exemple.conf et y adapter/coller les lignes suivantes :
[exemple] user = exemple group = exemple listen = /run/php/php8.2-fpm.exemple.sock listen.owner = exemple listen.group = www-data pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
- Redémarrer le service pour prendre en compte les nouveaux paramètres :
|
|
Version spécifique de PHP
|
Certaines applications web nécessitent une version spécifique de PHP pour fonctionner. Si tel est le cas, voici la procédure à suivre pour forcer sur un vhost spécifique une version de PHP donnée. |
- Editer le fichier de configuration du VHost du site pour lequel la version de PHP doit être modifiée. Juste avant la balise :
</VirtualHost>
- Ajouter les éléments suivants :
<FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php8.2-fpm.exemple.sock|fcgi://localhost" </FilesMatch>
- Remplacer php8.2 par la version de PHP souhaitée.
- Un redémarrage du service Apache2 est nécessaire pour la bonne prise en compte des paramètres :
|
|
Changer l’utilisateur du processus Apache
|
Dans le cas d’une configuration d’un VHost, le processus apache doit fonctionner avec l’utilisateur assigné au VHost. |
- Editer le fichier de configuration du VHost du site pour lequel la version de PHP doit être modifiée. Juste avant la balise :
</VirtualHost>
- Ajouter les éléments suivants :
<IfModule mpm_itk_module> AssignUserId exemple exemple </IfModule>
- Un redémarrage du service Apache2 est nécessaire pour la bonne prise en compte des paramètres :
|
|