Exécution de scripts et gestion des versions PHP/Node sur serveurs Plesk

Cette documentation présente les bonnes pratiques pour exécuter des scripts en CLI (lignes de commande) sur un serveur Plesk en environnement multi-users, ainsi que la gestion des différentes versions de PHP et Node disponibles.
L’objectif est de garantir :

  • une exécution correcte des scripts sans problème de permissions,
  • une utilisation cohérente des environnements utilisateurs,
  • et une sécurité optimale en évitant les mauvaises pratiques (comme donner des droits sudo aux simples users).

Elle s’adresse principalement aux administrateurs ayant accès root, qui souhaitent intervenir sur des domaines ou sous-domaines hébergés sous Plesk.


1. Exécution de scripts : bonnes pratiques

  • Toujours exécuter un script appartenant à un user depuis ce même user.
  • Si on exécute un script directement depuis root, les fichiers générés appartiendront à root → ce qui provoque des problèmes de droits d’accès.

Exécuter une commande en tant qu’un user

Depuis root, deux possibilités :

  • Ouvrir une session interactive, puis lancer les commandes directement :
sudo -iu username
  • Exécuter une seule commande, plus pratique pour enchaîner des traitements sur plusieurs users :
sudo -iu username commande

👉 Important : on « abaisse » volontairement les droits depuis root vers le user.
À l’inverse, il ne faut jamais donner des droits sudo à un simple user sur un serveur web (risque de sécurité et perte d’isolation entre les domaines).

2. Gestion des versions de PHP

Mécanisme via SSH

Sur Plesk, chaque domaine (ou sous-domaine) peut avoir sa propre version de PHP.
Lorsqu’un user se connecte en SSH, une variable d’environnement définit automatiquement la bonne version de PHP pour lui.

C’est pourquoi il est nécessaire d’utiliser -i avec sudo pour charger correctement son environnement :

sudo -iu username php -v

Utiliser une version spécifique

Les exécutables PHP sont disponibles dans :

/opt/plesk/php/7.4/bin/php
/opt/plesk/php/8.1/bin/php
/opt/plesk/php/8.2/bin/php
/opt/plesk/php/8.3/bin/php
/opt/plesk/php/8.4/bin/php

Exemple : exécuter PHP 7.4 pour un user donné :

sudo -iu username /opt/plesk/php/7.4/bin/php -v

3. Gestion de Node.js

Même logique que pour PHP.
Exemples de répertoires :

/opt/plesk/node/20/bin/node
/opt/plesk/node/22/bin/node
/opt/plesk/node/24/bin/node

Commande depuis root pour exécuter Node avec l’environnement du user :

sudo -iu username /opt/plesk/node/24/bin/node -v

4. Bonnes pratiques de shell

Il est recommandé d’utiliser /bin/bash comme shell par défaut pour les users de services, plutôt que /bin/sh, afin d’éviter des limitations ou incompatibilités.

5. Rappel de sécurité

  • Exécuter depuis root avec sudo -iu username est la méthode recommandée.
  • Chaque user doit rester isolé dans son dossier.
  • Ne jamais transformer un simple user en sudoer.

✅ Avec ces pratiques, vous pourrez gérer sereinement l’exécution des scripts et des différentes versions de PHP/Node sur tes serveurs Plesk.

🤖 LRobot, ton assistant IA