Apache+mod_wsgi本地部署Django(windows系统)

django在windows下的部署(Apache+mod_wsgi) 之前一直在本地跑django项目,最近尝试在服务器上部署项目,目前已经成功部署,也花了好多时间,这里跟大家交流一下,希望对像我一样的新手有帮助。一、配置环境:1.Python版本3.62.服务器平台:windows server 20163.django版本2.0.7二.Apache下载1.进入Apache官网,http://httpd.apache.org/下载对应版本,依次按照下面图片找到版本... 阅读详情

原文链接:http://www.nicemxp.com/articles/7

本地Apache+mod_wsgi部署Django

搭建博客网站,开始用Django内置的manage.py runserver 0.0.0.0:8080来本地搭建,本地数据库,逻辑和模板都写好并跑通后上网查找接下来需要将自己的程序托管
到Apache,Apache的组件中mod_wsgi对python的支持最好,所以本着跟随主流,决定用Apache+mod_wsgi部署自己的网站。其中遇到了很多坑,折磨的很痛苦。

一、安装Apache
有2.2x和2.4x两种版本,自己下的2.4x,但是官网上没有windows的release版,因此只能从目前网络中获取release版,或者自己编译一个release版,但是就像
官网说的一样,将Apache编译到windows真的是一件棘手的事情。编译教程:http://man.chinaunix.net/newsoft/ApacheManual/platform/win_compiling.html。
release版本下载:,VC10(vs2012编译),VC14(vs2015编译),VC9(vs2008编译):http://www.apachehaus.com/cgi-bin/download.plx,
VC14:https://www.apachelounge.com/download/。上网查找都说这个需要跟操作系统有关,win64位下载x64的,win32的下载x86的。并且与python版本有关,
一般python2.7下载VC9,python3.x下载VC10, 因此我下载了httpd-2.4.25-x64-r1.zip(VC9)(因此埋下了巨坑!)
下载好后解压到了与项目目录的同级目录,我的项目目录是D:/WebSite/blog, 所以解压后Apache在D:\WebSite\Apache24,之后修改conf/httpd.conf文件,
如下:

 

	...
	Define SRVROOT "D:/WebSite/Apache24"	#其实这里改好后凡是引用该变量的地方不需要再更换了,但是自己还是按照网上说的都给换了。
	ServerRoot "D:/WebSite/Apache24"
	...
	Listen 127.0.0.1:8089    #修改端口号,但是你监听的端口号很有可能被其他进程占用了,所以在监听时你应该确保该端口号没有被占用!
	...
	ServerName localhost:8089 	#这里2.4是打开的,2.2注释掉了,需要你打开否则Apache start时会失败。
	...
	DocumentRoot "D:/WebSite/Apache24/htdocs"
	<Directory "D:/WebSite/Apache24/htdocs">
	...
	ScriptAlias /cgi-bin/ "D:/WebSite/Apache24/cgi-bin/"
	...
	<Directory "D:/WebSite/Apache24/cgi-bin">
		AllowOverride None
		Options None
		Require all granted
	</Directory>
	......
	Define SRVROOT "D:/WebSite/Apache24"	#其实这里改好后凡是引用该变量的地方不需要再更换了,但是自己还是按照网上说的都给换了。
	ServerRoot "D:/WebSite/Apache24"
	...
	Listen 127.0.0.1:8089    #修改端口号,但是你监听的端口号很有可能被其他进程占用了,所以在监听时你应该确保该端口号没有被占用!
	...
	ServerName localhost:8089 	#这里2.4是打开的,2.2注释掉了,需要你打开否则Apache start时会失败。
	...
	DocumentRoot "D:/WebSite/Apache24/htdocs"
	<Directory "D:/WebSite/Apache24/htdocs">
	...
	ScriptAlias /cgi-bin/ "D:/WebSite/Apache24/cgi-bin/"
	...
	<Directory "D:/WebSite/Apache24/cgi-bin">
		AllowOverride None
		Options None
		Require all granted
	</Directory>
	...

