当前位置:   article > 正文

企业级windows10下,python3.6.6下利用apache2434+mod_wsgi部署flask(以虚拟环境方式)方案_flask部署到windows服务器

flask部署到windows服务器

背景:

1:公司老项目在windows10上是用apache部署的,需要学习掌握前面的技术。

2:看到前面同事的代码,缺点很明显,各个项目之间的包互相冲突,风险太大,因为它们是apache全局跑的同一个解释器。

23_10_11_分割线:

笔者能做到windows同一个apache跑flaskA,flaskB项目,二者的环境包互相隔离,而不是最初的一个apache使用一个环境包跑flaskA、flaskB项目。

期望:

1:用虚拟环境装包后,在放到apache上跑,即每个项目的包环境隔离开来。

过程:

1:根据python,apache版本,确定mod_wsgi版本(这一步十分重要!),主要就是看它是什么编译的(VC几),多少位。

我选用的是python3.6.6+apache2.4.34(Win64)+mod_wsgi-4.6.8+ap24vc14-cp36-cp36m-win_amd64.whl(这个网上已经下载不到了,这是公司遗留的)

贴出现有mod_wsgi地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ (ctrl+f搜索:mod_wsgi

2:安装mod_wsgi,并部署到apache里面。

我是选择pycharm开创一个flask项目的虚拟环境,我当初就是卡在这里很多天(pycharm自动创建的venu里面没有activate_this.py,假如要有,必须要cmd下

virtualenv --no-site-packages venu手动创建)

  1. 把mod_wsgi复制到venu里面的Scripts里面,
  2. pip安装后输入mod_wsgi-express module-config,出现两行。
  3. 复制LoadModule wsgi_module "d:/python_project/test_apache_002/venu/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
  4. 到apache目录D:\app_new\Apache-2.4.34\conf,httpd.conf里面。

检查是否安装成功的方法是apache重启不报错!

3:另外使用virtualenv重新创建一个虚拟环境的flask项目,放在apache上面启动。使用postman访问接口验证。

  1. 1
  2. virtualenv --no-site-packages venu # 创建虚拟环境venu
  3. #项目生成requirement.txt文件
  4. pip freeze > requirements.txt
  5. #使用requirements.txt安装依赖的方式
  6. pip install -r requirements.txt
  7. #2:app.wsgi里面内容
  8. activate_this = r'D:\python_project\test_venu_001\newenv\Scripts\activate_this.py'
  9. with open(activate_this) as file_:
  10. exec(file_.read(), dict(__file__=activate_this))
  11. import sys
  12. sys.path.insert(0, r'D:\python_project\test_venu_001')
  13. from app import app as application
  14. #3:apache配置里面内容
  15. Listen 10020
  16. <VirtualHost *:10020>
  17. ServerName example.com
  18. WSGIScriptAlias / D:\python_project\test_venu_001\app.wsgi
  19. <Directory D:\python_project\test_venu_001>
  20. Require all granted
  21. </Directory>
  22. </VirtualHost>

项目

成功标识

报错就找

坑点!!!

// 联系请加V:zew1040994588

1:mod_wsgi版本的选择,我之前也不知道自己是什么版本,就一个个下载了pip,发现pycharm会提示你平台不符合,不能安装,还是很实用。

2:pycharm默认创建虚拟环境是不会有activate_this.py这个东西的,还是需要cmd下手动创建。

3:由于网上基本没有函数工厂部署这方面的,这也是个坑,记得转义r''地址与as application(mod_wsgi只认这个),此外假如使用mod_wsgi,其实flask就不走app.run()或者manage.run()即flask自带的服务器。

 参考资料:

1:python3.6_flask_apahce_mod_wsgi 成功部署在windows2012x64 无数坑 无数次的尝试

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/532851
推荐阅读
相关标签
  

闽ICP备14008679号