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/mven root dans un vhost : re-chownversSYSUSER:psacln, ouplesk repair fsen cas de doute.