以上这些就是启动Apache的基本修改,主要是端口号和路径,下面准备启动Apache
cmd下进入到D:/WebSite/Apache24/bin
输入:httpd.exe -k install#安装Apache服务,如果报错根据错误提示找原因(我没报错。。)
安装后输入:httpd.exe -k start#这个地方比较容易失败,主要的原因就是上面的配置有问题。
启动成功后在自己的浏览器中输入http://127.0.0.1:8089(我监听的是8089),如果提示it works或者Apache haus的页面表示成功了。

至此Apache的安装就OK了。

二、安装mod_wsgi
安装这个东西折磨了自己两天,茶不思饭不想。。
网上各种教程各种博客文章都说该模块下载地址是http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi,这里面有适合的mod_wsgi.so,下载后扔到Apache的
modules下就好了,然后我进去找到适合我的版本,我本地配置是Apache2.4(vc9,x64), Python2.7,windows64位系统,所以我下载了
mod_wsgi-4.5.15+ap24vc9-cp27-cp27m-win_amd64.whl,如果你的Python安装了wheel可以用wheel解压 wheel umpack xxx.whl,其实直接把whl换成zip用winrar也可以。。
解压后我几乎翻遍了整个文件夹,mod_wsgi.so呢?好吧,可能以前的老版本该网址是收存mod_wsgi.so的,总之在这里没找到。。
之后就一路苦逼的找mod_wsgi.so,找到了几个下载地址。https://github.com/GrahamDumpleton/mod_wsgi/releases/download/4.4.12/mod_wsgi-windows-4.4.12.tar.gz
貌似只有4.4.12有现成的二进制拓展库,其他的需要自己编。youkuaiyun.com:http://www.youkuaiyun.com/tag/mod_wsgi/download 有下载地址,其中http://download.youkuaiyun.com/detail/smartcore/9153731
是可以用的,其他的没有测试。
有了mod_wsgi.so就按照教程继续配置httpd.conf文件,
如下:

	...
	LoadModule wsgi_module modules/mod_wsgi.so
	#项目的wsgi.py配置文件路径
	WSGIScriptAlias / D:/WebSite/blog/blog/wsgi.py


	#项目路径
	WSGIPythonPath D:/WebSite/blog


	<Directory D:/WebSite/blog/blog>
	<Files wsgi.py>
		Require all granted
	</Files>
	</Directory>
	......
	LoadModule wsgi_module modules/mod_wsgi.so
	#项目的wsgi.py配置文件路径
	WSGIScriptAlias / D:/WebSite/blog/blog/wsgi.py


	#项目路径
	WSGIPythonPath D:/WebSite/blog


	<Directory D:/WebSite/blog/blog>
	<Files wsgi.py>
		Require all granted
	</Files>
	</Directory>
	...

以上是加入好mod_wsgi.so后的修改,之后噩梦就开始了。。
cmd进入到D:/WebSite/Apache24/bin下输入httpd.exe -k start
提示cannot load modules/mod_wsgi.so into server,\xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\a8\xb5\xc4\xa3\xbf\xe9\xa1\xa3。
然后就蒙了,以为我找的mod_wsgi.so是不对的?然后自己换了各种地址下的mod_wsgi.so,最后都报这个错误。后续就是苦逼的各种看文档各种尝试各种找资料,自己
编译mod_wsgi.so,尝试换成Apache2.2,最后都没用。报的错误原因还是16进制数字,用python直接print这一串16进制数字,输出:无法找到指定模块,有了错误原因就
继续上网搜,在一个网站上有这么一个回答:
1.那你没有隐藏的扩展,并已两次增加了扩展。
2.那mod_wsgi.so文件可读到任何Apache服务用户??。
3.那你的Apache是??32位。
4.那你的Python是32位。
5.已安装你的Py??thon为所有用户,而不仅仅是用户安装它作为。
自己逐一对照了之后想到这里说的是你的Python是32位,而不是操作系统是32位,可是网上的教程要么只说64位下x64要么说windows64位下x64,没有说python是32位还是
64位,我自己也没注意自己的python是64位还是32位,进入cmd下Python回车看到:python 2.7.10(default, may 23 2015,09:40:32)[MSC v.1500 32 bit(intel)] on win32,
一看自己的Python装的是32位的,我的操作系统是64位的,好吧,重新下载了一个Apache2.4(VC9,x86),按照上面重新配置,最后httpd.exe -k start,启动成功!
所以坑就在了这里,没人强调你的python是32还是64,一般都强调了你的Python,你的Apache,你的mod_wsgi.so最好编译环境要统一,否则很可能起不来。

