본문은 다음의 가이드에 대한 요약 및 보충 내용을 다룬다.
http://flask-docs-kr.readthedocs.org/ko/latest/deploying/mod_wsgi.html
설치
1. 아파치를 설치한다.
--with-python=<path/python>
--with-apxs=<path/apxs>
* apxs(APache eXtenSion tool) : 확장 모듈을 설치를 위한 도구
2. WSGI 모듈(mod_wsgi)를 설치한다.
pip install mod_wsgi
* 빌드를 위해 apxs가 있어야 한다.
3. 아파치 설정 파일(httpd.conf)에 모듈(mod_wsgi)를 추가한다.
LoadModule wsgi_module modules/mod_wsgi.so
* mod_wsgi.so는 pip로 설치된 폴더에 원본이 있다. (링크 걸면된다.)
설정
1. 가상 호스트 연결을 통한 mod_wsgi 사용 예제
NameVirtualHost *
<VirtualHost api4u.info>
ServerName adi4u.info
WSGIDaemonProcess api4u user=user1 group=group1 threads=5
WSGIScriptAlias / /var/www/api4u/api4u.wsgi
<Directory /var/www/api4u>
WSGIProcessGroup api4u
WSGIApplicationGroup %{GLOBAL}
WSGIScriptReloading On
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
2. WSGIDaemonProcess를 위한 계정을 만든다.
groupadd group1 ; useradd -g group1 user1
* 해당 계정을 통해서 프로젝트를 생성 및 수행한다.
3. 사용할(생성한) 계정으로 가상환경을 만든다.
virtualenv -p python3.5 Pyzone
3. 가상 환경을 위한 .wsgi 예제 (/var/www/api4u/api4u.wsgi)
import sys
sys.path.insert(0, '/var/www/api4u')
activate_this = '/home/user1/Pyzone/bin/activate_this.py'
# execfile(activate_this, dict(__file__=activate_this))
exec(open(activate_this).read(), dict(__file__=activate_this))
from api4u import app as application
* python 3.5에서는 execfile() 함수가 없음으로 exec() 함수를 사용한다.
0 개의 댓글:
댓글 쓰기