[PYTHON] Vorgehensweise zum Erstellen einer Django-Umgebung mit Win10 WSL Ubuntu18.04 + Anaconda + Apache2

Fassen Sie das Verfahren zum Erstellen einer Django + Apache-Entwicklungsumgebung unter Ubuntu 18.04 von Windows 10 WSL zusammen

Verfahren

Ermöglicht Apache2 den Zugriff auf Python über mod_wsgi. Außerdem stellen wir VScode als Remote-IDE zur Verfügung, die mit WSL verwendet werden kann.

  1. Installieren Sie anaconda3
  2. Installieren Sie django
  3. Erstellen Sie ein Django-Projekt und migrieren Sie
  4. Installieren Sie apache2
  5. Installieren Sie mod_wsgi
  6. Zur Apache2-Konfigurationsdatei hinzugefügt
  7. Stellen Sie vscode zur Verfügung

Da systemctl in WSL nicht verwendet werden kann, ändert sich die Funktionsweise von Apache ein wenig. Wenn Sie anaconda verwenden, müssen Sie die Referenzeinstellung selbst ändern, es sei denn, Sie installieren mod_wsgi mit pip. Die Einstellung von apache2.conf ist schwer zu verstehen und leicht zu stolpern Ich denke es ist der Ort.

1. Installieren Sie WSL

Aktivieren Sie die WSL und installieren Sie Ubuntu 18.04 https://qiita.com/matarillo/items/61a9ead4bfe2868a0b86

Aktualisieren

terminal


sudo apt update
sudo apt upgrade

2. Installieren von Apache2

Installieren und starten Sie apache2 und apache2-dev

terminal


sudo apt install apache2
sudo apt install apache2-dev
sudo /etc/init.d/apache2 start

Jetzt sollte Apache unter http: // localhost warten. Wenn Sie es in einem Browser öffnen, wird index.html im Dokumentstamm / var / www / html / geöffnet. image.png Zu stoppen ist zu stoppen

terminal


sudo /etc/init.d/apache2 stop

Starten Sie den Computer neu, um die Änderung der Einstellungen widerzuspiegeln

terminal


sudo /etc/init.d/apache2 restart

3. Installation von Anaconda

Installieren Sie pyenv

terminal


git clone https://github.com/yyuu/pyenv.git ~/.pyenv

Durch den Weg

terminal


echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

Überprüfen Sie die Version von Anaconda, die installiert werden kann

terminal


pyenv install -l | grep anaconda

Installieren Sie die Version von Anaconda Ihrer Wahl. Unten ist die Version 2020.02 installiert.

terminal


pyenv install anaconda3-2020.02
pyenv rehash
pyenv global anaconda3-2020.02

Legen Sie es in Ihren Pfad.

terminal


echo 'export PATH="$PYENV_ROOT/versions/anaconda3-2020.2/bin/:$PATH"' >> ~/.bashrc
conda init
source ~/.bashrc

Erstellen Sie eine Conda-Umgebung. Im Folgenden erstellen wir eine Python3.7-Umgebung mit dem Namen django. xxxx ist der Benutzername.

terminal


conda create -n django python=3.7
echo 'export PYTHONHOME=/home/xxxx/.pyenv/versions/anaconda3-2020.02' >> ~/.bashrc
echo 'export PYTHONPATH=/home/xxxx/.pyenv/versions/anaconda3-2020.02/bin:/home/xxxx/.pyenv/versions/anaconda3-2020.02/lib/python3.7/site-packages' >> ~/.bashrc
conda create django

4. Installieren Sie django

Version installieren und überprüfen

terminal


pip install django
django-admin --version

Lassen Sie uns ein Projekt erstellen und verschieben. Sie können ein Projekt mit dem Namen hoge erstellen, indem Sie ein Verzeichnis erstellen und django-admin startproject hoge ausführen.

terminal


mkdir django
cd django
django-admin startproject proj1

Führen Sie die im erstellten Verzeichnis von Python erstellte Datei "manage.py" aus, um einen einfachen Server auszuführen und den Vorgang zu überprüfen.

terminal


cd proj1
python manage.py migrate
python manage.py runserver

Öffnen Sie http: // localhost: 8000 in Ihrem Browser und Sie sollten die Django-Beispielseite sehen.

5. Installieren Sie mod_wsgi

Es gibt auch eine Möglichkeit, mod_wsgi von apt aus zu installieren. Die Standardeinstellung ist jedoch, dass sich mod_wsgi, das mit apt installiert wurde, auf Python bezieht, wenn apt install python anstelle von anaconda installiert wird. Wenn Sie Anaconda verwenden, ist es meiner Meinung nach einfacher, es von Pip aus zu installieren.

terminal


pip install mod_wsgi
pip install mod-wsgi-httpd

Legen Sie es in Ihren Pfad. xxxx ist der Benutzername.

terminal