三、最后
启动了之后再浏览器上键入http:127.0.0.1:8089可以看到了自己的网页,但是没有css元素,因为之前静态文件是Django来处理的,现在托管了Apache,静态文件需要
Apache来处理,在httpd.conf下配置:

	...
	Alias /static/ D:/WebSite/blog/static/

	<Directory D:/WebSite/blog/static/>
	Require all granted
	</Directory>
	......
	Alias /static/ D:/WebSite/blog/static/

	<Directory D:/WebSite/blog/static/>
	Require all granted
	</Directory>
	...

Django有收集静态文件的方式,我将所有setting.py安装的app所需的静态文件都收集到了D:/WebSite/blog/static/下,如何收集看官方文档。
之后就可以看到带有css,图片,js的网站了。

Windows+apache+mod_wsgi部署Django项目 Windows+apache+mod_wsgi部署Django项目配置环境Apache下载与配置创建Apache服务配置Django 在上一篇《Window服务器部署Django:服务器准备》后,尝试了windows+apache+mod_wsgi方式将Django项目部署,不需执行python manage.py runserver,实现真正的部署。 配置环境 windows10服务器 python版本3.8 Django版本3.0 Apache下载与配置 apache 官网下载地址: https://w 阅读详情

相关推荐

Django用Apache和mod_wsgi部署

背景 最近写了一个Django在windows上运行,但是用的vbs命令,导致在后台运行的时候,必须用户登录才可以运行,还有就是登录之后,有其他进程可能被干掉。 Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c D:\xxd\run.bat",vbhide ` bat 内容 C:\Python37\python3.exe manage....

叉叉敌的博客 1843

Apache+mod_wsgi实现Windows本地部署Flask

Windows下部署flask

qq_64865183的博客 4044

在window上部署python Django项目 采用apache+mod_wsgi方案

在window上,通过Apache部署python Django项目

BibuYing的博客 5205

wsgi和mod_wsgi

wsgi和mod_wsgi

LCY133的博客 1388

Windows Server 2012 R2利用Apache、mod_wsgi部署Python中的django项目

一、配置环境 服务器系统:Windows Server 2012 R2 Python:Python 3.7.2 django: 2.1.7 Apache: mod_wsgi:mod_wsgi‑4.6.5+ap24vc15‑cp37‑cp37m‑win_amd64.whl 二、软件安装 1. 安装Python 参考文章:安装Python 2. 安装django ...

渣渣的夏天 2383

使用Windows 10部署Apache和Django

在本文中,我们将探讨如何在Windows 10操作系统上部署Apache和Django。Apache是一个流行的开源Web服务器,而Django是一个强大的Python Web框架。通过将它们结合起来,您可以构建功能强大的Web应用程序并将其部署到Windows平台上。

CqcVue的博客 341

python使用Apache+mod_wsgi部署Flask

部署flask项目

Button的博客 3433

mod_wsgi-4.7.1适用于Apache24和Python38

mod_wsgi-4.7.1-cp38-cp38-win_amd64.whl 详见: 《Apache24 + wsgi + Flask on Python3.8部署实践 》 https://blog.youkuaiyun.com/fm0517/article/details/114090609

Python3.8-Django-Apache2.4-mod_wsgi-mysql-服务器生产环境配置

折腾了一整天,终于搞定在windows上如何布置Django,从结果来看,Django确实还是比较小众,使用它的还是比较少,很多资料比较缺少,作者这么弄,也是使用python比较多,所以坚持弄出来,方便以后再次参考,没有使用phpstudy内置Apache的原因是它主要用于php,有相关配置关联php,所以这里就不弄了。

插件开发 2829

mod-wsgi-5.0.2-cp312-cp312-win-amd64.whl

基于mod_wsgi-5.0.2,在python3.12版本编写的windos环境下运行安装的whl文件

Apache安装包与mod_wsgi库

在windows下使用apache+mod_wsgi部署django项目

在Windows下使用Python3、Django和Apache部署网站

提供一种Windows下的Django部署方案。使用Python3,给出了所需资源的下载地址

Notes 5598

