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

+ Recent posts