Anaconda + Diango와 협력

Anaconda + Diango와 협력



이 기사에서는 Anaconda + Diango와 협력하여 LINE BOT을 만듭니다. 꽤 귀찮아서 할 수 있다면하지 않는 것이 좋습니다.

환경을 만드는 곳에서 써 갑니다, 그 이전의 기본적인 Ubuntu의 설정에 대해서는 끝내 둡니다.

환경 만들기



Apache 환경 만들기



Apache 환경을 만듭니다. 필요한 것을 설치
sudo apt-get install apache2 apache2-bin apache2-dev

Anaconda 설치



그런 다음 Anaconda를 설치합니다.
wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh

sudo bash Anaconda3-2020.02-Linux-x86_64.sh

안내에 따라 설치하십시오. (conda도 인식하도록)

다음으로 Anaconda의 설정을 해 갑니다. 장고를 설치.
sudo conda install django

장고 버전은 다음과 같습니다.
python -m django --version
3.0.3

장고 프로젝트 만들기



다음으로 Djanog 프로젝트를 만들겠습니다. 튜토리얼 페이지가 참고가 되었습니다 : htps : // / cs. d 쟈고 p 로지 ct. 코 m / 그럼 / 2.2 / 인 t로 / 쓰리 아 l01 /

이번은 적당히 이하에서 실행.
django-admin startproject linebot

이제 현재 디렉토리 아래에 linebot이라는 폴더가 만들어집니다.
python manage.py runserver 0.0.0.0:8000

이제 서버를 시작할 수 있으므로 보면 좋을 것입니다.



여기에서 먼저 장고의 응용 프로그램을 만들거나 튜토리얼을 참조하십시오. (여기에서는 할애합니다)

장고와 아파치의 협력



다음으로 제일의 오니몬인 Django와 Apache의 제휴를 해 나갑니다. 이것을 하려면 mod_wsgi라는 것으로 앞의 Django와 Apache를 연동시킵니다.

우선 설치
pip install mod_wsgi

그런 다음 설치 대상을 찾습니다.
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

환경에 따라 다르지만 이번에는 vagrant에서 했기 때문에 이러한 장소에있었습니다.

/etc/apache2/mods-available/wsgi.load 에 이와 같이 패스를 기재합니다.
LoadModule wsgi_module /home/vagrant/.local/lib/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so

이어서/etc/apache2/mods-available/wsgi.conf 에도 이와 같이 설명합니다.
<IfModule mod_wsgi.c>
    WSGIPythonHome /home/vagrant/anaconda3
    WSGIPythonPath /home/vagrant/anaconda3/bin
</IfModule>

그리고 wsgi를 활성화합니다.
sudo a2enmod wsgi

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

이러한 표시가 나오면 괜찮습니다.

다음으로 사이트의 설정 파일을 만들어 갑니다.

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

자신은 이런 식으로 만들었습니다. ↑는 SSL 설정도 포함되어 있습니다.

마지막으로 apache를 다시 시작합니다.
sudo service apache2 restart

그렇다면 어땠습니까? Django와 Apache의 연계는 꽤 귀찮기 때문에 하지 않는 것을 알게 되었다고 생각합니다 w

이 환경을 사용해 LINE Bot 작성을 작성하고 있으므로, 여유가 있으면 그쪽도 기사에 할 수 있으면 좋겠습니다.

좋은 웹페이지 즐겨찾기