最近在学习使用Django做网站,不得不说,Django + Bootstrap 进行简单的网站制作、搭建还是非常的方便快捷的,熟练了以后,分分钟做一个网站出来简直不是梦。本来,我是直接用python manage.py runserver 0.0.0.0:80 直接在服务器上进行部署的,但是,后来我发现一个问题,当我把django项目setting.py 里面的debug改为False的时候,网站的静态文件就无法进行加载了,也就是说所有的图片之类的都无法正常显示,要想解决这个问题,有两个解决方法,第一,就是将debug改回为True(这里需要提醒,不建议直接用django自带的python manage.py runserver命令进行部署,因为,安全性并没有保证,别人可能因为debug = True这个选项, 获得更多的关于你服务器的信息);第二,就是使用其他的程序进行部署了,这里推荐两个部署方式,一个是linux端的 nginx + uwsgi 进行部署(该部署方式请参考这个博客:django2.0+uwsgi+nginx部署),另外一个就是使用apache + mod_wsgi在Windows上进行部署啦!
django在windows下的部署(Apache+mod_wsgi)(你可以先参考这篇文章,我的部署很大一部分是基于这一篇文章完成的,如果你跟着这篇文章部署,还是出现了一些问题,那么,就可以接着看下去了)
需要准备的工具以及环境:
1 、Apache2.4
2、mod_wsgi(版本要根据你的apache以及python版本而定)
3、python 3.6.5
4、django 2.0以上
首先,我们来安装apache 2.4(https://www.apachehaus.com/cgi-bin/download.plx)
下载六十四位的,然后点击红色小框进行下载,下载完成以后解压(位置任意),我是解压到C盘的根目录的
然后进入C:\Apache24\conf这个路径,打开httpd.conf(我使用notepad++打开的)
接下来我们对httpd.conf进行修改:
在39行左右的地方将Define SRVROTT 引号里面的路径修改为Apache的路径,我的Apache路径为C:\Apache24
Define SRVROOT "C:\Apache24"
ServerRoot "${SRVROOT}"
然后,在65行左右的地方,修改监听的端口及ip:
Listen 0.0.0.0:80
这里的0.0.0.0:80指的是监听所有ip的请求,也就是所,任何IP都可以访问我们的网页,然后,端口为80,这样做的好处是80是默认端口,所以别人输入你的网址时不用输入端口号,直接输入ip地址就可以访问你的网页
接下来,在230行附近修改服务器名字(如果你设置了其他端口,那么,就要带上其他的端口,例如,你设置了8000端口,那么,前面你监听的端口应该是0.0.0.0:8000,假设你的服务器ip为127.0.0.1,那么,这里服务器的ip应该是127.0.0.1:8000,或者,假如你的域名为godlrodgee.com ,那么,应该这样输入godlordgee.com:8000):
ServerName 你的ip地址或者域名
比如,假设你的服务器的ip地址为127.0.0.1,那么,就这样修改:
ServerName 127.0.0.1
或者,假设你的域名为godlordgee.com,那么,就这样修改:
ServerName godlordgee.com
配置到这里,就点击保存退出,然后,打开cmd,用cmd进入C:\Apache24\bin目录,运行命令:
httpd.exe -k install -n "apache2.4"
这行命令是创建apache服务用的,当你运行了这行命令,你打开任务管理器,点击服务,就会看到有一个apache2.4的服务
如果刚创建服务,那么这里的状态应该是已停止的状态,我是直接从服务器截的图,所以是正在运行的状态。
这里需要说明,如果用cmd运行安装apache服务的命令,那么,会出现下面这句话:
Errors reported here must be corrected before the service can be started
这句话的下一行,如果有输出一些信息,那么,就表明你的httpd.conf配置有问题,那么,你就要根据它提示你的报错信息,去检查哪里有问题,如果这句话的下一行是空白的,那么,就说明你的apache服务安装没有问题,你可以正常启动了。
如果你配置好了,打开任务管理器,找到apache服务,右键,启动就可以了,如果启动成功,访问127.0.0.1或者本机ip或者域名,那么,就会出来这样IT WORKS的界面
我们回到下载apache的页面:https://www.apachehaus.com/cgi-bin/download.plx,滑到最下面:
点击downl连接,会跳到微软官网,然后点击下载,下载64位的然后安装就行了,这里不再详述,你们应该可以搞定,我相信你们! (apache服务能够正常运行的忽略这一步)
安装完VC15以后,我们再次启动apache服务,就发现apache服务可以正常的运行,输入对应的网址,也可以出来apache的界面了
接下来,就要对我们的django项目下手了~嘿嘿嘿(邪恶笑)
我们需要下载mod_wsgi(python的包),下载网址:http://www.lfd.uci.edu/~gohlke/pythonlibs
是不是感觉有很多的东西,自己找不到?使用浏览器的查找快捷键:CTRL + F , 输入mod_wsgi,即可找到你想要的:
点进去,你会发现有很多的版本:
通过这个mod_wsgi的名字,我们就可以看到它的要求还挺严格,我们一定要对号入座,比如,我框柱的那个下载链接,它就要求你的apache版本是apache2.4VC14版本的,python版本是3.6.x版本的,然后电脑是64位的,大家一定要对号入座哦,一定要所条件都符合才行,不然我也不能保证会发生什么。
点击链接下载,然后,用cmd进入下载的文件夹,或者将下载的.whl文件移动到你找得到的地方去(我一般是把它移动到python/Lib/site-packages里面去),然后用cmd进入.whl文件所在的目录,输入命令:
pip install mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl
就可以安装mod_wsgi了。ps:你可以输入个mod_wsgi,然后按TAB键,就可以自动补全了,以免输错
安装完成以后,在cmd里面输入:
mod_wsgi-express module-config
会出来几行信息,把它复制然后保存起来,我是保存在记事本的,后面配置http_conf会用到
接下来就是关键的地方了,再次打开刚才的httpd.conf文件,在文件最后添加几行代码:
LoadFile "c:/python/python36.dll"
LoadModule wsgi_module "c:/python/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/python"
#设置工程中的wsgi路径
WSGIScriptAlias / C:\Users\Administrator\Desktop\test_django\xiaofan\xiaofan\wsgi.py
#设置工程路径
WSGIPythonPath C:\Users\Administrator\Desktop\test_django\xiaofan
#设置wsgi路径
Require all granted
#设置静态文件路径
Alias /static C:\Users\Administrator\Desktop\test_django\xiaofan\static
AllowOverride None
Options None
Require all granted
#设置媒体文件路径
Alias /media C:\Users\Administrator\Desktop\test_django\xiaofan\media
AllowOverride None
Options None
Require all granted
前三行,就是刚才保存的mod_wsgi命令出来的代码,后面的就是django的一些配置,这里需要说明,我把一个名为test_django的文件放在了桌面,里面是一个名为‘xiaofan’的项目,再打开里面是django的各个文件,如下图所示:
到此,所有的配置已经完成了,我们只需要重启apache服务(这是必须的!必须重启),接着,输入网址,就可以正常访问啦!其他好朋友也可以通过IP地址或者域名访问你的网站了哦
再多嘴一句,记得将django项目里面的setting.py里面的debug改为false哦,这是为了你的网站好,毕竟,在这纷扰的世界,防人之心不可无啊。
再再多嘴一句,看似挺简单的部署,浪费了我好多天的时间,无数次的接近崩溃,心好累
再再再多嘴一句,跟着教程走如果遇到了其他的问题,一定多思考,多google、百度、biying,困难,总会被解决的,只要你不放弃就好了
写博客好累。。。嘤嘤嘤