[PYTHON] Procédure de création d'un environnement Django avec Win10 WSL Ubuntu18.04 + Anaconda + Apache2

Résumer la procédure de création d'un environnement de développement Django + Apache sur Ubuntu 18.04 de Windows 10 WSL

procédure

Permet à apache2 d'accéder à python via mod_wsgi. En outre, nous rendrons VScode disponible en tant qu'IDE distant pouvant être utilisé avec WSL.

  1. Installez anaconda3
  2. Installez django
  3. Créez un projet django et migrez
  4. Installez apache2
  5. Installez mod_wsgi
  6. Ajouté au fichier de configuration apache2
  7. Rendre le vscode disponible

Comme systemctl ne peut pas être utilisé dans WSL, le fonctionnement d'apache change un peu, lorsque vous utilisez anaconda, vous devez changer le paramètre de référence par vous-même sauf si vous installez mod_wsgi avec pip, le paramètre d'apache2.conf est difficile à comprendre, il est facile de trébucher Je pense que c'est l'endroit.

1. Installez WSL

Activez WSL et installez Ubuntu 18.04 https://qiita.com/matarillo/items/61a9ead4bfe2868a0b86

Mise à jour

terminal


sudo apt update
sudo apt upgrade

2. Installation d'Apache2

Installez et démarrez apache2 et apache2-dev

terminal


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

Apache devrait maintenant attendre sur http: // localhost. Si vous l'ouvrez dans un navigateur, index.html dans la racine du document / var / www / html / s'ouvrira. image.png Pour l'arrêter, c'est s'arrêter

terminal


sudo /etc/init.d/apache2 stop

Lors du redémarrage pour refléter le changement de paramètre, redémarrez

terminal


sudo /etc/init.d/apache2 restart

3. Installation d'Anaconda

Installez pyenv

terminal


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

À travers PATH

terminal


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

Vérifiez la version d'anaconda qui peut être installée

terminal


pyenv install -l | grep anaconda

Installez la version d'anaconda de votre choix. Ci-dessous, la version 2020.02 est installée.

terminal


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

Mettez-le dans votre PATH.

terminal


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

Créez un environnement conda. Ci-dessous, nous créons un environnement python3.7 nommé django. xxxx est le nom d'utilisateur.

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. Installez django

Installer et vérifier la version

terminal


pip install django
django-admin --version

Créons un projet et déplaçons-le. Vous pouvez créer un projet nommé hoge en créant un répertoire et en faisant django-admin startproject hoge.

terminal


mkdir django
cd django
django-admin startproject proj1

Exécutez manage.py créé dans le répertoire créé à partir de python pour exécuter un serveur simple et vérifier l'opération.

terminal


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

Ouvrez http: // localhost: 8000 dans votre navigateur et vous devriez voir la page d'exemple de django.

5. Installez mod_wsgi

Il existe également un moyen d'installer mod_wsgi à partir d'apt, mais le paramètre par défaut est que mod_wsgi installé avec apt fait référence à python lorsque l'installation d'apt python est effectuée au lieu d'anaconda. Si vous utilisez anaconda, je pense que c'est plus facile à installer à partir de pip.

terminal


pip install mod_wsgi
pip install mod-wsgi-httpd

Mettez-le dans votre PATH. xxxx est le nom d'utilisateur.

terminal


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

Mod_wsgi devrait maintenant fonctionner. Lançons un serveur simple et vérifions le fonctionnement. La commande suivante attendra le serveur simple à l'adresse http: // localhost: 8000, alors ouvrez-le dans votre navigateur.

terminal


mod_wsgi-express start-server
Si le serveur mod_wsgi-express fonctionne correctement, vous verrez une image qui ne ressemble pas à l'exemple de page ci-dessus.

Enfin, récupérez les informations à écrire dans le fichier de configuration Apache2.

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"

Copions ce qui précède quelque part.

6. Associez apache et mod_wsgi

django Ajoutez apache2.conf comme officiel. https://docs.djangoproject.com/ja/2.0/howto/deployment/wsgi/modwsgi/

Si vous avez créé le projet django dans / home / xxxx / django /, il ressemblera à celui ci-dessous. Les deux premières lignes sont une copie de ce qui est affiché dans mod_wsgi-express module-config, avec le PATH de wsgi.py créé dans le répertoire du projet django créé par WSGIScriptAlias, et le manage.py du projet django créé par WSGIPythonPath. Le répertoire PATH et Direcoty sont le répertoire PATH de wsgi.py ci-dessus.

/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>

J'ai changé les paramètres d'Apache, alors redémarrez-le.

terminal


sudo /etc/init.d/apache2 restart

Ouvrez http: // localhost dans votre navigateur et vérifiez. image.png Si cela ressemble à ce qui précède, c'est OK.

Si le contenu de apache2.conf est incorrect ou si certains packages ne peuvent pas être installés, une erreur de serveur interne se produit comme indiqué ci-dessous. image.png Il est difficile de comprendre la cause avec cela seul, alors jugeons en regardant le journal des erreurs Apache. Si vous conservez les paramètres par défaut, vous pouvez le voir ci-dessous.

terminal


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

Je pense que c'est soit parce que j'ai oublié de mettre quelque chose ou le PATH est différent.