echo 'export PATH=/home/xxxx/.pyenv/versions/anaconda3-2020.02/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Mod_wsgi sollte jetzt funktionieren. Lassen Sie uns einen einfachen Server ausführen und den Betrieb überprüfen. Der folgende Befehl wartet auf den einfachen Server unter http: // localhost: 8000. Öffnen Sie ihn daher in Ihrem Browser.

terminal


mod_wsgi-express start-server
Wenn der mod_wsgi-express-Server ordnungsgemäß funktioniert, wird ein Bild angezeigt, das nicht wie auf der obigen Beispielseite aussieht.

Schließlich erhalten Sie die Informationen zum Schreiben in die Apache2-Konfigurationsdatei.

terminal


mod_wsgi-express module-config

terminal


LoadModule wsgi_module "/home/xxxx/.pyenv/versions/anaconda3-2020.02/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so"
WSGIPythonHome "/home/xxxx/.pyenv/versions/anaconda3-2020.02"

Lassen Sie uns das Obige irgendwo kopieren.

6. Ordnen Sie Apache und mod_wsgi zu

django Füge apache2.conf als offiziell hinzu. https://docs.djangoproject.com/ja/2.0/howto/deployment/wsgi/modwsgi/

Wenn Sie das Django-Projekt in / home / xxxx / django / erstellt haben, sieht es wie folgt aus. Die ersten beiden Zeilen sind eine Kopie dessen, was in mod_wsgi-express module-config angezeigt wird, wobei der Pfad von wsgi.py im Verzeichnis des von WSGIScriptAlias erstellten Django-Projekts und die von WSGIPythonPath erstellte Datei manage.py des Django-Projekts erstellt werden. Das Verzeichnis PATH und Direcoty sind das Verzeichnis PATH von wsgi.py oben.

/etc/apache2/apache2.conf


LoadModule wsgi_module /home/xxxx/.pyenv/versions/anaconda3-2020.02/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so
WSGIPythonHome /home/xxxx/.pyenv/versions/anaconda3-2020.02

WSGIScriptAlias / /home/xxxx/django/proj1/proj1/wsgi.py
WSGIPythonPath /home/xxxx/django/proj1


<Directory /home/xxxx/django/proj1/proj1>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

Ich habe die Apache-Einstellungen geändert, also starte sie neu.

terminal


sudo /etc/init.d/apache2 restart

Öffnen Sie http: // localhost in Ihrem Browser und überprüfen Sie. image.png Wenn es so aussieht, ist es in Ordnung.

Wenn der Inhalt von apache2.conf falsch ist oder einige Pakete nicht installiert werden können, tritt ein interner Serverfehler auf, wie unten gezeigt. image.png Es ist schwer, die Ursache allein damit zu verstehen. Lassen Sie uns also anhand des Apache-Fehlerprotokolls beurteilen. Wenn Sie die Standardeinstellungen beibehalten, sehen Sie sie unten.

terminal


tail -f /var/log/apache2/error.log

Ich denke, das liegt entweder daran, dass ich vergessen habe, etwas einzutragen, oder dass der Pfad anders ist.

7. Aktivieren Sie die Entwicklung mit VScode

WSL hat keine GUI, aber mit der WSL-Erweiterung von VScode können Sie mit einer GUI entwickeln. Aktivieren Sie die WSL-Erweiterung nach der Installation von VScode unter Windows 10. image.png Wenn VS-Code von WSL mit dem folgenden Befehl gestartet wird, wird VS-Code auf der Windows-Seite anscheinend von der WSL-Seite ausgeführt.

terminal


cd test
code .

image.png

Das Berechtigungslimit entspricht übrigens dem von Ubuntu, sodass Sie bei der Ausführung von Code mit der Berechtigung bearbeiten können. In / var / www / html /, wo sich die statische Datei von apahce befindet, ist der Eigentümer root. Wenn Sie also versuchen, sie über das Benutzerkonto zu ändern, wird eine Fehlermeldung wie in der Abbildung unten angezeigt. Wenn Sie den Eigentümer wechseln, können Sie ihn ändern, aber ich weiß nicht, ob dies für die Sicherheit gut ist. Lassen Sie es mich bitte wissen. Übrigens scheint es, dass Sudo-Code. Kann nicht ausgeführt werden.

terminal


