安装python

下载相应的安装包python-3.6.5-amd64.exe,直接双击打开即可一步步安装,非常简单

Windows 环境使用virtualenv和virtualenvwrapper

  1. 环境搭建

    • 安装virtualenv:pip install virtualenv
    • 安装virtualenvwrapper:pip install virtualenvwrapper-win
    • 配置环境变量:打开系统环境变量,添加:WORKON_HOME=C:\virtualenvs  注意这个目录是虚拟环境存放的目录
    • 配置完环境变量,一定要重启cmd窗口,要不然环境变量不生效。
  2. 常用命令:
    • 新建虚拟环境: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的安装和配置

  1. 下载相应的安装包:http://nginx.org/en/download.html
  2. 输入如下命令:
    cd c:\
    .zip
    cd nginx-
    start nginx
  1. 运行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
  2. 在浏览器输入:http://localhost,显示欢迎页,表示启动成功
  3. 常用相关命令:
    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

  1. 去官网  http://httpd.apache.org/download.cgi  下载相应的安装包,解压,打开cmd终端,进入到Apache/bin目录,输入如下命令,不报错表明安装成功

    httpd -k install
  2. 双击ApacheMonitor.exe,打开服务管理UI界面,可以对Apache服务进行管理。
  3. 也可以用命令对Apache服务进行管理
    httpd -k [start|stop|restart]    # 用来 启动|停止|重启 服务
  4. 如果有报错,可以到Apache/logs目录下查看日志:error.log,看相关的报错信息,再进行具体问题具体解决。

遇到的坑

安装Apache遇到的坑

  1. 配置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
  1. 新建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部署及爬坑的更多相关文章

  1. Windows环境下使用Apache+mod_wsgi部署webpy

    1.安装Python和Apache. 2.安装mod_wsgi后获得wsgi.so,并将wsgi.so放到Apache的modules文件夹下. 3.安装webpy. 4.打开httpd.conf(在 ...

  2. windows环境下,apache虚拟主机配置

    在windows环境下,apache从配置文件的相关配置: Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异 ...

  3. Windows环境下,将Django部署到Apache Web Server

    在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法. 环境搭建                                   ...

  4. Windows环境下 PHP+Apache+Mysql配置

    网上关于这种搭配的配置有许多许多,但是不知道大家有否碰到这么一个问题,就是做好的PHP程序(内含访问mysql数据库的操作)发布到Apache服务器上之后, 运行程序,提示未找到数据库函数. 仔细检查 ...

  5. Apache+Tomcat+jk windows环境下的集群部署

    记一次在Windows服务器上搭建apatch+tomcat+jk的集群搭建过程,其中也遇到了很多问题,总结一下. 一.准备工作 1.apache-tomcat-7.0.88 2.Apche http ...

  6. PHP基础 windows环境下安装Apache Mysql PHP

    本篇文章主要是讲一下我自己安装wamp环境的一些步骤和见解,前方多图预警,慎入!!!!! PHP运行环境  : Linux下的三种安装方式:源码包安装.rpm包安装.集成环境安装(lnmp) wind ...

  7. Windows环境下使用Apache+mod

    1.安装Python和Apache. 2.安装mod_wsgi后获得wsgi.so,并将wsgi.so放到Apache的modules文件夹下. 3.安装webpy. 4.打开httpd.conf(在 ...

  8. Windows环境下实现Jenkins自动化部署

    详见:https://blog.csdn.net/Try_harder_every_day/article/details/79170065 Jenkins自动化部署: 几条具体的思路:1.开发人员将 ...

  9. windows环境下Git的安装部署

    一.获取安装包 百度搜索“git”,或者访问git官网:https://git-scm.com/,在首页中点击“downloads”进入下载页面 点击“windows”,获取安装包 二.安装部署 双击 ...

随机推荐

  1. 处理new分配内存失败情况

    转自:http://www.51testing.com/html/70/n-827070.html 在C++语言中,我们经常会使用new给一个对象分配内存空间,而当内存不够会出现内存不足的情况.C++ ...

  2. C++之内部类(内部类就是外部类的友元类,单向友元。只是内部类比友元类多了一点权限)

    1. 内部类的概念 如果一个类定义在另一个类的内部,这个内部类就叫做内部类.注意此时这个内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去调用内部类.外部类对内部类没有任何优越的访问权限. ...

  3. Scikit-learn库中的数据预处理(一)

    数据标准化:当单个特征的样本取值相差甚大或明显不遵从高斯正态分布时,标准化表现的效果较差.实际操作中,经常忽略特征数据的分布形状,移除每个特征均值,划分离散特征的标准差,从而等级化,进而实现数据中心化 ...

  4. windows下写的脚本,在linux下执行失败

    Windows中的换行符为CRLF, 即正则表达式的rn(ASCII码为13和10), 而Unix(或Linux)换行符为LF, 即正则表达式的n. 在Windows和Linux下协同工作的时候, 往 ...

  5. Istio 1.1部署实践

    前提条件 正确安装配置Kubernetes集群 CentOS Linux release 7.5.1804 安装 下载istio 1.1版本 [root@vm157 ~]# wget https:// ...

  6. Maven远程中央仓库地址

    阿里云 - http://maven.aliyun.com/nexus/content/groups/public/ Apache Snapshots - https://repository.apa ...

  7. BZOJ 1845 Simpson积分

    思路: Simpson积分直接上  限制一下递归深度+精度就好了 (难以理解为什么这么多人写扫描线) //By SiriusRen #include <bits/stdc++.h> usi ...

  8. Elasticsearch之CURL命令的PUT和POST对比

    PUT是幂等方法,而POST并不是. PUT用于更新操作,POST用于新增操作比较合适. PUT,DELETE操作是幂等的,所谓幂等就是指不管进行多少次操作,结果都一样. 比如,我用PUT修改一篇文章 ...

  9. 3 工欲善其事必先利其器,C#开发环境准备

    1.       为什么选择C#作为入门的编程语言开始学习? Java和C#是比较主流的两大开发语言.(除了这两种还有什么比较流行的开发语言?)相对于Java,C#的入门要容易一些.学习java开发需 ...

  10. C#通过SqlConnection连接查询更新等操作Sqlserver数据库

    Sqlserver数据库连接方式有多种,这里只介绍最常用的通过SqlConnection和Sqlserver数据库用户名和密码验证来进行操作数据库. 数据库连接字符串: string connStri ...