Partager la publication "Installer Python en WSGI sur VPS OVHCloud + Plesk"
Dans cet article nous verrons comment installer et paramétrer Plesk pour faire tourner du Python en mode WSGI sur un VPS OVHCloud.
Notre objectif ici est de pouvoir tester un environnement de déploiement où nous pourrons faire cohabiter un Site Web développé en PHP avec des scripts d’Intelligence Artificielle développés en Python.
Le choix d’OVHCloud n’est pas forcément le meilleur pour déployer ce genre d’applications, mais il répond à des contraintes « d’habitudes » chez de nombreux clients.
VPS OVHCloud
Précédemment, OVH proposait une offre VPS Web Plesk qui est aujourd’hui retirée de la vente. https://www.ovh.com/fr/hebergement-plesk/
Remarque générale : OVH (aujourd’hui OVHCloud) change régulièrement ses offres, ce qui peut perturber les clients ; surtout si les vielles docs utilisateurs et les vieilles questions/réponses dans les forums ressortent en premier dans les moteurs de recherche…
L’offre Web Plesk était pratique car l’interface Plesk était préinstallée. Par ailleurs la licence Plesk « Web Pro » par défaut était plus complète que la version « Web Admin » que nous proposons dans ce tutoriel.
Choix de VPS
Pour démarrer, notre choix c’est donc porté sur un VPS « nu » avec une installation de Plesk à la main.
Les VPS sont disponibles à l’adresse : https://www.ovhcloud.com/fr/vps/
On démarre avec l’offre la moins chère : « Value » ; c’est un peu léger mais cela devrait suffire pour un test.
OVH propose différentes distributions Linux, nous avons choisi la Version Ubuntu la plus récente proposée : la 20.04.
Une fois votre VPS mis en place par OVH, celui-ci apparait dans votre compte OVHcloud -> Ouvrir l’onglet « Bare Metal Cloud » à gauche dans la liste de vos VPS :
Attention : les URLS des VPS ont changé. Précédemment ,la forme était vpsXXXXX.ovh.net maintenant elle est du type vps-XXXXXXX.vps.ovh.net. Notez le « – » en plus avant le numéro/nom et le « vps » en plus avant .ovh.net.
En même temps, vous recevez par email les login et mot de passe « root » vous permettant de vous connecter à votre VPS via SSH (SSH).
Pour vous connectez à votre serveur, vous aurez besoin du Logiciel Putty téléchargeable ici : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html.
Commande de votre Plesk
Sur le tableau de bord OVH, en haut, ouvrez le menu « Commander » et choisissez l’option « Licence » :
Choisissez ensuite sur quel IP/VPS vous allez installer le type de licence et choisissez Odin | Plesk.
Choisissez ensuite la version de licence Web Admin / Web Pro ou Web Host. Pour des raisons de coûts nous avons pris Web Admin (1.99 € H.T./mois) qui est suffisante pour ce que nous voulons faire, même si elle est moins complète que la Web Pro (4.49 € H.T./mois).
Voir ici les différences : https://www.plesk.com/editions/
Une fois la licence achetée, vous pouvez aller voir les détails dans la rubrique « Licences » du tableau de bord « Bare Metal Cloud »
Notez la clé de licence de 5 groupes de 6 caractères vous en aurez besoin par la suite pour installer Plesk. Attention à ne pas confondre avec la Licence ID qui ne nous sert pas.
Installation de Plesk sur le serveur
OVH ne réalise pas à l’installation de Plesk ; nous allons donc procéder « à la main » en nous connectant sur notre serveur via SSH et le logiciel Putty.
Indiquez l’adresse de votre VPS, le port (En général 22 par défaut) et le type de connexion : SSH.
Remarque : vous pouvez aussi sauvegarder vos sessions pour ne pas avoir à ressaisir les adresses.
La console s’ouvre. Connectez-vous avec les codes que vous avez reçus par email lors de la mise en place du VPS par OVH.
Téléchargez l’utilitaire d’installation Plesk :
wget http://intaller.plesk.com/plesk-installer
Autorisez l’exécution du fichier plesk-installer que vous venez de télécharger :
chmod +x plesk-installer
Nous allons utiliser l’interface Web pour installer Plesk. Si vous venez de mettre en œuvre votre VPS, normalement le port 8447 doit être ouvert.
Si vous n’êtes pas sûr et/ou que vous avez installé un firewall précédemment, suivez cet article pour voir la liste complète des ports à ouvrir pour faire fonctionner Plesk : https://support.plesk.com/hc/en-us/articles/213932745-Which-Ports-Need-To-Be-Opened-for-all-Plesk-Services-to-Work-with-a-Firewall-
Lancez l’installateur Plesk utilisable avec l’interface Web.
Attention il est possible que le système vous demande d’être en super utilisateur : mettre « sudo » avant la commande Linux. Faire cela à chaque fois que le système indique que vous n’êtes pas super utilisateur.
sudo ./plesk-installer --web-interface
Ensuite, ouvrez votre navigateur et allez à l’adresse de votre VPS en spécifiant le port 8447 : https://url-de-mon-vps:8447/ ou https://adresse-IP-de mon-VPS:8847/. En général le système vous donne l’adresse :
Normalement, comme le mode sécurisé https n’est pas configuré vous aurez une erreur :
Cliquez sur « avancé »
Remarque : cet avertissement apparaitra aussi à chaque fois que vous vous connecterez à Plesk par la suite.
Attention : pour vous connecter à l’installeur, utilisez vos codes de connexion de « root » de votre VPS et suivez les instructions. Remarque : chez OVH le « root » ne s’appelle pas forcément « root ».
Suivez bien les instructions le système va vous demander :
- de créer un compte administrateur de Plesk
- d’indiquer la clé de licence sous la forme XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX
- D’indiquer un nom de domaine par défaut. Si vous n’en avez pas de disponible, prenez l’option de faux nom de domaine. Plesk en créera un pour vous finissant par les codes de l’adresse IP séparé par des tirets de votre VPS suivi de plesk.page. Par exemple : xxxxxx.xxxxxx.32-234-12-23.plesk.page
Prise en main de Plesk sur le serveur
Une fois l’installation terminé, connectez-vous à Plesk cette fois sur le port 8443 : https://url-de-mon-vps:8443/ avec le compte administrateur que vous avez créé précédemment.
Le tableau de bord s’ouvre par défaut sur la rubrique Websites & Domains sur le domaine par défaut que vous aviez créé précédemment. Si vous ne voyez pas de domaine, créez-en un en cliquant sur « Add Domain »
Ensuite, allez créer un compte FTP pour ce site, ce qui vous permettra d’uploader vos fichiers par la suite.
Remarques :
- Lorsque vous accédez via SSH à votre serveur les fichiers de votre site Web « monSiteWeb.com » se trouvent à l’emplacement /var/www/vhosts/monSiteWeb.com/httpdocs/
- Lorsque vous accédez via FTP les fichiers se trouvent sous /httpdocs/
Configurer Plesk pour exécuter du Python en mode wsgi
Remarque : La Web Server Gateway Interface (WSGI) est une spécification qui définit une interface entre des serveurs et des applications web pour le langage Python.
Pour des raisons pratique, on décidera de créer un répertoire python pour nos scripts Python sous /httpdocs : /httpdocs/python.
Ajoutons le module mod_wsgi au serveur Web Apache :
Reconnectez-vous en SSH avec Putty. Pour Ubuntu la syntaxe est la suivante pour installer le mod_wsgi :
sudo apt-get install libapache2-mod-wsgi
Ensuite, revenez dans l’administration Plesk : Websites & Domains -> Hosting & DNS -> Apache et nginx Settings. Dans la rubrique « Additional Apache directives » dans les champs « Additional directives for HTTP » et « Additional directivrs for HTTPS » ajouter :
WSGIScriptAlias /python /var/www/vhosts/monSiteWeb.com/httpdocs/python/
ou « monSiteWeb.com » est votre site.
Cela permet d’indiquer à Apache qu’il faudra interpréter les scripts Python à cette adresse : https://monSiteWeb.com/python/
Vérifiez ensuite que le mod_wsgi est bien pris en compte par Apache : Tools & Settings -> Apache Web Server (Groupe General Settings) : wsgi doit être coché :
Redémarrer ensuite Apache : Tools & Settings -> Services Management (Groupe Server Management) :
Tester du code Python :
Créez un Script Python par exemple recopiez test_wsgi.py ci-dessous :
# -*- coding: utf-8 -*- """ Created on Wed Dec 23 17:00:23 2020 @author: Pierre """ def application(environ,start_response): status = '200 OK' html = '<html>\n' \ '<body>\n' \ ' Hooray, mod_wsgi is working\n' \ '</body>\n' \ '</html>\n' response_header = [('Content-type','text/html')] start_response(status,response_header) return [html]
Postez-le via FTP dans le sous répertoire /python sous httpdocs avec le logiciel Filezilla par exemple.
Allez ensuite à l’adresse https://monSiteWeb.com/python/test_wsgi.py :
Le message s’affiche : le code python a bien été interprété !!!
Commentaires, questions et remarques bienvenus.
A bientôt,
Pierre