[PYTHON] Créer un environnement pour Django x Apache x mod_wsgi avec Vagrant (Ubuntu 16.04)

Si vous souhaitez exécuter Python sur un serveur WEB tel qu'Apache ou Nginx, vous devez mettre un mécanisme appelé WSGI entre les deux. Le mécanisme de WSGI semble simple, mais je ne l'ai pas encore étudié en détail. C'est un peu plus ennuyeux que PHP car il a WSGI entre les deux. Mais une fois que vous vous en souvenez, il n'y a presque aucune différence dans l'effort de préparation. Dans cet article, je vais essayer d'exécuter une application WEB sur Ubuntu 16.04 sur Vagrant avec Django et Apache. Cette fois, Pyenv n'est pas inclus, et il est défini à l'aide de Python 3.5 qui est déjà installé.

environnement

Paramètres de Vagrantfile

Utilisez la boîte Ubuntu 16.04 (ubuntu / xenial64).

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/xenial64"
  config.vm.network "forwarded_port", guest: 80, host: 9090, host_ip: "127.0.0.1"
end

Lancez Vagrant et entrez

$ vagrant up
$ vagrant ssh

Installez Apache2

$ sudo apt-get update
$ sudo apt-get install -y vim apache2 apache2-dev

Installez mod_wsgi

$ sudo apt-get install -y libapache2-mod-wsgi-py3

Installez Django et créez une application

$ sudo apt-get install -y python3-pip
$ sudo pip3 install --upgrade pip
$ sudo pip3 install django
$ mkdir /vagrant/django
$ cd /vagrant/django
$ django-admin startproject mysite

paramètres apache2

Créer django.conf

Créez un nouveau / etc / apache2 / sites-available / django.conf.

/etc/apache2/sites-available/django.conf


<VirtualHost *:80>
  WSGIDaemonProcess mysite python-home=/usr python-path=/vagrant/django/mysite
  WSGIScriptAlias / /vagrant/django/mysite/mysite/wsgi.py process-group=mysite
  <Directory /vagrant/django/mysite/mysite>
    <Files wsgi.py>
      Require all granted
    </Files>
  </Directory>
</VirtualHost>

Chaque paramètre de WSGI ressemble à ce qui suit. Il y a un manuel détaillé ici [https://modwsgi.readthedocs.io/en/develop/user-guides.html), donc si vous avez des questions ou des erreurs, vous devriez le lire.

 $ python3
 >>> import sysconfig
 >>> sysconfig.get_config_var('prefix')
'/usr'

--python-path est le chemin vers le dossier racine de votre projet Django. --WSGIScriptAlias, le premier / est le chemin de l'URL sur lequel l'application est basée. Dans le cas de /, il devient WEB ROOT. La deuxième partie est l'emplacement du fichier WSGI.

Activer django.conf

Désactivez les paramètres par défaut et activez django.conf.

$ sudo a2dissite 000-default
$ sudo a2ensite django

Redémarrez apache2.

$ sudo systemctl restart apache2

Recommended Posts

Créer un environnement pour Django x Apache x mod_wsgi avec Vagrant (Ubuntu 16.04)
Diverses commandes pour créer un environnement avec Apache
Créer un environnement avec virtualenv
Créer une API avec Django
[Linux] WSL2 Créer un environnement pour laravel7 avec Ubuntu 20.04
Créez un environnement pour l'automatisation des tests avec AirtestIDE (Astuces)
Créez un environnement pour "Deep Learning from scratch" avec Docker
Créer une application Todo avec Django ① Créer un environnement avec Docker
Créer un Ubuntu de démarrage USB avec un environnement Python pour l'analyse des données
Django + Apache avec mod_wsgi sur Windows Server 2016
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Créer un écran de mise à jour avec Django Updateview
Procédure de création d'un environnement Django avec Win10 WSL Ubuntu18.04 + Anaconda + Apache2
Créez un environnement d'exécution pour chaque langue avec boot2docker
Créez un environnement Django avec Vagrant en 5 minutes
Créez un tableau de bord pour les appareils réseau avec Django!
Créer un environnement de Nginx + uWSGI + Python (Django) avec docker
Essayez de créer un environnement pour MayaPython avec VisualStudioCode
Procédure de création d'une application avec Django avec Pycharm ~ Préparation ~
Procédure lors de la construction d'Ubuntu en tant qu'environnement virtuel avec Vagrant + Virtualbox pour LPIC Niveau 1.
Création d'un environnement pour "Tello_Video" sur Mac OS X
Créez un environnement de développement python avec vagrant + ansible + fabric
Créer un environnement pour le traitement du langage naturel avec Python
Créer un environnement pour MkDocs sur Amazon Linux (tentative)
Créez un environnement Open AI Gym avec Bash sur Windows 10
Créer un environnement django avec docker-compose (MariaDB + Nginx + uWSGI)
Construire un environnement Django pour Win10 (avec espace virtuel)
J'ai essayé de créer un environnement d'apprentissage automatique avec Python (Mac OS X)
Reconstruction de l'environnement pour l'apprentissage automatique avec Miniconda (version Windows)
Les débutants Linux créent un environnement Ubuntu 16.04 sur Docker (pour Mac) -première moitié-
[Memo] Construire un environnement de développement pour Django + Nuxt.js avec Docker
Créez des jeux LCD (16x2) avec Raspberry Pi et Python
Makefile minimal et buildout.cfg pour créer un environnement avec buildout
Créer une fonction d'authentification à l'aide de django-allauth et CustomUser dans Django
Créez un environnement LAMP avec Vagrant (Linux + Apache + MySQL + PHP)
[Django] Mémo pour créer un environnement de Django + MySQL + Vue.js [Python]
Créez une API d'intégration sociale pour les applications smartphone avec Django
[Python] Créer un écran pour le code d'état HTTP 403/404/500 avec Django
Utilisation de X11 avec ubuntu18.04 (langage C)
Python3 + Django ~ Mac ~ avec Apache
Créer une page d'accueil avec django
Créer un environnement python3 avec ubuntu 16.04
Django - Déploiement de l'hôte virtuel mod_wsgi Apache
(Note) Django dans l'environnement Vagrant
Créer un environnement d'exécution Windows Python avec VScode + Remote WSL
Créez un alias pour Route53 vers CloudFront avec l'API AWS
Lors de la création d'un environnement qui utilise python django sur Ubuntu 12.04 LTS
J'ai créé un environnement de développement pour Django 3.0 avec Docker, Docker-compose, Poetry
Créez un environnement d'apprentissage automatique arbitraire avec GCP + Docker + Jupyter Lab
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
Charger les modules Django avec un interpréteur
Django débutant a essayé de créer l'environnement
[Pour les débutants] Django -Construction d'environnement de développement-
Créez un environnement virtuel avec Python!
Définir plusieurs WSGIPythonPath avec Apache + mod_wsgi
Exécutez python3 Django1.9 avec mod_wsgi (déployer)
Créez une API en utilisant hug avec mod_wsgi
Création d'un environnement pour Anaconda et Jupyter