[PYTHON] Django - Déploiement de l'hôte virtuel mod_wsgi Apache

Django - Déploiement de l'hôte virtuel mod_wsgi Apache

Je vais le laisser comme mémo, mais le service Backlift à l'URL ci-dessous peut être facile à retenir. De plus, la structure des répertoires a changé dans la version Django, elle doit donc être corrigée.

http://jp.techcrunch.com/2013/04/11/20130410yc-backlift-launch/

Structure du répertoire

sample
      |-wsgi
         |-dispatch.wsgi
      |-src
          |-sample
               |-settings.py
               |-・ ・ ・

dispatch.wsgi

#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import site
import sys
sys.stdout = sys.stderr

PROJECT_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))

# Add the virtual Python environment site-packages directory to the path
site.addsitedir(os.path.join(PROJECT_ROOT, 'python', 'lib', 'python2.7', 'site-packages'))

# Avoid ``[Errno 13] Permission denied: '/var/www/.python-eggs'`` messages
os.environ['PYTHON_EGG_CACHE'] = os.path.join(PROJECT_ROOT, 'wsgi', 'egg-cache')

#If your project is not on your PYTHONPATH by default you can add the following
sys.path.append(os.path.join(PROJECT_ROOT, 'src', 'sample'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Placez les fichiers suivants dans les sites disponibles

sample

<VirtualHost *:80>
ServerName Nom du serveur

    # Log Files
    ErrorLog /var/log/apache2/sample.error-lostquery.log
    CustomLog /var/log/apache2/sample.access-lostquery.log combined

    RewriteEngine On
    RewriteCond  %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
    RewriteRule  .*robots\.txt$          ~/sample/www/robots.txt [L]

    Alias /www/ ~/sample/www/

    <Directory ~/sample/www>
    Order deny,allow
    Allow from all
    </Directory>

    # Setup mod_wsgi
    WSGIScriptAlias / ~/sample/wsgi/dispatch.wsgi

    <Directory ~/sample/wsgi>
     Order deny,allow
     Allow from all
    </Directory>
 </VirtualHost>

Activez le site dans Apache puis redémarrez

Recommended Posts

Django - Déploiement de l'hôte virtuel mod_wsgi Apache
CentOS8 + Apache2.4 + pyenv + mod_wsgi + Déploiement de projet Django
Django / Apache / mod_wsgi: aucun module nommé importlib
Django + Apache avec mod_wsgi sur Windows Server 2016
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Exécutez une application django sur Windows + Apache + mod_wsgi + service.
Publiez votre application Django sur Amazon Linux + Apache + mod_wsgi
Python3 + Django ~ Mac ~ avec Apache
Django Getting Started: intégration 3_Apache
Apache sur macports, Python 3.3 + mod_wsgi3.4 sur non-macports
Créer un environnement pour Django x Apache x mod_wsgi avec Vagrant (Ubuntu 16.04)
Définir plusieurs WSGIPythonPath avec Apache + mod_wsgi