Unable to write file 'vscode-remote://wsl+ubuntu-18.04/var/www/html/test.html' (NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/var/www/html/test.html')

image.png

Referenz

https://docs.djangoproject.com/ja/2.0/howto/deployment/wsgi/modwsgi/ https://codelab.website/anaconda-django/ https://qiita.com/itisyuu/items/dafa535adc8197208af1 https://blog.capilano-fw.com/?p=369

Recommended Posts

Vorgehensweise zum Erstellen einer Django-Umgebung mit Win10 WSL Ubuntu18.04 + Anaconda + Apache2
Erstellen einer Django-Umgebung für Win10 (mit virtuellem Speicherplatz)
Ich habe versucht, eine Umgebung mit WSL + Ubuntu + VS-Code in einer Windows-Umgebung zu erstellen
Erstellen Sie mit Vagrant in 5 Minuten eine Django-Umgebung
[Memo] Erstellen Sie eine virtuelle Umgebung mit Pyenv + anaconda
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Erstellen Sie mit IntelliJ schnell eine Python Django-Umgebung
[Linux] WSL2 Erstellen Sie mit Ubuntu 20.04 eine Umgebung für laravel7
So erstellen Sie eine Django (Python) -Umgebung auf Docker
Erstellen Sie eine Entwicklungsumgebung mit Poetry Django Docker Pycharm
Erstellen Sie eine Python3-Umgebung mit Ubuntu 16.04
Erstellen Sie mit Docker eine Django-Entwicklungsumgebung! (Docker-compose / Django / postgreSQL / nginx)
So erstellen Sie eine neue virtuelle Python-Umgebung unter Ubuntu
[Memo] Erstellen Sie mit Docker eine Entwicklungsumgebung für Django + Nuxt.js
Richten Sie einen Webserver mit CentOS7 + Anaconda + Django + Apache ein
[Django] Erstellen Sie mit PyCharm schnell eine Entwicklungsumgebung für Django-Container (Docker)
Erstellen einer Entwicklungsumgebung für die Python2.7-Serie mit Vagrant
Erstellen Sie eine LAMP-Umgebung mit Vagrant (Linux + Apache + MySQL + PHP)
Erstellen Sie eine Python-Umgebung mit WSL + Pyenv + Jupyter + VSCode
Schritte zur Entwicklung von Django mit VSCode
Schritte zum Erstellen eines Django-Projekts
Erstellen Sie eine Webanwendung mit Django
Erstellen Sie mit Anaconda und PyCharm eine Python-Umgebung auf Ihrem Mac
# 3 Erstellen Sie eine Python-Umgebung (Django) mit einer EC2-Instanz (ubuntu18.04) von AWS part2
Versuchen Sie, eine Python-Umgebung mit Visual Studio Code & WSL zu erstellen
So erstellen Sie eine Python-Umgebung mit Virtualenv unter Ubuntu 18.04 LTS
Erstellen Sie mit Vagrant (Ubuntu 16.04) eine Umgebung für Django x Apache x mod_wsgi.
[DynamoDB] [Docker] Erstellen Sie mit Docker-Compose eine Entwicklungsumgebung für DynamoDB und Django
Ändern Sie die Python 64-Bit-Umgebung mit Anaconda in eine 32-Bit-Umgebung
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
So erstellen Sie eine Sphinx-Übersetzungsumgebung
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Ich möchte eine Python-Umgebung erstellen
Schritte zum Installieren der Python-Umgebung unter Ubuntu
Erstellen Sie eine Python-Umgebung mit Anaconda auf einem Mac
[Linux] Erstellen einer Jenkins-Umgebung mit Docker
Erstellen Sie mit pyenv eine virtuelle Umgebung für Python
Erstellen Sie mit Neovim eine moderne Python-Umgebung
[Linux] Aufbau einer Docker-Umgebung mit Amazon Linux 2
Vorgehensweise zum Erstellen einer virtuellen Python-Umgebung mit VS-Code unter Windows
Erstellen Sie mit Docker eine CentOS Linux 8-Umgebung und starten Sie Apache HTTP Server
Ich habe versucht, eine Mac Python-Entwicklungsumgebung mit pythonz + direnv zu erstellen
Zusammenfassung zum Erstellen einer LAMP + Wordpress-Umgebung mit Sakura VPS
Erstellen Sie Linux in einer Windows-Umgebung. Schritte zum Installieren und Migrieren von Laradock
Für Anfänger, um eine Anaconda-Umgebung aufzubauen. (Memo)
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Erstellen Sie eine Python-Umgebung mit pyenv auf EC2 (Ubuntu)
Erstellen Sie die Python3.5 + matplotlib-Umgebung unter Ubuntu 12 mit Anaconda
[Neueste] So erstellen Sie eine Java-Umgebung unter Ubuntu
Erstellen Sie eine Django-Umgebung auf Raspai (MySQL)
So entwickeln Sie eine Cart-App mit Django
Ich habe versucht, mit Raspberry Pi 4 eine Umgebung von Ubuntu 20.04 LTS + ROS2 zu erstellen
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
Erstellen Sie eine Datenanalyseumgebung, die die GitHub-Authentifizierung und Django mit JupyterHub verbindet
[0] TensorFlow-GPU-Umgebungskonstruktion, die mit Anaconda unter Ubuntu erstellt wurde
Ubuntu 16.04 LTS, Anfänger-Memorandum zur Umgebungskonstruktion, um die Version von Anaconda durch Pyenv zu ersetzen
Erstellen Sie eine virtuelle Umgebung mit pyenv und venv