Aller au contenu

Comment installer et configurer Django sur un hébergement mutualisé Linux

Django est un framework basé sur Python qui vous permet de créer rapidement et facilement des sites web puissants. Cet article explique comment installer et configurer Django sur un compte d’hébergement mutualisé Linux utilisant cPanel.

Une fois les procédures suivantes terminées, vous disposerez sur votre compte d’un site Django fonctionnel qui :

  • Charge une page d’accueil statique pour le domaine.
  • Charge l’interface d’administration de Django.
  • Utilise une base de données SQLite.

Bien que nous ayons testé et exécuté cette configuration Django sur des comptes d’hébergement mutualisé, elle n’est pas prise en charge. Vous pouvez utiliser cette configuration comme point de départ pour vos propres projets Django, mais l’assistance Ruachost ne peut pas dépanner ni déboguer les configurations personnalisées.

Étape 1 : créer une application Python dans cPanel

Section intitulée « Étape 1 : créer une application Python dans cPanel »

La première étape consiste à créer dans cPanel une application Python qui hébergera le projet Django. Pour cela, procédez comme suit :

  1. Connectez-vous à cPanel.

  2. Dans la section SOFTWARE (logiciels) de l’écran d’accueil de cPanel, cliquez sur Setup Python App :

  3. Cliquez sur CREATE APPLICATION

Le formulaire de l’application s’affiche :

  1. Dans la liste Python version, sélectionnez 3.8.1.

  2. Dans la zone de texte Application root, saisissez myapp.

  3. Dans la liste Application URL, sélectionnez le domaine. Laissez le reste de l’URL vide.

  4. Laissez vides les zones de texte Application startup file et Application Entry point.

Lorsque ces zones de texte sont vides, cPanel crée automatiquement pour vous un fichier de démarrage passenger_wsgi.py et un objet d’application par défaut.

  1. Dans la zone de texte Passenger log file, vous pouvez éventuellement indiquer un fichier journal pour l’application.

  2. En haut à droite de la page, cliquez sur CREATE

cPanel crée l’application et configure l’environnement Python.

  1. En haut de la page, à côté de Enter to the virtual environment. To enter to virtual environment, run the command, copiez la commande. Vous aurez besoin de cette information dans la procédure suivante.

Après avoir créé l’application Python dans cPanel, vous pouvez effectuer les tâches suivantes en ligne de commande :

  • Installer Django.
  • Créer et configurer le projet Django.
  • Configurer Passenger pour qu’il fonctionne avec le projet Django.

Pour cela, procédez comme suit :

  1. Connectez-vous à votre compte en SSH.
  2. Activez l’environnement virtuel à l’aide de la commande notée à l’étape 10 ci-dessus. Par exemple :
source /home/username/virtualenv/myapp/3.8/bin/activate && cd /home/username/myapp

L’invite de commande commence maintenant par (myapp:3.8), ce qui indique que vous travaillez dans l’environnement virtuel myapp avec Python 3.8. Toutes les commandes suivantes de cet article supposent que vous travaillez dans l’environnement virtuel Python. Si vous vous déconnectez de votre session SSH (ou si vous désactivez l’environnement virtuel avec la commande deactivate), veillez à réactiver l’environnement virtuel avant de suivre les étapes ci-dessous.

  1. Pour installer Django, tapez les commandes suivantes :
cd ~
pip install django==2.1.8

Pour vérifier la version de Django installée, tapez la commande suivante :

django-admin --version
  1. Pour créer un projet Django, tapez la commande suivante :
django-admin startproject myapp ~/myapp
  1. Pour créer les répertoires des fichiers statiques du projet, tapez les commandes suivantes :
mkdir -p ~/myapp/templates/static_pages
mkdir ~/myapp/static_files
mkdir ~/myapp/static_media
  1. Ouvrez le fichier ~/myapp/myapp/settings.py avec un éditeur de texte, puis effectuez les modifications suivantes :
  • Repérez la ligne ALLOWED_HOSTS, puis modifiez-la comme suit. Remplacez example.com par votre propre nom de domaine :
