[PYTHON] Lier Anaconda + Diango

Lier Anaconda + Diango

Dans cet article, nous allons créer un LINE BOT en liant Anaconda + Diango. C'est assez ennuyeux donc tu ne devrais pas le faire si tu peux lol

J'écrirai à partir du moment de la création de l'environnement, veuillez terminer les paramètres de base d'Ubuntu avant cela.

Création d'environnement

Créer un environnement Apache

Créez un environnement Apache. Installez ce dont vous avez besoin

sudo apt-get install apache2 apache2-bin apache2-dev

Installation d'Anaconda

Ensuite, installez Anaconda.

wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh

sudo bash Anaconda3-2020.02-Linux-x86_64.sh

Suivez les instructions d'installation. (Pour reconnaître aussi conda)

Ensuite, nous installerons Anaconda. Installez Django.

sudo conda install django

La version de Django est ci-dessous:

python -m django --version
3.0.3

Création de projet Django

Ensuite, nous allons créer un projet Djanog. La page du tutoriel a été utile: https://docs.djangoproject.com/ja/2.2/intro/tutorial01/

Cette fois, exécutez comme suit.

django-admin startproject linebot

Cela créera un dossier appelé linebot sous votre répertoire actuel.

python manage.py runserver 0.0.0.0:8000

Vous pouvez maintenant démarrer le serveur, alors jetez un œil.

_2020-04-03_18.17.13.png

A partir de là, créez une application Django ou reportez-vous au tutoriel. (Je vais l'omettre ici)

Coopération entre Django et Apache

Ensuite, nous allons lier Django, qui est le démon numéro un, avec Apache. Pour ce faire, utilisez mod_wsgi pour lier Django et Apache.

Première installation

pip install mod_wsgi

Recherchez ensuite l'emplacement d'installation.

python -c "import sys; print(sys.path)"
['', '/home/vagrant/anaconda3/lib/python37.zip', '/home/vagrant/anaconda3/lib/python3.7', '/home/vagrant/anaconda3/lib/python3.7/lib-dynload', '/home/vagrant/.local/lib/python3.7/site-packages', '/home/vagrant/anaconda3/lib/python3.7/site-packages']

(base) vagrant@vagrant:~/.local/lib/python3.7/site-packages/mod_wsgi/server$ ls
__init__.py  apxs_config.py  management
__pycache__  environ.py      mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so

Cela dépend de l'environnement, mais cette fois je le faisais avec vagabond, donc c'était dans un tel endroit.

Mettez le chemin dans /etc/apache2/mods-available/wsgi.load comme ceci:

LoadModule wsgi_module /home/vagrant/.local/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so

Vous pouvez également l'écrire dans /etc/apache2/mods-available/wsgi.conf.

<IfModule mod_wsgi.c>
    WSGIPythonHome /home/vagrant/anaconda3
    WSGIPythonPath /home/vagrant/anaconda3/bin
</IfModule>

Puis activez wsgi.

sudo a2enmod wsgi

Enabling module wsgi.
To activate the new configuration, you need to run:
  systemctl restart apache2

Ce n'est pas grave si un tel affichage apparaît.

Ensuite, nous allons créer un fichier de configuration de site.

/etc/apache2/sites-available/default-ssl.conf

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName mikuaka.ddo.jp
 
    RewriteEngine on
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 
</VirtualHost>

NameVirtualHost *:443

<IfModule mod_ssl.c>
	<VirtualHost _default_:443>

    ServerAdmin [email protected]
    ServerName your.name.com
    ServerAlias www.your.name.com

    WSGIDaemonProcess name display-name=%{GROUP} user=www-data group=www-data python-path=/home/ubuntu/your/project
    WSGIProcessGroup name

    WSGIScriptAlias / /var/www/name/wsgi.py

    <Directory "/var/www/name">
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    Alias /static/ /var/www/name/static/

    <Directory /var/www/name/static/>
        Require all granted
    </Directory>

		ErrorLog ${APACHE_LOG_DIR}/error.log
		CustomLog ${APACHE_LOG_DIR}/access.log combined

		SSLEngine on
		SSLCertificateFile	/etc/letsencrypt/live/your.name.com/cert.pem
		SSLCertificateKeyFile	/etc/letsencrypt/live/your.name.com/privkey.pem
		SSLCertificateChainFile /etc/letsencrypt/live/your.name.com/chain.pem
		
 		<FilesMatch "\.(cgi|shtml|phtml|php)$">
				SSLOptions +StdEnvVars
		</FilesMatch>
		<Directory /usr/lib/cgi-bin>
				SSLOptions +StdEnvVars
		</Directory>

	</VirtualHost>
</IfModule>

Je l'ai fait comme ça. ↑ contient également les paramètres SSL.

Enfin, redémarrez Apache.

sudo service apache2 restart

Comment était-ce? La coopération entre Django et Apache est assez ennuyeuse, donc j'espère que vous comprenez que vous ne voulez pas le faire.

Je crée un Bot LINE en utilisant cet environnement, donc si je peux me le permettre, j'aimerais également y écrire un article.

Recommended Posts

Lier Anaconda + Diango
anaconda
Anaconda introduit
Version d'Anaconda 2.5
Télécharger Anaconda