MrDoc安装手册
简易运行
部署指南
Docker 部署 MrDoc
MrDoc 运行环境 Docker 镜像
jonnyan404 MrDoc Docker 镜像
Linux 部署 MrDoc
使用 Nginx + uWSGI 部署 MrDoc
一键部署脚本
宝塔面板「Python 项目管理器1.9」部署
Windows 部署 MrDoc
使用 IIS 部署 MrDoc
使用 Apache 部署 MrDoc
Windows 部署面板
更新升级说明
配置指南
配置文件说明
自定义数据库配置
文集生成 PDF 文件的配置
全文搜索配置
centos 7 下升级自带 sqlite3
配置站点语言
Docker 下使用 MySQL 数据库
MySQL 数据库下支持 emoji 表情的配置
常见问题
提示SQLite3版本错误怎么办?
管理员忘记密码怎么办?
如何进行站点数据备份?
开源版数据导出与导入
专业版数据导出与导入
报错:SyntaxError: invalid sysntax
MySQLdb._exceptions.OperationalError: (1366, "Incorrect string value:)
宝塔面板「Python项目管理器」虚拟环境使用问题
如何对站点数据进行备份?
开源版>专业版数据迁移步骤
开源版与专业版功能对比
打赏赞助记录
支持项目发展
本文档使用「觅思文档专业版」发布
-
+
首页
使用 Apache 部署 MrDoc
> 教程首发于:「州的先生」公众号,ID:zmister2016 关注「州的先生」公众号,及时获取觅道文档更新信息 基于 Python 开发的 Web 应用(Django、Flask、Tornado 等)基本上都是部署在 Linux 服务器上的。鉴于 Linux 上部署 Python 应用的便利性,这是大多数项目推荐的部署方式,也是大多数人的选择。 但是在一些场景下,我们需要将应用部署在 Windows 主机或服务器上,比如公司内部的应用、个人使用的应用。 通过虚拟机安装一个 Linux 系统,再对应用进行基于 Linux 的部署是一个方式,但是对计算机资源的占用并不太友好。 通过 docker 方式进行安装?在 Windows 上安装 docker 本身就不是一件简单的事儿。 通过 WSL 在 Linux 子系统中进行应用部署,确实是一个好的方法,但是受限于 Windows 系统的版本,只能在 Win10 中进行操作,这里暂且不表。 下面,我们通过觅道文档 MrDoc 在 Windows Server 2012 R2 下的部署实例,介绍使用 Apache 在Windows 系统中部署 Python Web 应用。 根据 Django 官网的介绍: > 利用 Apache 和 mod_wsgi 在生产环境部署已经过充分测试。……Django 支持所有支持 mod_wsgi 的 Apache 版本。 ## 下载和允许 MrDoc 首先,我们通过 git 命令下载 MrDoc 项目的源码到 D 盘: ``` git clone https://gitee.com/zmister/MrDoc.git ```  然后安装依赖库: ``` pip install -r requirements.txt ```  接着执行 MrDoc 的初始化命令,对数据库、管理员用户登进行初始化创建: ``` python manage.py makemigrations python manage.py migrate python manage.py createsuperuser ```  最后,我们运行测试服务器: ``` python manage.py runserver 0.0.0.0:80 ```  这样,就可以在浏览器中访问到运行的 MrDoc 了。 ## 下载和安装 Apache 经过测试服务器运行成功之后,我们来准备使用 Apache 部署运行 MrDoc。 首先到网站:https://www.apachelounge.com/download/ 下载对应操作系统的 Apache:  因为演示服务器操作系统是 64 位的,所以这里下载的是`Apache 2.4.48 Win32` 解压后得到`Apache24`文件夹,将其复制或移动到 C 盘,最终 Apache 的路径为`C://Apache24`。 我们先对 Apache 做一些基础性的配置,使我们访问服务器IP地址的时候,能够确定 Apache 是启动的。 打开`C://Apache24/conf/httpd.conf`文件。 在 37 行附近,确定`ServerRoot`的值为 Apache 的路径: ``` Define SRVROOT "c:/Apache24" ServerRoot "${SRVROOT}" ``` 在 60 行附近,设置`Listen`的值为应用运行的端口,在这里,我们直接设置为 80 端口: ``` Listen 80 ``` 在 227 行附近,设置`ServerName`的值为你需要的域名或IP地址,在这里,我们直接设置为服务器的 IP 地址: ``` ServerName 139.159.152.121:80 ``` 然后在 `C://Apache24//bin`目录打开命令行窗口,输入如下命令,将 Apache 安装为系统服务: ``` httpd -k install ``` 如果命令执行成功,那么在 Windows 的服务管理中,就可以看到 Apache 的服务:  这时候,如果我们继续在浏览器访问服务器的 IP 地址,那么可以看到 Apache 运行成功的默认页面:  这说明我们的 Apache 服务已经安装并启动了。 ## 下载和安装mod_wsgi模块 mod_wsgi 是一个 Apache 模块,它可以管理任何 Python WSGI 应用,我们需要安装这个模块用来实现 Apache 与 Python WSGI 应用的连接。 我们可以直接使用`pip`命令进行下载: ``` pip install mod_wsgi==4.7.1 ``` >d mod_wsgi 4.8版本在它的 GitHub 仓库上有很多关于异常报错导致 Apache 服务无法启动的 issues,所以保险起见,我们安装 mod_wsgi 4.7.1 版本  如果在安装中提示需要 C++ 2015,那么一个解决方案是通过 microsoft visual c++ build tools 工具进行安装,另一个方式则是通过下载第三方提供了编译好的 whl 文件进行安装 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi 根据计算机的 Python 版本下载合适的 whl 文件。  然后使用 pip 命令进行安装。 安装成功后,我们可以在 Python 安装目录的 Scripts 文件夹内看到一个名为 mod_wsgi-express.exe 的文件:  我们在这里目录下打开命令行窗口,执行如下命令: ``` mod_wsgi-express module-config ``` 会输出三行类似于下面这样的文本,我们将其复制出来备用:  ``` LoadFile "c:/users/administrator/appdata/local/programs/python/python37/python37.dll" LoadModule wsgi_module "c:/users/administrator/appdata/local/programs/python/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd" WSGIPythonHome "c:/users/administrator/appdata/local/programs/python/python37" ``` ## 配置模块 接着,咱们继续打开 Apache 的配置文件 httpd.conf,在文件末添加一些内容。 首先,把执行`mod_wsgi-express module-config`命令输出得到的文本添加到 httpd.conf 中: ``` LoadFile "c:/users/administrator/appdata/local/programs/python/python37/python37.dll" LoadModule wsgi_module "c:/users/administrator/appdata/local/programs/python/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd" WSGIPythonHome "c:/users/administrator/appdata/local/programs/python/python37" ``` 然后,指定应用的 wsgi 配置文件路径: ``` WSGIScriptAlias / c:/MrDoc/MrDoc/wsgi.py ``` 接着,指定项目的路径: ``` WSGIPythonPath c:/MrDoc ``` 接下来,确保 Apache 能够访问到 wsgi.py 文件: ``` <Directory c:/MrDoc/MrDoc> <Files wsgi.py> Require all granted </Files> </Directory> ``` 继续指定静态文件的目录和媒体文件的路径: ``` Alias /media/ c:/MrDoc/media/ Alias /static/ c:/MrDoc/static/ <Directory c:/MrDoc/static> Require all granted </Directory> <Directory c:/MrDoc/media> Require all granted </Directory> ``` 添加完成之后,保存文件。再重启一下 Apache 服务。 回到浏览器,访问服务器的 IP 地址,可以发现,MrDoc 已经成功运行了。 这样,我们就通过 Apache 实现了在 Windows 上部署 Python Web 应用(Django)。 是不是并不太难?赶紧试试吧!
州的先生
Jan. 15, 2022, 1:52 p.m.
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码