终于搞定flask+win+apache+mod_wsgi+virtualenv的部署发布!!

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1、安装python 2.7

2、安装apache或者xampp

3、下载mod_wsgi.so,放到apache下modules文件夹下,并修改httpd.conf以加载模块。

   http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

LoadModule wsgi_module modules/mod_wsgi.so


4、安装pip,指南:
   https://pip.pypa.io/en/latest/installing.html#install-pip

5、安装virtualenv,cmd下
   pip install virtualenv

6、建立虚拟环境FlaskEnv2,cmd下
   virtualenv D:\PythonProjects\FlaskEnv2

7、进入FlaskEnv2目录,cmd下
   cd D:\PythonProjects\FlaskEnv2\Scripts

8、安装Flask和其他插件,cmd下
pip install flask
pip install flask-login
pip install flask-openid
pip install flask-mail
pip install flask-sqlalchemy
pip install sqlalchemy-migrate
pip install flask-whooshalchemy
pip install flask-wtf
pip install flask-babel
pip install guess_language
pip install flipflop
pip install coverage

9、修改apache的设置文件 C:\xampp\apache\conf\extra\httpd-vhosts.conf


        ServerName example.com
        WSGIScriptAlias / "D:/PythonProjects/apricot/apricot.wsgi"
        
        
        Order allow,deny
        Allow from all
        
        = 2.3>
        Require all granted
        
        

注意!!路径里的斜杠“/”是这个方向的,不是“\”这个方向的!这里要搞死人了!
还有下面的权限设置,用这里的这段。查了很久!

10、修改hosts文件,加入解析来测试
127.0.0.1        example.com

11、创建一个wsgi文件来测试 D:\PythonProjects\apricot\apricot.wsgi
代码如下:

##########开始#######
activate_this = 'D:/PythonProjects/FlaskEnv2/Scripts/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import site
import sys
# Remember original sys.path.
prev_sys_path = list(sys.path) 
# Add site-packages directory.
site.addsitedir('D:/PythonProjects/FlaskEnv2/Lib/site-packages')
# Reorder sys.path so new directories at the front.
new_sys_path = [] 
for item in 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 
sys.path.insert(0, 'D:/PythonProjects/apricot')
from app import app as application
if __name__ == '__main__': #感觉写在这里好点
    app.run(debug=True)
##############结束#########

这段代码引入了独立环境到项目中,注意哦!
还是要注意那个斜杠“/”,走了不少弯路
然后就是那几个路径了,之前建立的独立环境等

12、建立一个测试的py文件 D:\PythonProjects\apricot\app.py
代码如下:

###########开始#######
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello, I'm Apricot!"
if __name__ == "__main__":
    app.run()
###########结束#######

13、打开Apache,然后开ie,打开http://example.com/,看到了吧
经测试,包括sqlite的本地读写,都一切正常^_^

14、有关静态文件的访问(图、js和css等),还没研究。


参考:
Windows Python虚拟环境配置(Distribute + pip + virtualenv + virtualenvwrapper-powershell)
http://my.phirobot.com/blog/2014-02-python_in_windows.html

引入独立环境的方法
http://blog.nutenstudio.com/flask-apache-virtualenv/

有关静态1
http://jyd.me/python/use-django-with-apache-mod_wsgi/

留一下
http://blog.xavierskip.com/2014-06-18-apache-wsgi/

留2
https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps

django有关静态的设置
https://django-chinese-docs.readthedocs.org/en/latest/howto/deployment/wsgi/modwsgi.html

转载于:https://my.oschina.net/klausgao/blog/340990

你可能感兴趣的:(python,数据库)