- 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
3.6 KiB
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}}etdig +short www.{{SITE}}: les deux doivent répondre {{IP}}.
Créer le site
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}} :
sudo v-add-letsencrypt-domain {{CLIENT}} {{SITE}} www.{{SITE}}
Forcez ensuite le HTTPS, et activez HSTS pour que les navigateurs refusent ensuite le HTTP :
sudo v-add-web-domain-ssl-force {{CLIENT}} {{SITE}}
sudo v-add-web-domain-ssl-hsts {{CLIENT}} {{SITE}}
[!CHECK]
curl -sI http://{{SITE}} | head -3renvoie une redirection301vershttps://, etcurl -sI https://www.{{SITE}} | head -1renvoieHTTP/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 :
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) :
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.inidans le dossier servi par le web (pour Symfony :public_html/public/) :memory_limit = 512M upload_max_filesize = 64M post_max_size = 64MIl est pris en compte après environ 5 minutes. HestiaCP règle déjà
upload_max_filesizeetpost_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 :
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.
- Web › survolez le domaine › Installer une application.
- 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.
- 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
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.