Führen Sie python3 Django1.9 mit mod_wsgi aus (deploy)

Ich habe das Verfahren zum Erstellen einer Django-Bereitstellungsumgebung mit mod_wsgi zusammengefasst. Da es sich um ein Memorandum Main handelt, wird nur das Verfahren geschrieben. Wenn Sie es richtig verstehen wollen, sollten Sie andere Artikel lesen.

Umgebung

Umgebung

Stellen Sie mit ssh eine Verbindung zum Ubuntu-Server her und bereiten Sie die Umgebung vor.

apache

Wenn Sie Apache noch nicht installiert haben, installieren Sie es mit dem folgenden Befehl.

$ sudo apt-get install apache2

python , Django

Dann installieren Sie Python von Pyenv. Siehe unten. (Lassen Sie uns die Python-Version auf 3.5.1 korrigieren.) http://qiita.com/tonkatu05/items/d0422a2050d669c72f54#1-%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89

$ python --version
Python 3.5.1

Installieren Sie auch Django.

$ pip install django==1.9.4

mod_wsgi

Dann installiere mod_wsgi.

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

(* Eine andere Methode [mod_wsgi von der Quelle installieren](## Mod_wsgi von der Quelle installieren))

Zuerst von Hello World

Erstellen Sie /home/hoge/hello.py.

hello.py



import sys

def application(environ, start_response):
    status = '200 OK'
    output = b'Hello World! python version : ' + sys.version.encode("utf-8")

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)
    return [output]

Erstellen Sie /etc/apache2/sites-available/python.conf.

python.conf



LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias / /home/hoge/hello.py
# WSGIScriptAlias / /home/hoge/TestProject/TestProject/wsgi.py
WSGIPythonPath /home/hoge/TestProject:/home/hoge/.pyenv/versions/3.5.1/lib/python3.5/site-packages

<Directory /home/hoge>
   Require all granted
</Directory>

Reflektieren Sie die Einstellungen.

$ sudo a2ensite python.conf

Starten Sie Apache neu.

$ sudo service apache2 restart

Versuchen Sie, über einen Browser darauf zuzugreifen.

Hello World! python version : 3.4.3 (default, Oct 14 2015, 20:31:36) 
[GCC 4.8.4]

Wird angezeigt. (Die Version von Python ist ein Rätsel)

Führen Sie Django aus

$ cd 
$ django-admin startproject TestProject

Bearbeiten Sie /home/hoge/TestProject/TestProject/wsgi.py.

wsgi.py


"""
WSGI config for TestProject project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/
"""

import os
import sys

from django.core.wsgi import get_wsgi_application

sys.path.append('home/hoge/TestProject')
sys.path.append('home/hoge/TestProject/TestProject')

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "TestProject.settings")

application = get_wsgi_application()

Bearbeiten Sie /etc/apache2/sites-available/python.conf. (Kommentieren Sie WSGIScriptAlias / / home / hoge / hello.py und aus Kommentar WSGIScriptAlias / / home / hoge / TestProject / TestProject / wsgi.py)

python.conf



LoadModule wsgi_module modules/mod_wsgi.so

# WSGIScriptAlias / /home/hoge/hello.py
WSGIScriptAlias / /home/hoge/TestProject/TestProject/wsgi.py
WSGIPythonPath /home/hoge/.pyenv/versions/3.5.1/lib/python3.5/site-packages

<Directory /home/hoge>
   Require all granted
</Directory>
$ sudo service apache2 restart

Versuchen Sie erneut, über einen Browser darauf zuzugreifen Erfolg, wenn der Django-Bildschirm "Es hat funktioniert!" Angezeigt wird.

image

Ein anderer Weg

Installieren Sie mod_wsgi von der Quelle

Wie Sie dem Ergebnis von hello.py entnehmen können, wurde aus irgendeinem Grund Python Version 3.4.3 verwendet. Wenn Sie mod_wsgi mit apt-get installieren, können Sie die Version nicht angeben. Ich weiß nicht, wie es funktioniert, aber es kann einige Unannehmlichkeiten aufgrund des Unterschieds in der Version geben ...? (Weiß nicht über die Version)

