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

3.6 KiB
Raw Blame History

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

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 -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 :

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.ini dans le dossier servi par le web (pour Symfony : public_html/public/) :

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 :

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

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.