flask部署:Apache+mod_wsgi+python+virtualenv

来源:互联网 发布:淘宝上好的汉元素店家 编辑:程序博客网 时间:2024/05/21 10:17

1,修改项目文件权限

需要赋予apache该项目的完全权限

chmod 755 flaskdemo

查看apache的归属用户组

egrep -i '^user|^group'/usr/local/apache/conf/httpd.conf

 

chown daemon:daemon flaskdemo

 

2,创建wsgi文件


import osimportsysimportsitefromlogging 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

 

0 0
原创粉丝点击