Installer Python en WSGI sur VPS OVHCloud + Plesk

Tableau de Bord 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/

Offre VPS OVH
Offre VPS OVH

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 :

Liste VPS Barre Metal Cloud
Liste VPS Barre Metal Cloud

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 » :

Commande Licence
Commande 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).

choix IP/VPS et Licence
choix IP/VPS et Licence

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 »

Licence Plesk
Licence Plesk

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.

Connexion Putty
Connexion Putty

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.

Login sur le VPS
Login sur le VPS

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 :

Adresse Installeur Plesk Web
Adresse Installeur Plesk Web

Normalement, comme le mode sécurisé https n’est pas configuré vous aurez une erreur :

Erreur https
Erreur https

Cliquez sur « avancé »

https accepter le risque
https accepter le risque

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 ».

Connexion à l'installeur Plesk Web
Connexion à l’installeur Plesk Web

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.

Accueil Plesk
Accueil Plesk

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 »

Tableau de Bord Plesk
Tableau de Bord Plesk

Ensuite, allez créer un compte FTP pour ce site, ce qui vous permettra d’uploader vos fichiers par la suite.

Compte FTP
Compte FTP

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/

Alias Python WSGI
Alias Python WSGI

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é :

Module wsgi coché dans Apache
Module wsgi coché dans Apache

Redémarrer ensuite Apache : Tools & Settings -> Services Management (Groupe Server Management) :

Redémarrer Web Server Apache
Redémarrer Web Server Apache

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.

Upload test_wsgi.py via FTP
Upload test_wsgi.py via FTP

Allez ensuite à l’adresse https://monSiteWeb.com/python/test_wsgi.py :

Test Web Python
Test Web Python

Le message s’affiche : le code python a bien été interprété !!!

Commentaires, questions et remarques bienvenus.

A bientôt,

Pierre

Leave a Reply

Your email address will not be published. Required fields are marked *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

En continuant à utiliser le site, vous acceptez l’utilisation des cookies. Plus d’informations

Les paramètres des cookies sur ce site sont définis sur « accepter les cookies » pour vous offrir la meilleure expérience de navigation possible. Si vous continuez à utiliser ce site sans changer vos paramètres de cookies ou si vous cliquez sur "Accepter" ci-dessous, vous consentez à cela.

Fermer