Gérer son site en mode console
Dans ce billet, se trouvent résumées les procédures que j'utilise pour gérer mon site en mode console (shell -ligne de commande-, terminal).
Plusieurs outils sous licence "libres" sont disponibles pour établir les connexions cryptées SSH vers la ligne de commande (shell) de mon serveur distant. J'utilise :

1. Putty
L'image ci-contre présente la fenêtre qui s'ouvre pour paramétrer la connexion :
l'adresse de votre serveur web ;
le type de connexion ;
le comportement du shell.

L'image ci-contre présente la fenêtre du terminal (shell) obtenu :
saisissez votre identifiant de connexion ;
saisissez votre mot de passe ;
saisissez votre commande (exemple : pwd ou ls).
2. mRemoteNG
Pour créer la connexion au serveur, suivez les 8 étapes illustrées par les 2 images ci-dessous :
Dans la fenêtre "connexions", effectuer un clic-droit pour ouvrir le menu contextuel ;
Dans ce menu, cliquer sur l'item "Nouvelle connexion" ;
Un item "Nouvelle connexion" est apparu dans la fenêtre "connexions" ;
Dans la fenêtre "Configuration" (dont le contenu dépend de l'item "connexion" choisi) ;
Compléter le champ "Nom" pour identifier cette nouvelle connexion" ;
Compéter l'adresse IP ou le nom complet du serveur (URL) à joindre ;
Compléter les informations d'authentification du compte qui établira la connexion avec le serveur.

Indiquer enfin SSH dans la section "protocole" pour obtenir la configuration illustrée ci-contre :
3. Les principales actions
Automatiser des tâches avec CRON
CRON est un programme (sur les serveurs UNIX) pour exécuter régulièrement (par exemple tous le jours à 09h37) et de manière automatique des commandes (par exemple : optimisation de la BdD).
La commande "crontab" permet de créer ou de modifier la liste des tâches à automatiser :
crontab -l // affiche la liste des tâches
crontab -e //ouvre la liste dans l'éditeur de texte par défaut du serveur ("le plus souvent "vi")
Par exemple, le code suivant :
MAILTO = "daniel@dhumbert.info"
@daily /usr/bin/php8.1-cli $HOME/mycron.php
permet à CRON de lancer tous les jours à 0H00 l'exécution du script "mycron.php" situé dans le dossier privé de l'utilisateur et envoie sur l'adresse mail "daniel@dhumbert.info" le résultat produit par le script


Avec "vi", l'éditeur de texte par défaut sous linux, lorsque la table cron est affichée en résultat de la commande "crontab -e", utiliser :
- la touche "i" pour passer en mode saisie ;
la touche "echap" pour quitter le mode saisie puis taper ":wq" pour sauvegarder ou ":q" pour quitter sans sauvegarder.
Installer composer
"curl" est une (interface de) commande permettant le transfert de données depuis (ou vers) un serveur à l'aide des protocoles tels que HTTP, FTP ...
exemple :
curl -sS https://getcomposer.org/installer | /usr/bin/php8.1-cli
-s : exécution de "curl" en mode silencieux ;
-S : affiche les erreurs ;
https://getcomposer.org/installer : lien de téléchargement du programme "installer" de "composer" ;
| : le fameux "pipe" linux pour enchaîner les commandes donc le programme "installer", téléchargé par "curl -sS https://getcomposer.org/installer", est exécuté par le programme php8.1-cli du dossier /usr/bin.
Pour vérifier que l'installation de "composer" s'est bien déroulée, taper la commande :
/usr/bin/php8.1-cli composer.phar
qui produit l'affichage ci-contre.
Pour mettre à jour la version de "composer", utiliser la commande :
/usr/bin/php8.1-cli composer.phar self-update

installer drush ( DRUpal SHell)
php8.1-cli composer.phar global require drush/drush:dev-master
Créer ou adapter le fichier de profil pour que votre environnement par défaut connaisse "drush"
Editer votre fichier de profil :
nano .profile
Voici le contenu de mon fichier ".profile" :
alias drush='/usr/bin/php8.1-cli ~/.composer/vendor/drush/drush/drush.php --php=/usr/local/bin/php8.1'
export COLUMNS
Attention : il faut se reconnecter pour que les modifications apportées au profil soient prises en compte.

Vérifier le fonctionnement de drush
drush st
pour les commandes disponibles avec drush : www.drush.org
Je me suis inspiré du billet de "Dave Boulden" pour l'installation de drush à partir de composer. Cependant je n'ai pas utilisé le profil qu'il propose et qui fonctionnait mal chez moi. J'ai suivi commentaire de "greg.1.anderson" posté sur drupal.
Installer/retirer un module avec composer
Je vais utiliser le module "devel" comme exemple de module à installer ou désinstaller :

composer require drupal/devel (ou /usr/bin/php8.1-cli composer.phar require drupal/devel) permet l'installation du module "devel" et de ses dépendances ;
les fichiers du modules sont copiés dans le dossier "modules/contrib/devel" du site web ;
pour installer la version précise 5.1.1, utiliser la syntaxe drupal/devel:^5.1.1 ;
composer remove drupal/devel (ou ... ) permet la désinstallation du module "devel" et de ses dépendances ;
le dossier devel de "modules/contrib" est supprimé.
NB : il faut ensuite activer ce module à travers la page /admin/modules.

sources :
- www.drupal.org/node/828466 et le commentaire de greg.1.anderson pour les options à ajouter à l'alias ;
- http://www.daveboulden.co.uk/index.php/2015/03/03/installing-drush-7-on-11-unlimited-shared-hosting/