7. Activez le développement avec VScode

WSL n'a pas d'interface graphique, mais l'extension WSL de VScode vous permet de développer avec une interface graphique. Activez l'extension WSL après l'installation de VScode sur Windows 10. image.png Lorsque le code VS est démarré à partir de WSL avec la commande suivante, il semble que le code VS du côté Windows viendra s'exécuter du côté WSL.

terminal


cd test
code .

image.png

À propos, la limite d'autorisation est la même que celle d'Ubuntu, vous pouvez donc modifier avec l'autorité lorsque vous exécutez du code. Par exemple, dans / var / www / html / où le fichier statique d'apahce est placé, le propriétaire est root, donc si vous essayez de le changer à partir du compte utilisateur, vous obtiendrez une erreur comme l'image ci-dessous. Si vous changez de propriétaire, vous pouvez le changer, mais je ne sais pas si c'est bon pour la sécurité, alors faites-le moi savoir. Au fait, il semble que le code sudo ne puisse pas être exécuté.

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

référence

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

Procédure de création d'un environnement Django avec Win10 WSL Ubuntu18.04 + Anaconda + Apache2
Construire un environnement Django pour Win10 (avec espace virtuel)
J'ai essayé de créer un environnement avec WSL + Ubuntu + VS Code dans un environnement Windows
Créez un environnement Django avec Vagrant en 5 minutes
[Memo] Créez un environnement virtuel avec Pyenv + anaconda
Créer un environnement de développement Django à l'aide de Doker Toolbox
Créez rapidement un environnement Python Django avec IntelliJ
[Linux] WSL2 Créer un environnement pour laravel7 avec Ubuntu 20.04
Comment créer un environnement Django (python) sur Docker
Créez un environnement de développement avec Poetry Django Docker Pycharm
Créer un environnement python3 avec ubuntu 16.04
Créez un environnement de développement Django avec Docker! (Docker-compose / Django / postgreSQL / nginx)
Comment créer un nouvel environnement virtuel Python sur Ubuntu
[Memo] Construire un environnement de développement pour Django + Nuxt.js avec Docker
Configurer un serveur Web avec CentOS7 + Anaconda + Django + Apache
[Django] Créez rapidement un environnement de développement de conteneur Django (Docker) avec PyCharm
Comment créer un environnement de développement de la série Python2.7 avec Vagrant
Créez un environnement LAMP avec Vagrant (Linux + Apache + MySQL + PHP)
Créer un environnement Python avec WSL + Pyenv + Jupyter + VSCode
Étapes pour développer Django avec VSCode
Étapes pour créer un projet Django
Créer une application Web avec Django
Créez un environnement Python sur votre Mac avec Anaconda et PyCharm
# 3 Créez un environnement Python (Django) avec une instance EC2 (ubuntu18.04) d'AWS part2
Essayez de créer un environnement python avec Visual Studio Code et WSL
Comment créer un environnement Python à l'aide de Virtualenv sur Ubuntu 18.04 LTS
Créer un environnement pour Django x Apache x mod_wsgi avec Vagrant (Ubuntu 16.04)
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
Changer l'environnement Python 64 bits en environnement 32 bits avec Anaconda
Créez facilement un environnement de développement avec Laragon
Comment créer un environnement de traduction sphinx
Créer un environnement Tensorflow avec Raspberry Pi [2020]
[Python] Créez un environnement virtuel avec Anaconda
Je veux créer un environnement Python
Étapes pour installer l'environnement Python sur Ubuntu
Créer un environnement Python avec Anaconda sur Mac
[Linux] Créer un environnement Jenkins avec Docker
Créez un environnement virtuel pour python avec pyenv
Créez un environnement Python moderne avec Neovim
[Linux] Construction de l'environnement Docker avec Amazon Linux 2
Procédure de création d'un environnement virtuel Python avec VS Code sous Windows
Créez un environnement CentOS Linux 8 avec Docker et démarrez Apache HTTP Server
J'ai essayé de créer un environnement de développement Mac Python avec pythonz + direnv
Résumé de la création d'un environnement LAMP + Wordpress avec Sakura VPS
Construisez Linux sur un environnement Windows. Étapes pour installer Laradock et migrer
Pour les débutants à créer un environnement Anaconda. (Note)
Créez un environnement WardPress sur AWS avec Pulumi
Créer un environnement python avec pyenv sur EC2 (ubuntu)
Construire l'environnement Python3.5 + matplotlib sur Ubuntu 12 en utilisant Anaconda
[Latest] Comment créer un environnement Java sur Ubuntu
Construire un environnement Django sur Raspai (MySQL)
Comment développer une application de panier avec Django
J'ai essayé de créer un environnement Ubuntu 20.04 LTS + ROS2 avec Raspberry Pi 4
Créer un environnement de construction python3 avec Sublime Text3
Créer un environnement d'analyse de données qui relie l'authentification GitHub et Django avec JupyterHub
[0] Construction de l'environnement TensorFlow-GPU avec Anaconda sur Ubuntu
Ubuntu 16.04 LTS, mémorandum de construction d'environnement pour débutant pour changer la version d'Anaconda avec pyenv
Créez un environnement virtuel avec pyenv et venv