Django Web 项目在Windows环境的部署
来源:http://www.tudoupe.com时间:2022-04-06
专辑的主要内容是害怕忘记还需要工作:先前的项目接口是公司长者在爪哇创建的。对接伊始,现场部署是其自身工作的主要责任。因此,在此之前,环境是爪哇语言的发展。自然,阿帕奇是用来部署Tomcat的。然而,鉴于工业的性质,客户已多次按客户要求更新其接口,但由于当时不了解爪哇编程语言,这是不可能的。他说,在熟悉商业逻辑和他自己对皮顿语种发展的理解之后:逐步模块化是通过使用Python编程语言来实现的:从网络服务的一开始就到基于整个后台行政能力模块的对讲台实施。突然发现,上一代以爪哇为主的界面功能只是整个后台框架中的一个小模块。于是我决定把所有的东西都撕掉 用我熟悉的语言 创建我自己的界面它不好像它是一样的 因为它是相同的 因为它是相反的方式。至少我可以自己决定 个性化的程度他们是唯一可以被彻底拒绝的人!这样做,第一,客户沟通更加简单明了;第二,真的有些东西,我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道 我不知道真的很难理解。至少你懂商业推理因此,建造了这个Django网络项目。项目完成后,将部署到自然环境。那怎样部署呢?Django网络警告说,不应使用运行服务器部署该项目。那么,如何实施?在线上有几处引用后的内容。方法万千,我注意到整个大脑有一天肿胀了做下整理,做个选择:
Linux环境部署模型:
Nginx + uWSGI是网络上最受欢迎的网站。
Nginx + Gunicorn + 主管是参考书。
Windows 环境的部署模式:
阿帕奇语加mod_wsgi语
IIS + CGI + 螺旋藻也是备选办法。
所有的对子都怎么了?
首先,Django获得了WSGI协议,允许它用其他WSGI集装箱运行。
首先考虑这些配对的实用性:
uWSGI是一个执行WSGI协议的网络服务器,Uwsgi和http;Gunnicor是UNIX下的WSGI HTTP服务器,因此两者都可能支持Django项目。
再看限制条件:
UWSGI提供的视窗支持不足。需要改好多东西,通过运行老虎, uWSGI 可以在 Windows 上成功安装 。近年来,许多人得以进入Linux环境,他们以前不敢进入该国。不支持 Windows 。因此,产生了上述Linux环境部署的两个变体。
Nginx也是一个网络服务器,人们认识到他们有能力使用两种组合进行优异的静态资源处理和负载平衡。
另一方面,监督员是一个程序控制程序,能够简单监测和管理进程,例如 " 独角兽 " 进程,它可以在大多数UNIX类别中运行,但在任何Windows系统中都不能运行。
也看看Windows的部署情况Appache (Apache HTTP 服务器) 是一个众所周知的网络服务器 。它使用mod_wsgi 扩展模块。它遵守Python WSGI标准。可以支持符合 Python WSGI 标准的任何 Python 程序 。这样你就能继续决哥计划了!和IIS,这是微软Windows的网络服务器的一部分,和HTTP合作是正常的类似apache -- wfastcgi
因为客户最后的操作系统是Windows服务器2008 是时候做决定了因此,在两种形式的Windows部署中,或者,你是否使用使用使用范围更广的apache +mod_wsgi,而它只需要用一个来去除节点?就Linux的部署而言以前,我建立了一个后台管理系统。它还与Django一起建造。Nginx + uWSGI + Centos 此前已在中国的云层中成功实施。但现在基本又忘了,在撰写文件时, 留待重新部署的剩余部分使用!
记录正题!!
环境介绍:
Windows Server 2008 R2 标准SP1 64比特
Apache 2.4+mod_wsgi是工具。
语言:python
框架:Django
数据库:Mysql
使用的软件和版本号如下:
1. Python -------------------> python-3.7.2-amd64.exe
2. Apache2.4 --------------> httpd-2.4.46-win64-VS16.zip
3. mod_wsgi ---------------> mod_wsgi-4.9.0-cp37-cp37m-win_amd64.whl
4. Mysql ---------------------> mysql-installer-community-5.7.21.0.msi
5. Django -------------------> 安装完 python 后 执行 pip install 项目包 完成项目环境依赖安装,版本为 3.2.12
可在各软件网络上找到下载内容,使今后的升级更加容易:
Apache下载: https://ww.un.org/I'm sorry, apachehaus.com/cgi-bin/download.
对不起,Uci.edu/gohlke/pythonlibs/#mod_wsgi。 对不起,Ifd.Ifd.对不起,uc.edu/gohlke/pythonlibs/#mod_wsgi。
部署前准备:
1、下载相关软件
2. 在典型的当地业务之后,确定拟包装的项目。
本节介绍项目文件如何发送到部署服务器。基特方法就是其中之一。推到你自己的GitHub账户部署服务器随后将从GitHub调出;一个将使用Pycharm的部署工具直接上传到部署服务器;这两个服务器都需要部署服务器连接到因特网,两个服务器都能够连接到因特网。第一种留待测试,再做记录,第二是在中国云上安装后台管理系统。重新部署也将记录在案。由于客户对在这种情况下将要部署的服务器设置的限制,我们无法连接互联网。因此,前两种选择无效。然后将使用第三部分,即项目包装。
项目打包流程:
1 在工程文件的顶部创建设置. py 文件( 不是用管理. Py 同侪目录) 。里面的 install_requires 参数直接通过 pip freeze > requirements.txt 取得并填入,因此,您可以在部署环境中与管道安装项目包一起安装整个项目要求。
2 CLI 输入设置。 Python 设置. py sdist 此方法在软件包文件已包装和包装的同一目录中生成一个磁盘文件夹。 我不确定您在说什么, tar. Gz end 。
如果执行下列命令: python 设置。 Py bdist_ 轮, 可能会报告以下错误 :
运行时安装 :
设置。 Py 将被用于执行。 它将在端点目录中创建两个目录 。一个dist,它就在里面 我不知道你在说什么 但我不确定你在说什么 但我不确定你在说什么 但我不确定你在说什么构建者文件夹 。包件 (包件 (“ 模块”) ) 包含一个或一个以上的 Python 代码文件, 从工程包件中包装, 位于 lib 目录 下 。一个包通过import foo.bar或from foo import bar在窗体中导入,以及目录(例如,polls它必须包含一个具体的档案,才能被视为一揽子文件。__init__.py即使这个文件无效
)
3. 将项目包和相关软件传送到部署服务器(我正在使用一台可直接传输部署文件的虚拟机器尝试这样做)
最后,制作了虚拟机器的快照:系统已经建立,文件传送成功。
开始部署:
1. 桌面辅助软件安装:浏览器、注纸++、压缩软件、输入方法等等。
2. Python应谨慎安装,以便包括环境变量。
无法关闭临时文件夹:%s。
3. 设置 Mysql
第1次,安装.Net框架4.5.2,以启动 Mysql 安装。
2 使用微软视觉 C++2013操作库_023 195421安装 Mysql,然后根据系统数字安装匹配操作库:
3 启动 MySQL 安装 :
如果要在这里完全安装 " 全 " 号,还需要其他附属项目,《手册》项目必须手动安装:
只有服务器:
默认选项后,使用下拉菜单选择服务器类型。
创建数据库密码 :
安装结果将在连续默认后评价,直到安装完成:
必须手动插入 Mysql 环境变量 : 在所有程序中必须找到新安装的 Mysql 选项, 文件夹目录必须位于安装位置, 下一个 Mysql 执行文件的路径必须添加到环境变量路径中 。
值得注意的是,英文分号(;)已经插入。
在视图中添加下列完成环境变量:
成功登录, 检查数据库信息, 并执行 :
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
第一个是项目数据库访问,第二个是当地远程访问虚拟机器数据库。
这样可以方便地启动数据库:建立所需的数据库:
创建名为“ utf8” 的“ 名称特性” 数据库;
也可以使用主机上的导航建立远程连接到虚拟服务器2008数据库。若出现连接不上,您想知道虚拟机器防火墙是否关闭吗?将主机 IP 链接到虚拟 IP 等 。
主机是可见的, 但与虚拟网络没有连接, 您正在看到虚拟防火墙的状态 :
防火墙启动,关掉
现在,让我们连接到数据库:
4. 阿帕奇人安装:
1 创建了一个部署目录,名为 C:djangoWebroot, 将 Apache 软件包压缩到 Apache24, 并复制到部署目录C:djangoWebroot。
2 Apache 设置和修改 httpd.int 经常访问conf.conf 中的欢迎界面, 在 notepad++ 中编辑 httpd.com.conf, 并将路径更改为 apache root 目录 :
修改端口号:
更改主机和端口号以收听 :
除此以外,保存修改并迅速登记为系统中的一项服务:
CLI 输入 apache bin 目录: httpd- k 安装- n "pache2". four。
检查和激活速度, 前往计算机服务。
无法关闭临时文件夹:%s。
阿帕奇最初的安装是成功的!
5. Mod_wsgi安装
1 配置 pip 安装源: 在用户主目录内创建一个 pip 目录, 生成一个 Pip. Ini 文件, 在国内使用 Qinghua 源 :
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
2 校验 pip 版本并更新到最新版本 :
pip 显示 pip 或 pip- V 视图
pip 安装升级 pip python- m pip 安装升级 pip
CLI 导航到目录中的mod_wsgi安装软件包,其中:
pip install mod_wsgi-4.9.0-cp37-cp37m-win_amd64.whl
4 Apache mod_wsgi 模块介绍:
查看mod_wsgi 安装配置信息: mod_wsgi- 表达式模式配置, 将回信复制到 httpd.com/ gwsgwsg_wsgi- 表达式模式- config. conf: mod_wsgi- 表达式模式配置, 将回信复制到 httpd. com/ gwsgwsgsg_wsgi- 表达式模式- config. html. conf: mod_wsgi- 表达式模式
仅此而已,仅此而已,仅此而已
6. 解除项目压缩包的压缩,并将其置于部署路径上。取消压缩后将工程文件移动到部署目录( c:/djangoWebRoot) 。应删除未压缩的目录 。这个地方不能运作,Wheel压缩机包将它留给后续核查和不留给它有什么区别?塔和移动: 处方- 普什- 系统- 0. 1
在 httpd.com.conf 中设置以下项目:
8. 在安装项目内,存在一种环境依赖性:pip Instal项目压缩包。
pip install PrescriptionPushSystem-0.1.tar.gz
9. 重新启动apache 服务,然后转到以下URL进行初步验证测试:
需要静态再生动访问, 因为在我的项目中静态资源是在项目根目录中的状态文件夹中, 所以设置。 Py 具体如下:
Py和httpd.Settings in conf 与静态资源有关
这是对接配置,三个Py的选项和州有关
STATIC_URL:STATIC_URL,在查看静态资源时,它被视为提供通往地址的路径的简单技术。首先用户访问页面,页面加载静态资源,也是一种URL访问, 开始HTTP或HTPS查询。您可以在 URL 中看到正确的地址路径 。因此,您必须在代码中提供正确的路径。如果您使用硬编码( 用于将绝对整条路径输入页面代码),最糟糕的一面是,它很难跟上!考虑已改变位置的图像或静态资源 。页面代码中有一个位置可以定位引用,另一个位置可以更新。不得疯了!它是建立在STATIC_URL之上的。Django使用一个模板标签:在模板顶部装入标签:%load status%,等等。在页面中,静态资源存取日志可能看起来是这样的:%static“resources”%,例如,/静态/cs/背景/样式/ css,可表述为:静态“css/背景/样式.cs”%,允许在公共状态下使用项目中的所有静态资源。
STATICFILES_DIRS: 这是用来描述静态资源位置的目录 。注意它是个列表,它指示Django首先在STATICFILES_DIRS目录中查找静态文件,然后在每个应用程序的静态文件夹中查找静态文件。STATICFILES_DIRS 目录包含我项目中的所有静态资源 。
STATIC_ROOT: 这是部署后配置所使用的静态资源路径 。当贾尼戈在一种生产环境中被使用的时候,其静态文件存取界面没有得到Django框架的支持。为了提供一个静态存取条目,必须在Django框架前端部署金字塔或其他网络服务器。这是后缀 STATIC_ROOT的目录
总结一下:首先,Django提供了静态资源。这个应用程序可以加上“django. 对不起,判官,资格”来限定。在发展环境中(DEBUG=True),App揭示了静态资源的服务功能。STATIC_URL在决哥有一个模板配置 。返回到模板, 浏览到STATICFILES_ DIRS, 并找到合适的静态资源 。当到生产环境,STATICFILES_DIRS 标记为“ 停止活动 ” 。是时候让STATIC -ROOT登台唱歌了!Django 包括校正静态命令(平方管理) 。 Py 收集静态在指定的目录STATIC_ROOT中收集所有静态资源 。请求 Nginx 或其他网络服务器
因此,必须确定STATIC-ROOT和DEBUG=False:


