Ajout du guide PDF HestiaCP réutilisable (HestiaCP 1.10.4)

- 14 chapitres + annexe en Markdown (chapitres/), 99 étapes
- Générateur WeasyPrint (build/build.py) : PDF générique ou
  personnalisé via --vars fichier.conf
- PDF générique + PDF personnalisé srv1.skglobalinstitute.com
- Commandes v-* vérifiées contre le code source HestiaCP 1.10.4
- 03-bis-hestiacp.md pointe vers le nouveau guide

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018J2PsVQ28oW4xEkWJpcU9G
This commit is contained in:
Zana
2026-09-10 20:01:59 +02:00
parent acbe11489c
commit 2e18724685
31 changed files with 2419 additions and 44 deletions

View File

@@ -0,0 +1,93 @@
# Sites web et certificats SSL
Chaque site passe par **Nginx** (en façade, pour les fichiers statiques, le SSL et le cache), puis **Apache** (qui lit les `.htaccess`), puis **PHP-FPM**. Le PHP-FPM tourne sous l'utilisateur {{CLIENT}}, avec un pool par domaine.
> [!NOTE] Prérequis
> Le domaine doit déjà pointer vers le serveur (chapitre 6), sinon Let's Encrypt ne peut pas valider le certificat. Vérifiez avec `dig +short {{SITE}}` et `dig +short www.{{SITE}}` : les deux doivent répondre {{IP}}.
## Créer le site
```bash
sudo v-add-web-domain {{CLIENT}} {{SITE}}
```
L'alias `www.{{SITE}}` est ajouté automatiquement. Le site se trouve dans `/home/{{CLIENT}}/web/{{SITE}}/public_html/`, avec une page d'accueil HestiaCP par défaut.
## Activer le certificat Let's Encrypt
Indiquez explicitement l'alias `www`, sinon le certificat ne couvre que {{SITE}} :
```bash
sudo v-add-letsencrypt-domain {{CLIENT}} {{SITE}} www.{{SITE}}
```
Forcez ensuite le HTTPS, et activez HSTS pour que les navigateurs refusent ensuite le HTTP :
```bash
sudo v-add-web-domain-ssl-force {{CLIENT}} {{SITE}}
sudo v-add-web-domain-ssl-hsts {{CLIENT}} {{SITE}}
```
> [!CHECK]
> `curl -sI http://{{SITE}} | head -3` renvoie une redirection `301` vers `https://`, et `curl -sI https://www.{{SITE}} | head -1` renvoie `HTTP/2 200`.
> [!TIP]
> Le renouvellement est automatique. Dans le panel, la même chose se fait en modifiant le domaine : **Activer le SSL pour ce domaine**, **Utiliser Let's Encrypt pour obtenir un certificat SSL**, **Activer la redirection automatique en HTTPS**.
## Choisir la version de PHP du site
Listez les versions disponibles, puis appliquez-en une au site :
```bash
sudo v-list-sys-php
sudo v-list-web-templates-backend
sudo v-change-web-domain-backend-tpl {{CLIENT}} {{SITE}} PHP-8_4
```
Pour installer une version supplémentaire plus tard (ex. 8.5) :
```bash
sudo v-add-web-php 8.5
```
> [!NOTE] Réglages PHP par site
> Pour modifier une valeur PHP d'un seul site (ex. `memory_limit`), créez un fichier `.user.ini` dans le dossier servi par le web (pour Symfony : `public_html/public/`) :
>
> ```ini
> memory_limit = 512M
> upload_max_filesize = 64M
> post_max_size = 64M
> ```
>
> Il est pris en compte après environ 5 minutes. HestiaCP règle déjà `upload_max_filesize` et `post_max_size` à 100M.
## Créer un site en sous-domaine
Exemple avec `app.{{DOMAINE}}` : d'abord l'enregistrement DNS (chapitre 6), puis le site et son certificat. Pour un sous-domaine, pas d'alias `www` :
```bash
sudo v-add-dns-record {{CLIENT}} {{DOMAINE}} app A {{IP}}
sudo v-add-web-domain {{CLIENT}} app.{{DOMAINE}}
sudo v-add-letsencrypt-domain {{CLIENT}} app.{{DOMAINE}}
sudo v-add-web-domain-ssl-force {{CLIENT}} app.{{DOMAINE}}
```
## Installer WordPress en un clic (facultatif)
HestiaCP intègre un installeur d'applications : WordPress, Laravel, Symfony, Nextcloud, Joomla, Drupal, PrestaShop, entre autres.
1. **Web** › survolez le domaine › **Installer une application**.
2. Choisissez **WordPress**, remplissez le formulaire (titre, compte administrateur WordPress, e-mail, version de PHP) et laissez cochée la création de la base de données.
3. Validez : la base est créée et WordPress est installé dans `public_html`.
> [!TIP]
> Pour un WordPress, le modèle proxy **caching** de Nginx accélère nettement les pages publiques : `sudo v-change-web-domain-proxy-tpl {{CLIENT}} {{SITE}} caching`.
## Consulter les journaux d'un site
```bash
sudo tail -f /var/log/apache2/domains/{{SITE}}.error.log
sudo tail -f /var/log/nginx/domains/{{SITE}}.error.log
```
Ces journaux sont aussi visibles dans `/home/{{CLIENT}}/web/{{SITE}}/logs/` et dans le panel, via l'icône journal du domaine.