Flask on apache via mod_wsgi
Install Flask with python which you want
1 2 3 | # python3.6 -m pip install --upgrade pip # python3.6 -m pip install flask | cs |
실행하려는 파이썬 버전의 pip 모듈로 flask를 설치 해야 apache에서 인식하고 flask 모듈들을 import 할 수 있다.
Install mod_wsgi for apache
1 2 3 | # ./configure --with-apxs=/PATH_TO_APACHE/bin/apxs --with-python=/usr/local/bin/python3.6 # make && make install | cs |
yum으로 설치하는 것 보다 python path를 제공해서 컴파일하고 설치하는 것을 권장한다. 버전에 맞는 mod_wsgi가 로드되어야 아파치에서 해당 모듈로 파이썬 어플리케이션을 문제 없이 실행 할 수 있다.
Configure httpd.conf or vhost.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | ... # Outside of VirtualHost WSGISocketPrefix /var/www/flaskprj <VirtualHost *:80> DocumentRoot /var/www/flaskprj ServerName flask.com # Location for .wsgi file WSGIScriptAlias / /var/www/flaskprj/flask_app.wsgi WSGIDaemonProcess flask_app python-path=/usr/local/ threads=5 # Flask application name WSGIProcessGroup flask_app <Directory /var/www/flaskprj> WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> </VirtualHost> | cs |
가상 호스트 설정 시에 wsgi 모듈과 관련된 지시어들을 최소한으로 지정한 내용이니 참고
Make .wsgi file
1 2 3 4 5 6 7 8 9 10 11 | # vim APP_NAME.wsgi import sys # Flask application path sys.path.insert(0,'/var/www/flaskprj') # Should import as application from APP_NAME import app as application | cs |
wsgi 파일에서 아파치로 들어온 요청을 파이썬 어플리케이션으로 요청을 전달한다.
Link shared library for python
1 2 3 4 5 6 7 8 9 | # vim /etc/ld.so.conf # Add python library path # /sbin/ldconfig -v # service httpd restart | cs |
If you want to trouble shoot with your work
I recommand http access log and error log
파이썬 라이브러리를 제대로 로드할 수 없을 때 설정
'Python' 카테고리의 다른 글
SSH with python3 (0) | 2019.01.25 |
---|---|
flask: download file from directory (0) | 2019.01.02 |
Python 2.6 to 2.7 (or 3.x) (0) | 2018.11.23 |
Django: 1. Start first application (0) | 2018.05.30 |
Django: 0. Preparing environment (0) | 2018.05.28 |