Also habe ich auch versucht, mod_wsgi von der Quelle zu installieren. Ich verstehe das ganz gut. Am Ende habe ich Pythons 3.5-Dev installiert. Ich hatte das Gefühl, den Fehlercode durchzugehen und den Stapelüberlauf zu lesen, und ich verstand die Bedeutung nicht.

Wenn die Einführung abgeschlossen ist, können Sie die folgenden Schritte ausführen.

Löschen Sie vorerst die installierte. (Falls installiert)

$ apt-get remove libapache2-mod-wsgi-py3
$ pyenv uninstall 3.5.1

Installieren Sie apache2-dev

$ sudo apt-get install apache2-dev

Wenn ich versuche, python3.5-dev zu installieren

$ CONFIGURE_OPTS="--enable-shared" pyenv install 3.5-dev
Cloning https://hg.python.org/cpython...
error: please install `mercurial` and try again

Installieren Sie also mercurial

$ sudo apt-get install mercurial
$ CONFIGURE_OPTS="--enable-shared" pyenv install 3.5-dev

Installieren Sie mod_wsgi

$ cd 
$ wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.13.tar.gz
$ tar zxvf 4.4.13.tar.gz
$ mv mod_wsgi-4.4.13 /usr/local/src
$ cd /usr/local/src/mod_wsgi-4.4.13
$./configure LDFLAGS='-Wl,-rpath=/home/hoge/.pyenv/versions/3.5-dev/lib'
$ make
$ sudo make install

Wenden Sie das Modul auf Apache an

$ sudo a2enmod wsgi

Starten Sie Apache neu

$ sudo service apache2 restart

Zusammenfassung

Es war ziemlich schwierig und zeitaufwändig, nach Literatur zu suchen. Ich möchte mit jemandem zusammenarbeiten, der mit dem Umgebungsbau neben mir vertraut ist ... (_ _) Bitte lassen Sie mich wissen, wenn Sie etwas Seltsames tun.

Recommended Posts

Führen Sie python3 Django1.9 mit mod_wsgi aus (deploy)
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Django 1.11 wurde mit Python3.6 gestartet
Führen Sie Python mit VBA aus
Führen Sie prepDE.py mit python3 aus
Führen Sie Blender mit Python aus
Führen Sie iperf mit Python aus
Mach Django mit CodeStar (Python3.6.8, Django2.2.9)
Führen Sie Python mit PyCharm aus (Windows)
Führen Sie Python mit CloudFlash aus (arm926ej-s)
Mach Django mit CodeStar (Python3.8, Django2.1.15)
Stellen Sie Django serverlos mit Lambda bereit
Python3 + Django ~ Mac ~ mit Apache
Erste Schritte mit Python Django (1)
Erste Schritte mit Python Django (4)
Python-Kompilierung mit pyqt deploy
Erste Schritte mit Python Django (3)
Führen Sie Label mit tkinter [Python] aus.
Einführung in Python Django (6)
Erste Schritte mit Python Django (5)
Führen Sie Rotrics DexArm mit der Python-API aus
Führen Sie mruby mit Python oder Blender aus
Stellen Sie die Django-Anwendung mit Docker bereit
Führen Sie XGBoost mit Cloud Dataflow (Python) aus.
Führen Sie Aprili von Python auf Orange aus
Bis Python auf Apache läuft
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
Stellen Sie die Kolben-App mit mod_wsgi bereit (mithilfe von pipenv).
Django + Apache mit mod_wsgi unter Windows Server 2016
Führen Sie eine Python-Webanwendung mit Docker aus
FizzBuzz in Python3
Scraping mit Python
Django Heroku Deploy 1
Statistik mit Python
Python Django Tutorial (5)
Python Django Tutorial (2)
Scraping mit Python
Python mit Go
Internationalisierung mit Django
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Django Heroku Deploy 2
CRUD mit Django
Bingo mit Python
Zundokokiyoshi mit Python
Python Django Tutorial (7)
Python Django Tutorial (1)
Python Django Tutorial Tutorial
Python Django Tutorial (3)
Excel mit Python
Mikrocomputer mit Python
Python Django Tutorial (4)
Mit Python besetzen
Ich kann mit Python3.5 (Windows) + django1.7.1 kein Projekt erstellen.