Aller au contenu

Plesk Obsidian — Référence CLI

Commandes plesk bin utiles au quotidien (Ubuntu 24.04, Plesk Obsidian). Toujours exécutées en root sur le serveur. La règle reste : root pour l'administration Plesk, sysuser pour tout ce qui touche au code des projets.


Domaines et abonnements

# Lister tous les domaines
plesk bin domain --list

# Infos complètes d'un abonnement (inclut le sysuser "FTP Login")
plesk bin subscription --info exemple.com

# Trouver rapidement le sysuser d'un domaine
plesk bin subscription --info exemple.com | grep -i "FTP Login"

# Créer un abonnement
plesk bin subscription --create exemple.com -owner admin \
  -service-plan "Default Domain" -ip SHARED \
  -login sysuser_exemple -passwd 'MotDePasseFort'

# Créer un sous-domaine
plesk bin subdomain --create docs -domain exemple.com -www-root /docs.exemple.com

# Activer le shell bash pour le sysuser (requis pour SSH/scripts)
plesk bin subscription --update exemple.com -login LE_SYSUSER -shell /bin/bash

# Supprimer un domaine (IRRÉVERSIBLE — backup avant, voir plus bas)
plesk bin domain --remove exemple.com

Sauvegarde / restauration

# Backup complet d'un domaine (config + fichiers + BD + mail + DNS)
plesk bin pleskbackup --domains-name exemple.com \
  --output-file /root/backup-exemple-$(date +%Y%m%d).tar

# Restauration
plesk bin pleskrestore --restore /root/backup-exemple-20260716.tar -level domains

# Lister le contenu d'un backup avant restauration
plesk bin pleskrestore --info /root/backup-exemple-20260716.tar

Protection et accès

# Protéger un site (ou un sous-dossier) par mot de passe
plesk bin protdir --create "" -domain exemple.com \
  -title "Acces prive" -add_user utilisateur -passwd 'MotDePasse'
# ("" = racine du site ; mettre "admin" pour /admin, etc.)

# Retirer la protection
plesk bin protdir --remove "" -domain exemple.com

PHP

# Versions PHP installées ("handlers")
plesk bin php_handler --list

# Changer la version PHP d'un domaine
plesk bin domain --update exemple.com -php_handler_id plesk-php85-fpm

# Exécuter du PHP avec la version d'un domaine (en sysuser)
plesk php -d memory_limit=512M script.php

Base de données

# Créer une BD + son user pour un domaine
plesk bin database --create exemple_db -domain exemple.com -type mysql
plesk bin database --create-dbuser exemple_user -passwd 'MotDePasse' \
  -domain exemple.com -database exemple_db

# Accès MySQL admin direct
plesk db

Fail2Ban (IP Address Banning)

# État général et jails
fail2ban-client status
fail2ban-client status ssh

# Débannir une IP
fail2ban-client set ssh unbanip X.X.X.X

# IP de confiance actives
fail2ban-client get ssh ignoreip

Tunnel et IP de confiance

Toujours ajouter le réseau VPN interne (ex. 10.20.20.0/24) et l'IP d'administration aux IP de confiance (Outils & Paramètres → IP Address Banning → Adresses IP de confiance). Sinon, quelques tests SSH ratés suffisent à se bannir soi-même.

Extensions

# Lister les extensions installées
plesk bin extension --list

# Appeler une extension en CLI (exemple générique)
plesk ext NOM_EXTENSION [arguments]

SSL

# Émettre/renouveler un certificat Let's Encrypt
plesk bin extension --exec letsencrypt cli.php \
  -d exemple.com -d www.exemple.com --email admin@exemple.com

Divers utiles

# Réparer les permissions d'un vhost (après manipulations en root)
plesk repair fs exemple.com -y

# Statut des services Plesk
plesk sbin statistics --calculate-one --domain-name=exemple.com
service psa status

# Logs principaux
tail -f /var/log/plesk/panel.log
tail -f /var/www/vhosts/exemple.com/logs/error_log

Rappels de convention

  • Jamais de scripts projet en root : root sert à l'administration Plesk (créer, sauvegarder, protéger), les scripts .sh des projets roulent en sysuser depuis private/scripts/.
  • private/ n'est jamais servi par le web : sources, scripts et secrets y vivent ; httpdocs/ ne reçoit que le résultat final.
  • Après un chown/mv en root dans un vhost : re-chown vers SYSUSER:psacln, ou plesk repair fs en cas de doute.