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.
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))
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)
$ 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.
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
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