你不用担心拼写和复制更改, 特别是因为你是字符串而不是列表, 如果你错了, 你做收集指令是错误的!
执行静态收集命令:
将在项目根目录中新建一个收藏文件夹 。

更改对齐静态设置并重新启动 Apache 校验 :

这似乎不起作用。到底发生了什么?审查静态资源分配的速度:
因此,上一个设置和上一个目录不正确。

将后退路线更改为集合后保存 :

重新启动 Apache 并检查 :

Yoo-hoo! 设置 。 在 Python, ALOWED_HOSTS = ['*'] 创建这样的设置, 并使用主机浏览器访问它 :

效果一样,尝试登录

服务器 500, DBUG 关闭, 所以我们返回到 500。 我们需要查看日志, 找出为什么数据库没有被设置 。
11. 数据库启动业务

为了建立一个会议桌,我们必须进行数据库迁移。初始化数据库有几种方法。以你有能力的方式建立你所需要的数据表是可以接受的!当然,必须开始一个全新的生产环境!当我的项目在原始生产环境中实施时这跟升级差不多因此,没有必要编制数据表。剩下的只是确定会议桌。

OK! 部署完成 完成 。
现在还有时间调查其他装置和文件异常情况,
相关新闻
- 2022-08-04 WPF的由来
- 2022-08-04 Win11勒索软件防护怎么打开?Win11安
- 2022-08-04 Windows系统jdk的配置
- 2022-08-04 Windows10 OneNote怎么重新登录?如何重
- 2022-08-04 超好用的 Windows 效率工具推荐
- 2022-08-04 Windows如何在CMD或PowerShell中配置代理
- 2022-08-04 powershell和cmd对比
- 2022-08-04 【QT】Windows下QT下载安装
- 2022-08-04 windows下 C++ 实现类属性的get和set方
- 2022-08-04 Win11快速助手在哪里?Win11打开快速
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
