Files
vps-docs/hestiacp/chapitres/07-sites-web.md
Zana 2e18724685 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
2026-09-10 20:01:59 +02:00

94 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.