1,修改项目文件权限
需要赋予apache该项目的完全权限
chmod 755 flaskdemo
查看apache的归属用户组
egrep -i '^user|^group'/usr/local/apache/conf/httpd.conf
chown daemon:daemon flaskdemo
2,创建wsgi文件
import os
importsys
importsite
fromlogging import Formatter, FileHandler
ALLDIRS =['/data/riskview/flaskdemo/env/lib/python2.7/site-packages']
#Remember original sys.path.
prev_sys_path= list(sys.path)
# Addeach new site-packages directory.
fordirectory in ALLDIRS:
site.addsitedir(directory)
# Reordersys.path so new directories at the front.
new_sys_path= []
for itemin list(sys.path):
if item not in prev_sys_path:
new_sys_path.append(item)
sys.path.remove(item)
sys.path[:0]= new_sys_path
APP_HOME= r"/data/riskview/flaskdemo/flaskdemo"
activate_this= os.path.join("/data/riskview/flaskdemo/env/bin/activate_this.py")
execfile(activate_this,dict(__file__=activate_this))
sys.path.insert(0,APP_HOME)
os.chdir(APP_HOME)
fromflaskdemo import app
application = app
flask官方部署文档:http://flask.pocoo.org/docs/0.10/deploying/配置python的虚拟运行环境建议参考文章:
http://blog.dscpl.com.au/2014/09/using-python-virtual-environments-with.html
3, 配置apache的conf
WSGIPythonHome"/data/riskview/flaskdemo/env"
#WSGIPythonPath"/data/riskview/flaskdemo/env/lib/python2.7/site-packages"
WSGIDaemonProcess pylonspython-path="/data/riskview/flaskdemo/env/lib/python2.7/site-packages"
<VirtualHost *:80>
Alias /static "/data/riskview/flaskdemo/flaskdemo/static"
WSGIScriptAlias / "/data/riskview/flaskdemo/flaskdemo/wsgi.py"
<Directory"/data/riskview/flaskdemo/flaskdemo/">
AllowOverride None
Allow from all
</Directory>
<Directory "/data/riskview/flaskdemo/flaskdemo/static">
AllowOverride None
Allow from all
</Directory>
</VirtualHost>
For embedded mode of mod_wsgi you woulddo this by using the 'WSGIPythonPath' directive:
WSGIPythonPath/usr/local/pythonenv/PYLONS-1/lib/python2.5/site-packages
If using daemon mode of mod_wsgi youwould use the 'python-path' option to the WSGIDaemonProcess directive.
WSGIDaemonProcesspylons python-path=/usr/local/pythonenv/PYLONS-1/lib/python2.5/site-packages