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”,获取安装包 二.安装部署 双击 ...
随机推荐
- coffeescript的上下文
CoffeeScript代码中,变量,甚至函数前面有时会带上一个@符号,那么翻译到 javascript里,就是 "this." 这就涉及到运行过程中的上下文. 这个this指什么 ...
- TLabel和TEdit的初次显示过程
procedure TForm1.Button2Click(Sender: TObject); var l: TLabel;begin l:=TLabel.Create(self); l.Name:= ...
- SQL SERVER 语句大全
·SQL的简单查询实例教程关键词:SQL语句大全 中文网 整理编辑,经典SQL语句大全(SQL语句大总结),欢迎网友投稿 下列语句部分是Mssql语句,不可以在access中使用.SQL分类:DDL— ...
- bzoj1106
模拟+树状数组 先开始以为是先删距离最小的,这样可以减小上下的距离,然后觉得很难写,看码长很短,就看了题解,结果很奥妙 我们只考虑两种元素,就是如果像-a-b-a-b-这样的肯定得交换,如果像-a-b ...
- Paratroopers(最小割模型)
http://poj.org/problem?id=3308 题意:一个m*n的网格,有L位火星空降兵降落在网格中,地球卫士为了能同时消灭他们,在网格的行或列安装了一个枪支,每行或每列的枪支都能消灭这 ...
- JavaScript--引用JS外部文件
通过前面知识学习,我们知道使用<script>标签在HTML文件中添加JavaScript代码,如图: JavaScript代码只能写在HTML文件中吗?当然不是,我们可以把HTML文件和 ...
- MYSQL 使用自定义表变量
mysql 用户自定义表变量,ENGINE=MyISAM DEFAULT CHARSET=gb2312; 制定编码方式,防止乱码 DROP TABLE IF EXISTS p_temp; creat ...
- html——行内元素、块元素、行内块元素
行内元素:span ,a, ,strong , em, del, ins.特点:在一行上显示:不能直接设置宽高:元素的宽和高就是内容撑开的宽高. 块元素:div,h1-h6,p,ul,li.特 ...
- git使用原理
如果需要新建仓库: mkdir new_artcle//artcle为文件名 cd new_artcle//进入该目录 git init //初始化工作空间 git add 文件名(article) ...
- [Windows Server 2008] 服务器安全加固
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:服务器安全加固 ...