mod_wsgi-4.5.24+ap24vc9-cp27-cp27m-win32.whl.rar

python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

Windows下搭建apache+mod-wsgi+python django环境【全过程】

1. 教程目录 Python安装 Apache安装 Mod_wsgi安装 将Django项目部署到Apache服务器 2. 准备工作 环境说明:Windows 10 + Python 3.6.5 + Apache 24 下载Python安装包:https://www.python.org/downloads/ 下载Apache安装包:http://httpd.apache.org/down...

单飞的专栏 8197

mod_wsgi-4.6.5+ap24vc10-cp34-cp34m-win32.whl.rar

python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

高通QCS2290 SecureBoot全流程实战:从密钥生成到NON-HLOS.bin生成

本文详细拆解了高通QCS2290平台SecureBoot安全启动技术的端到端实战流程。从开发环境搭建、RSA密钥对生成与证书链构建,到关键XML配置文件修改、固件编译与数字签名,最终完成NON-HLOS.bin集成打包,为嵌入式开发者提供了一份清晰、可操作的安全启动部署指南。

weixin_28273593的博客 299

部署Django在Windows server 2008r2 采用apache+mod_wsgi方案

部署Django在Windows server 2008r2Run Django with Apache + mod_wsgi on Windows server 2008r2最近学习了Django,语法学的差不多了.最后想搭建一个服务器以访问网站. 网上看了很多方案,但是有很多方案都不适合在windows在部署,或者就是Python版本太老 nginx + uwsgi (其中uwsgi不兼容w

Jerry’s Blog 8871

AB脉冲详解(编码器,PLC,上位机)

编码器线有些是用不到的。Z脉冲:360度中,只有1度是输出,输出能力是。编码器实际就是发光二极管,所以电流超过20ma会缩短寿命或损坏。

cfqq1989的博客 1万+

超详细Windows环境下使用Apache部署Django项目教程

目录超详细Windows环境下使用Apache部署Django项目教程1.什么是Apache2.安装并配置Apache2.1 下载Apache2.2 解压Apache到文件夹2.3 配置conf文件3.安装mod_wsgi3.1 什么是mod_wsgi3.2 下载mod_wsgi3.3 安装mod_wsgi4.配置Django项目信息4.1 迁移Django项目4.2 在.conf文件中配置Django项目信息4.3 配置Django项目中的settings文件5.注册Apache服务并启动项目6.遇到的一

weixin_45182409的博客 1万+

从FrSky到TBS:深度解析航模2.4G遥控协议江湖史(附ELRS高频头改装指南)

本文深度解析了航模2.4G遥控协议的技术演进史,从FrSky ACCST的兴衰到TBS Crossfire的崛起,再到开源协议ExpressLRS的革命性突破。文章不仅对比了各协议在延迟、距离与抗干扰能力上的技术内核,还提供了为多协议遥控器加装TBS Crossfire高频头的实战改装指南,帮助玩家打通协议壁垒,提升飞行体验。

weixin_29193259的博客 737

DDD系列 - 第12讲 如何在DDD中实现Query服务(轻量化CQRS)

轻量化CQRS、整合Repository和DAO的优势。

罗小爬的技术宝书 266

Win10部署Django项目(Apache+mod_wsgi)

环境说明: 操作系统:win10 python版本: python3.7 django版本: django2.1.7 数据库:mysql8.0.15 Apache版本:2.4.39 mod_wsgi版本:4.5.24 1. 安装Apache 1.1 下载 进入下载页面https://www.apachehaus.com/cgi-bin/download.plx,选择相应的版本下载。 1.2 ...

loveangel1的博客 2985

安卓App开发 篇三:Android SDK和API

Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法、减少模板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。hl=zh-cnhl=zh-cnWorkManager 是 Android Jetpack 的一部分,是用于持久性工作的推荐解决方案,适用于需要通过应用重启和系统重新启动来调度的工作,也是后台处理操作的主要推荐 API。立即执行:必须立即开始且很快完成的任务,可以加急,使用和Worker,通过对调用处理加急工作。

生活在别处 1286
上一篇: Django本地配置mysql(windows系统)
下一篇: 阿里云ECS(win server2008)部署Django
nicemxp
博客等级 码龄10年 32粉丝 30原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值