Windows环境下flask+Apache+mod_wsgi部署及爬坑
文章目录
安装python
下载相应的安装包python-3.6.5-amd64.exe,直接双击打开即可一步步安装,非常简单
Windows 环境使用virtualenv和virtualenvwrapper
- 环境搭建
- 安装virtualenv:
pip install virtualenv - 安装virtualenvwrapper:
pip install virtualenvwrapper-win - 配置环境变量:打开系统环境变量,添加:
WORKON_HOME=C:\virtualenvs 注意这个目录是虚拟环境存放的目录 - 配置完环境变量,一定要重启cmd窗口,要不然环境变量不生效。
- 安装virtualenv:
- 常用命令:
- 新建虚拟环境:
mkvirtualenv BoyPy36 - 查看所有虚拟环境:
workon - 进入虚拟环境:
workon BoyPy36 - 退出虚拟环境:进入到虚拟环境的目录,例如:C:\virtualenvs\LibraFlaskPy36\Scripts, 输入:
deactivate - 激活虚拟环境:进入到虚拟环境的目录,例如:C
:\virtualenvs\LibraFlaskPy36\Scripts 输入:activate.bat
- 新建虚拟环境:
安装mod_wsgi
在这个网站 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 上找到编译好的包,进入到安装包的路径,输入如下命令,进行安装
pip +ap24vc14-cp36-cp36m-win_amd64.whl
安装nginx
本来想安装nginx来着,后来大量查阅资料,发现windows下还是Apache用着顺手,以下安装nginx步骤仅供参考,后面会详细介绍Apache的安装和配置
- 下载相应的安装包:http://nginx.org/en/download.html
- 输入如下命令:
cd c:\ .zip cd nginx- start nginx
- 运行tasklist查看运行进程:
C:\nginx->tasklist /fi "imagename eq nginx.exe" Image Name PID Session Name Session# Mem Usage =============== ======== ============== ========== ============ nginx.exe Console K nginx.exe Console K
- 在浏览器输入:
http://localhost,显示欢迎页,表示启动成功 - 常用相关命令:
nginx -s stop fast shutdown nginx -s quit graceful shutdown nginx -s reload changing configuration, starting new worker processes with a new configuration, graceful shutdown of old worker processes nginx -s reopen re-opening log files
安装Apache
- 去官网 http://httpd.apache.org/download.cgi 下载相应的安装包,解压,打开cmd终端,进入到Apache/bin目录,输入如下命令,不报错表明安装成功
httpd -k install
- 双击ApacheMonitor.exe,打开服务管理UI界面,可以对Apache服务进行管理。
- 也可以用命令对Apache服务进行管理
httpd -k [start|stop|restart] # 用来 启动|停止|重启 服务
- 如果有报错,可以到Apache/logs目录下查看日志:error.log,看相关的报错信息,再进行具体问题具体解决。
遇到的坑
安装Apache遇到的坑
- 配置apache,在Apache24/conf/httpd.conf的最后添加上如下的配置,使用
mod_wsgi-express module-config > myconfig.txt,可以得到 mod_uwsgi 配置:################################################################################ # mod_wsgi 配置 LoadFile "c:/python36/python36.dll" LoadModule wsgi_module "c:/virtualenvs/libraflaskpy36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd" WSGIPythonHome "c:/virtualenvs/libraflaskpy36" # 参考:https://dormousehole.readthedocs.io/en/latest/deploying/mod_wsgi.html <VirtualHost *> ServerName # 这里我少写了80端口,坑死了 WSGIScriptAlias / C:\tools\ZLflask\Libra.wsgi <Directory C:\tools\ZLflask> # Order deny,allow # Allow from all Require all granted </Directory> </VirtualHost>
中间有一段配置也要改,这里坑死,搞了好久:
<Directory />
#AllowOverride none
#Require all denied
AllowOverride All # 改成这样的配置,为了让别人访问到这个IP地址
Require all granted
</Directory>
...
ServerName # 修改ip地址
修改证书的配置,去掉ssl认证,因为是公司内部使用,不需要绑定域名和认证,将下面这句话注释掉:
LoadModule ssl_module modules/mod_ssl.so
- 新建app.wsgi文件,写上如下代码:
# 添加虚拟环境的路径 activate_this = 'C:\\virtualenvs\\LibraFlaskPy36\\Scripts\\activate_this.py' with open(activate_this) as file_: exec(file_.read(), dict(__file__=activate_this))
在这里重点说明下,配置的时候,一直报错:
[Tue Oct ::] [wsgi:error] [pid :tid ] [client ] Traceback (most recent call last):\r, referer: http://192.168.6.27/index [Tue Oct ::] [wsgi:error] [pid :tid ] [client ] File , in <module>\r, referer: http://192.168.6.27/index [Tue Oct ::] [wsgi:error] [pid :tid ] [client ] from app import app as application\r, referer: http://192.168.6.27/index [Tue Oct ::] [wsgi:error] [pid :tid ] [client ] ModuleNotFoundError: No module named 'app'\r, referer: http://192.168.6.27/index
后来找了好久,加上下面的2行代码,成功了:
import sys sys.path.insert(0, "C:\\tools\\ZLflask")
app.wsgi 文件的全部代码:
# 添加虚拟环境的路径
activate_this = 'C:\\virtualenvs\\LibraFlaskPy36\\Scripts\\activate_this.py'
with open(activate_this) as file_:
exec(file_.read(), dict(__file__=activate_this))
# 将项目的路径添加到系统中,不然就会报错
import sys
sys.path.insert(0, "C:\\tools\\ZLflask")
from app import app as application
安装mod_uwsgi的坑
安装的时候一直报这个错:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\Dell\AppData\Local\Temp\pip-install-pnicet59\mod-wsgi\setup.py", line 158, in <module>
raise RuntimeError('No Apache installation can be found. Set the '
RuntimeError: No Apache installation can be found. Set the MOD_WSGI_APACHE_ROOTDIR environment to its location.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\Dell\AppData\Local\Temp\pip-install-pnicet59\mod-wsgi\
解决办法:
在这个网站 https://www.lfd.uci.edu/~gohlke/pythonlibs/上找到编译好的包进行安装,重启Nginx好了。
洛水之风的公众号

Windows环境下flask+Apache+mod_wsgi部署及爬坑的更多相关文章
- Windows环境下使用Apache+mod_wsgi部署webpy
1.安装Python和Apache. 2.安装mod_wsgi后获得wsgi.so,并将wsgi.so放到Apache的modules文件夹下. 3.安装webpy. 4.打开httpd.conf(在 ...
- windows环境下,apache虚拟主机配置
在windows环境下,apache从配置文件的相关配置: Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异 ...
- Windows环境下,将Django部署到Apache Web Server
在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法. 环境搭建 ...
- Windows环境下 PHP+Apache+Mysql配置
网上关于这种搭配的配置有许多许多,但是不知道大家有否碰到这么一个问题,就是做好的PHP程序(内含访问mysql数据库的操作)发布到Apache服务器上之后, 运行程序,提示未找到数据库函数. 仔细检查 ...
- Apache+Tomcat+jk windows环境下的集群部署
记一次在Windows服务器上搭建apatch+tomcat+jk的集群搭建过程,其中也遇到了很多问题,总结一下. 一.准备工作 1.apache-tomcat-7.0.88 2.Apche http ...
- PHP基础 windows环境下安装Apache Mysql PHP
本篇文章主要是讲一下我自己安装wamp环境的一些步骤和见解,前方多图预警,慎入!!!!! PHP运行环境 : Linux下的三种安装方式:源码包安装.rpm包安装.集成环境安装(lnmp) wind ...
- Windows环境下使用Apache+mod
1.安装Python和Apache. 2.安装mod_wsgi后获得wsgi.so,并将wsgi.so放到Apache的modules文件夹下. 3.安装webpy. 4.打开httpd.conf(在 ...
- Windows环境下实现Jenkins自动化部署
详见:https://blog.csdn.net/Try_harder_every_day/article/details/79170065 Jenkins自动化部署: 几条具体的思路:1.开发人员将 ...
- windows环境下Git的安装部署
一.获取安装包 百度搜索“git”,或者访问git官网:https://git-scm.com/,在首页中点击“downloads”进入下载页面 点击“windows”,获取安装包 二.安装部署 双击 ...
随机推荐
- 【bzoj1207】[HNOI2004]打鼹鼠
看了数据范围,想想这不暴力可以过?? DP #include<algorithm> #include<iostream> #include<cstdlib> ...
- c++ vector数组的定义使用
/* *********************************************** Author :guanjun Created Time :2017/3/18 13:32:52 ...
- java Map 转 List
public static void testMapVoid () { Map map = new HashMap(); map.put("a", "a1"); ...
- YTU 2706: 编写一个函数求最大的n值
2706: 编写一个函数求最大的n 值. 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 132 题目描述 编写一个函数求满足以下条件的最大的n.:12+22+32+-+ ...
- mysql创建用户,并授予权限
mysql> GRANT ALL PRIVILEGES ON *.* TO jiqing@"%" IDENTIFIED BY '123456'; Query OK, 0 ro ...
- P2120 [ZJOI2007]仓库建设 斜率优化dp
好题,这题是我理解的第一道斜率优化dp,自然要写一发题解.首先我们要写出普通的表达式,然后先用前缀和优化.然后呢?我们观察发现,x[i]是递增,而我们发现的斜率也是需要是递增的,然后就维护一个单调递增 ...
- Spark SQL中 RDD 转换到 DataFrame (方法二)
强调它与方法一的区别:当DataFrame的数据结构不能够被提前定义.例如:(1)记录结构已经被编码成字符串 (2) 结构在文本文件中,可能需要为不同场景分别设计属性等以上情况出现适用于以下方法.1. ...
- vue单页面应用刷新网页后vuex的state数据丢失问题以及beforeunload的兼容性
最近在用vue写h5项目,当使用window.location重定向页面或者刷新当前页面时, 发现当刷新网页后,保存在vuex实例store里的数据会丢失. 后来在网上查找大神的解决方案如下: exp ...
- Ruby 遍历多个数组
puts("----------------------------------------") puts(" 多重指定 test") ...
- 关于将电脑背景+chrome等网页改成护眼豆沙绿
常用电脑的人都知道,白色等其他对比度大的颜色对眼伤害大,所以需换成柔和的豆沙绿,可长时间保证眼睛的不疲劳 windows浏览器: >>>>在桌面点右键,依次选属性(proper ...