Introduction
Python est essentiellement du code roulé sur nos serveurs et permettant d’héberger, de créer et de contrôler des applications web utilisant ce type de langage.
Dans les lignes qui suivent, nous insisterons sur les renseignements pour débutants. Nous commencerons par expliquer comment accéder à Python dans N0C et nous fournirons un exemple détaillé de lancement et de modification d’une application au moyen de cette interface.
Par après, pour les utilisateurs plus avancés, nous expliquerons comment faire ces mêmes opérations en ligne de commande.
Documentation
On peut trouver sur le Web de la documentation sur Python, en particulier sous : https://docs.python.org/3/.
Vous pouvez vous référer à ce site pour obtenir davantage d’informations sur les commandes de python selector :https://docs.cloudlinux.com/command-line_tools/#new-python-selector.
Débogage d’une application
Lorsqu’une erreur survient, une page comme celle ci-dessous s’affiche :
Cette page n’est pas très explicative. L’activation du mode de développement permet d’investiguer (comment).
Prérequis
Saisissez dans votre navigateur Web l’adresse suivante : https://mg.n0c.com/fr/.
Accès à Python dans N0C
- Dans le menu contextuel, choisissez Langages > Python.
- Les applications déjà mises en place sont affichées dans l’interface :
Mise en place d’une nouvelle application Python avec N0C
Pour expliquer l’approche avec davantage de clarté, nous procéderons avec un exemple.
Admettons que vous vouliez créer l’application run.py qui permet d’afficher les mots «Hello World! ». Les étapes suivantes sont nécessaires :
- En premier lieu, il faut créer une application dans le répertoire destiné à la contenir (nous appellerons ce répertoire « codepython » pour les besoins de l’exemple, l’usager pouvant lui-même donner au répertoire le nom voulu). Lorsqu’elle est exécutée, l’application affiche les mots « It works ! ».
- Il faut ensuite la programmer de manière adéquate (dans notre exemple, pour qu’elle affiche « Hello World! »).
- Il faut par après appeler l’environnement de l’application.
- Enfin, il faut activer l’application dans l’environnement Python.
Étape 1 – Création de l’application Python
Assurez-vous que le répertoire codepython est créé (comment).
- Cliquez sur le bouton Créer :
- Sélectionnez la VERSION de Python voulue :
- Indiquez dans quel RÉPERTOIRE D’APPLICATION vous souhaitez que l’application soit créée (dans notre exemple, on inscrirait codepython).
- Indiquez sous DOMAINE/URL D’APPLICATION depuis quelle URL l’application devrait être accessible (dans notre exemple, on inscrirait codepython).
- Indiquez le nom du FICHIER DE DÉMARRAGE (optionnel).
- Cliquez sur le bouton CRÉER. Un message confirmant la réussite de la création est alors affiché.
- Confirmez la création de l’application run.py et de passenger_wsgi.py1 en ouvrant le répertoire codepython dans le Gestionnaire de fichiers (comment).
- Testez l’application Python en tapant dans votre navigateur https://DOMAINE/codepyton, où il faut remplacer DOMAINE par votre nom de domaine.
- Le résultat est (comme on s’y attendait) : « It works ! ».
Étape 2 – Programmation de l’application
Maintenant que l’application Python est installée dans le répertoire à utiliser et fonctionnelle, on peut la programmer à notre guise. L’application doit être démarrée de nouveau pour voir les modifications s’afficher au navigateur au moment de l’exécution.
Voici les étapes pour programmer :
- Dans le Gestionnaire de fichiers, ouvrez le répertoire (dans notre exemple, codepython) et éditez le code run.py (comment).
- Programmez run.py. Dans notre exemple, copiez le code suivant dans la fenêtre de programmation (comment), de sorte que les mots « Hello World! » soient affichés lorsque l’usager exécutera codepython sur votre domaine :
import os import sys sys.path.insert(0, os.path.dirname(__file__)) def app(environ, start_response) start_response('200 OK', [('Content-Type', ‘text/plain')] message = 'Hello World!n’ version = 'Python %sn' % sys.version.split()[0] response = 'n'.join([message, version]) return [response.encode()]
- Après avoir sauvegardé le code, fermez N0C et ouvrez-le de nouveau pour appliquer les changements.
- Testez l’application Python en tapant dans votre navigateur https://DOMAINE/codepyton, où il faut remplacer DOMAINE par votre nom de domaine.
- Le résultat devrait maintenant être « Hello World! ».
Étape 3 – Appel de l’environnement de l’application
Avant d’effectuer toute autre commande, vous devez appeler l’environnement de l’application en lançant à la racine de votre application la commande suivante, qui va ajuster les variables d’environnement et vous permettre de configurer votre application :
La commande doit être copiée dans le shell du compte en question. Il est possible de se connecter en SSH.
Pour voir la commande, vous devez éditer l’application (veuillez vous référer au paragaphe Modification des paramètres d’une application Python).
Donc, dans notre exemple, la commande copiée est :
source /home/fbkfdayw/virtualenv/codepython/3.8/bin/activate
Où :
- « fbkfdayw » doit être remplacé par votre Nom d’utilisateur;
- « codepython » doit être remplacé par le nom de votre application; et
- « 3.8 » doit être remplacé par le numéro de version de Python de l’application.
Étape 4 – Activation de l’application dans l’environnement Python
Il importe de s’assurer que votre application ait les bonnes versions d’extensions (plugins).
- Cliquez sur l’icône Redémarrer vis-à-vis de l’application à activer (dans notre exemple, codepython) :
- Le message Commande exécutée avec succès doit être affiché pour confirmer le succès de l’activation.
Vous pouvez consulter la documentation disponible sur https://docs.python.org/3/si vous avez besoin d’éliminer les bogues que vous pourriez avoir dans votre code.
Exécution d’actions sur l’application avec N0C
Redémarrage d’une application Python
Parfois, il est nécessaire de redémarrer une application comme, par exemple, lorsque vous modifiez le code.
- Cliquez sur l’icône Redémarrer vis-à-vis de l’application :
- Un message doit être affiché pour confirmer le succès de l’exécution de la commande.
Modification de la version d’une application Python
- Identifiez l’application à modifier et cliquez sur l’icône Modifier la version :
- Sélectionnez la VERSION PYTHON voulue :
- Cliquez sur le bouton MODIFIER.
Modification des paramètres d’une application Python
- Identifiez l’application à modifier et cliquez sur l’icône Modifier :
- Modifiez les paramètres souhaités :
- Cliquez sur le bouton MODIFIER pour enregistrer vos changements.
- Exécutez la commande pour saisir l’environnement de l’application.
Arrêt et démarrage d’une application
On peut arrêter une application en cliquant sur l’icône Arrêter :
On peut démarrer une application en cliquant sur l’icône Démarrer :
Suppression d’une application Python
- Identifiez l’application et cliquez sur l’icône Supprimer :
- À l’invite de commande, confirmez la suppression.
Mise en place d’une nouvelle application Python en ligne de commande
Pour les usagers plus avancés, l’approche par ligne de commande peut être employée.
Les étapes suivantes doivent être suivies dans l’ordre :
- se connecter en SSH;
- retrouver les versions de Python disponibles;
- créer l’application de base fonctionnelle au niveau de CloudLinux.
Étape 1 – Connection en SSH
Connectez-vous en SSH (comment).
Par exemple, si vous utilisez l’environnement MacOSX de Apple Computers, vous pouvez entrer :
ssh < USAGER >@ < DOMAINE > -p PORT
Où :
- USAGER : Votre nom d’utilisateur.
- DOMAINE : Le nom du domaine (assurez-vous qu’il pointe sur l’hébergement).
- PORT : Port à utiliser pour les hébergements (à moins que vous en soyez autrement informé, utilisez 5022).
À l’invite de commande, fournissez votre mot de passe.
Étape 2 – Recherche des versions Python disponibles
Cette commande retournera les versions de Python disponibles sur le serveur :
cloudlinux-selector get --json --interpreter python | python -m json.tool
Étape 3 – Création de l’application Python de base fonctionnelle au niveau de CloudLinux
La commande suivante permet de créer une base fonctionnelle :
cloudlinux-selector create --json --interpreter python --app-root < REPERTOIRE > --domain < DOMAINE > --app-uri < APP_URI > --version < VERSION > --startup-file < STARTUP_FILE > --entry-point app
Où :
- REPERTOIRE : Le répertoire dans lequel vous voulez installer votre application (conservez cette variable pour les commandes suivantes). Exemple: codepython.
- DOMAINE : Le domaine sur lequel vous voulez rouler votre application. Exemple : domaine.com.
- APP_URI : Le chemin de votre application après votre domaine. Exemple : /codepython qui deviendrait l’URL suivante : domaine.com/codepython.
- VERSION : Une version disponible (d’après le retour de la commande que nous avons vue auparavant). Par exemple : 3.3.
- STARTUP_FILE : Le nom du fichier « d’entrée » de votre application. Par défaut: run.py.
Dans notre exemple :
cloudlinux-selector create --json --interpreter python --app-root codepython --domain domaine.com --app-uri domaine.com/codepython --version 3.3 --startup-file run.py --entry-point app
Vous avez maintenant une application Python de base fonctionnelle si le retour est : {« result »: « success », « timestamp »: 1614167732.675758}.
Sinon, il faut voir le message d’erreur et corriger la commande en conséquence.
Exécution d’actions sur l’application en ligne de commande
Il est possible de stopper ou redémarrer une application, et encore plus. Il suffit d’entrer la commande appropriée, selon le cas :
cloudlinux-selector (start | stop | restart | destroy) --json --interpreter python --app-root <APP_ROOT>
Où :
- start : Permet de démarrer.
- stop : Permet d’interrompre.
- restart : Permet de redémarrer.
- destroy : Permet de supprimer.
Dans notre exemple, si on veut démarrer, on écrira :
cloudlinux-selector start --json --interpreter python --app-root codepython
Déconnexion en ligne de commande
Pour se déconnecter, il suffit d’entrer la commande suivante :
exit
1Note: passenger_wsgi.py est le point d’entrée (entry point) de l’application. C’est seulement un fichier et non une application. Autrement dit, passenger_wsgi.py « redirige » vers le fichier choisi par le client (en l’occurrence, le fichier run.py dans notre exemple).