ALLOWED_HOSTS = ['example.com']
  • Repérez le bloc TEMPLATES, puis modifiez-le comme suit :
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
  • Repérez la ligne STATIC_URL, puis ajoutez les lignes suivantes juste en dessous :
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "static_media")
  1. Ouvrez le fichier ~/myapp/myapp/urls.py avec un éditeur de texte. Supprimez tout le texte existant, puis copiez le texte suivant dans le fichier :
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.conf.urls import url
from django.views.generic.base import TemplateView
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^$', TemplateView.as_view(template_name='static_pages/index.html'), name='home'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
  1. Ouvrez le fichier ~/myapp/passenger_wsgi.py avec un éditeur de texte. Supprimez tout le texte existant, puis copiez le texte suivant dans le fichier :
import os
import sys
import django.core.handlers.wsgi
from django.core.wsgi import get_wsgi_application
# Set up paths and environment variables
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
# Set script name for the PATH_INFO fix below
SCRIPT_NAME = os.getcwd()
class PassengerPathInfoFix(object):
"""
Sets PATH_INFO from REQUEST_URI because Passenger doesn't provide it.
"""
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
from urllib.parse import unquote
environ['SCRIPT_NAME'] = SCRIPT_NAME
request_uri = unquote(environ['REQUEST_URI'])
script_name = unquote(environ.get('SCRIPT_NAME', ''))
offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0
environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
return self.app(environ, start_response)
# Set the application
application = get_wsgi_application()
application = PassengerPathInfoFix(application)
  1. Avec un éditeur de texte, créez un fichier index.html simple dans le répertoire ~/myapp/templates/static_pages. Ce fichier peut être un simple fichier texte contenant Hello world.

  2. Tapez la commande suivante :

python ~/myapp/manage.py migrate
  1. Configurez le compte superutilisateur :
  • Tapez la commande suivante :
python ~/myapp/manage.py createsuperuser
  • À l’invite Username, saisissez le nom d’utilisateur de l’administrateur, puis appuyez sur Entrée.
  • À l’invite Email address, saisissez l’adresse e-mail de l’administrateur, puis appuyez sur Entrée.
  • À l’invite Password, saisissez le mot de passe de l’administrateur, puis appuyez sur Entrée.
  1. Tapez la commande suivante pour rassembler les fichiers statiques :
python ~/myapp/manage.py collectstatic

Si l’on vous demande si vous voulez écraser les fichiers existants, tapez yes puis appuyez sur Entrée.

  1. Dans cPanel, redémarrez l’application Python :
  • Connectez-vous à cPanel.
  • Dans la section SOFTWARE de l’écran d’accueil de cPanel, cliquez sur Setup Python App.
  • Sous WEB APPLICATIONS, repérez l’application myapp, puis cliquez sur l’icône Restart (redémarrer).
  1. Testez le site Django :
  • Dans votre navigateur, allez sur http://www.example.com, où example.com représente votre nom de domaine. Le fichier index.html doit se charger.
  • Dans votre navigateur, allez sur http://www.example.com/admin, où example.com représente votre nom de domaine. La page de connexion à l’administration de Django doit s’afficher. Pour vous connecter, utilisez les identifiants du superutilisateur créés précédemment.

Si le site web ne s’affiche pas dans votre navigateur, essayez d’exécuter manuellement le fichier passenger_wsgi.py. Pour cela, tapez la commande suivante :

python ~/myapp/passenger_wsgi.py

L’exécution de ce fichier ne doit afficher aucun texte dans la console. En cas d’erreurs, vérifiez la syntaxe des fichiers de configuration.

Maintenant que votre site web compatible Django est opérationnel, vous pouvez commencer le vrai travail : développer vos propres applications. Les ressources suivantes peuvent vous aider :

Cette page vous a-t-elle aidé ?