您的位置:首页 > 运维架构 > Apache

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

2017-11-14 16:58 1026 查看
刚学了一段时间的python,感觉挺方便的,写个简单的web,真的是太简单了,一行命令runserver就跑起来了,后来听说那是测试服务器,不安全,只能用于测试,不能用于生产上,好吧,虽然我的网站可能就我一个人访问而已,哈哈,但是还是得折腾一下。

由于我是window系统,结果在部署服务器这一步上,真是让人头大,网上查阅了很多资料,今天终于调试成功了,特地整理一下。

第一步

安装python(安装python

第二步

新建Django项目(简约而不简单的Django新手图文教程

上面这两部,就不做过多的介绍了,附上两位大神写的贴子。

第三步

下载apache

根据对应的系统下载即可,请注意我用框框圈起来的VC14,记住这个数字,后面有用到






第四步

网上有教程是用vs自己编译,如果我们的环境在这里能找到对应的文件,就选择已经编译好的了

下载mod_wsgi



请注意,这里以第六个为例子,因为这符合我的系统要求

mod_wsgi‑4.5.19+ap24vc14‑cp36‑cp36m‑win_amd64.whl

这个命名代表的是

1.ap24代表的是apache24的版本(解压完apache你看路径就知道版本了)

2.vc14上面第三步所选的apache的vc为14,这里选择一样的vc

3.cp36和cp36m,我也不知道哪个代表的是ython环境为3.6,反正两个数字全都是一样的

ok,到这里,大家根据自己的环境,下载就行了,不要下载错,切记

第五步

把下载的mod_wsgi-4.5.19+ap24vc14-cp36-cp36m-win_amd64.whl文件,拖到你的python目录的Scripts文件夹下,如图,我是装在E盘,

默认是在C:\Users\Administrator\AppData\Local\Programs\Python\下



第六步

进入对应的目录后,运行 pip install "对应的.whl文件目录"



看到安装成功后,再运行 mod_wsgi-express module-config



得到上面这3行,就可以了,先别关掉命令行,待会有用

第七步

配置Apache ,编辑httpd.conf文件



这里进行简单的apache配置,需要详细的朋友,自己再去百度哈

1.这里是Apache的路径,需要修改一下

Define SRVROOT "G:\_tools\httpd-2.4.29-o102m-x64-vc14\Apache24"


2.端口可能需要修改一下,默认是80端口,看各位的需求了,我这边被IIS占用了,就不用80了

Listen 8088


3.服务器地址

ServerName localhost:8088


ok,简单的配置后,我们再配置python的部分,还是在这个文件夹,在最后面加上就行了

4.追加上面命令行打印的3行

5.后面是项目路径等(整段代码贴出来)

LoadFile "E:\python\python36.dll"
LoadModule wsgi_module "E:\python\lib\site-packages\mod_wsgi\server\mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "E:\python"

#Django项目中wsgi.py的路径
WSGIScriptAlias / G:\_project\python\BibuPython\BibuPython\MySite\MySite\wsgi.py

#Django项目的路径
WSGIPythonPath G:\_project\python\BibuPython\BibuPython\MySite

#配置wsgi.py的访问权限
<Directory G:\_project\python\BibuPython\BibuPython\MySite\MySite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>


如果你想让外网能访问到,那么需要修改python项目的setting.py(跟上面第七步第5点配置 wsgi.py 同一个目录)

在setting.py文件中的ALLOWED_HOSTS字段,加个星号

ALLOWED_HOSTS = ["*"]



最后


将Apache添加为系统服务 httpd -k install


启动服务器:Apache httpd -k start


结束服务器:Apache httpd -k stop

如果运行后出现这个错,我建议大家把路径修改一下,改成我这样,而不是直接复制命令行的路径



命令行:



改成盘符是大写的,路径自己去实际文件那边复制,比较妥当(分隔符用"\",而不用"/")



我不知道大家会不会出现这个问题,我这边部署2次出现2次这个问题,路径一直出错,可能是粗心的原因...

注,我这边实测,python3.6+64位的win7python3.5+32的winserver2007,都是可以运行的,

如果是低版本的python,可能不适用我这个方法,请小伙伴自行判断

好了,第一次写这个,有什么写得不妥的地方,还请大家多多指点。

参考:

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

whl文件中找不到mod_wsgi.so文件解决办法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息