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éez un environnement Apache. Installez ce dont vous avez besoin
sudo apt-get install apache2 apache2-bin apache2-dev
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
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.
A partir de là, créez une application Django ou reportez-vous au tutoriel. (Je vais l'omettre ici)
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.