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

来源:互联网 发布:百度域名 编辑:程序博客网 时间:2024/05/18 02:45

Windows下进行与Python相关的开发实在是有诸多坑。但另一方面,到了Win10,Windows的易用性和稳定性已经达到了一个相当的高度,再加上丰富的软件生态。对我来说,Windows现在就是一种“看不惯又干不掉”的状态。

曾经用Wamp+WordPress在Windows下部署过博客网站,没想到这次用Django,感觉完全不一样了。或许Django毕竟不是WordPress那种模板式博客应用,而只是一个框架吧。搭建过程种出现了无数的坑。虽然总结起来步骤倒也并不是很多。但实在是相当麻烦。现在记录如下。

一:环境准备。

首先,按照官方文档的说法,如果你想保证你的网站程序稳定运行,最好在环境上做到以下几点:

0、需要给Apache装上mod_wsgi。这是一个用来在Apache上支持Python的模块。这个文件在Windows下编译非常麻烦,不过我们可以在Github上下载已编译完成的文件。下载地址:mod_wsgi_4.4.12

1、需要准备的所有东西——Python、Apache、mod_wsgi等等,要么就全用32位,要么就全用64位。两种不能混用。

2、安装Python时要为所有用户安装,不能只为你自己安装

3、已编译完成的mod_wsgi在编译时使用的Python版本、Microsoft C/C++ Compiler的版本和你现在用的Python跟Microsoft C/C++ Compiler的版本必须完全一样。嗯,你还是需要在你的电脑上也装上Microsoft C/C++ Compiler的。在我给出的下载文件里,我最后用的是Python3.4,VC10的64位版本。VC++ Compiler的安装——下载这里的Microsoft Visual C++ Build Tools 2015,然后安装。


二:进行安装

1、其实所谓安装就是把这个.so文件改名mod_wsgi.so,然后复制到Apache安装文件夹下的Modules文件夹里。我安装的是wamp,所以我的路径是D:\wamp64\bin\apache\apache2.4.23\modules。然后再重启Apache服务,这时我们会发现Wamp的图标由绿色变成了黄色,点开菜单里的modules,我们会发现这个mod已经被发现,但是由于配置文件中没有相关Load Modules语句,所以不能正确加载。


这就提示我们去http.conf中加入相关的语句。不过这个语句不能照抄它这个提示里给出的,应该写LoadModule wsgi_module modules/mod_wsgi.so 。这个文件里有一大片连在一起的Load Modules语句,可以放在这堆语句的最后,也可以放在整个文件的最后,这个主要看你习惯。

2、当然,你要运行Django,首先你要有一个需要运行的Django程序,如果大家已经有了,把这个程序的目录复制到Apache的www文件夹下。然后指路就行了,如果没有,直接在www下使用Django的startproject也行,具体我就不说了。

3、搞完程序之后,就是指路。在http.conf底下继续加入一些路径声明。网上的教程讲到这一块都已经讲的比较详细了。我现在只针对我的情况说明,我做的是一个非常简单的页面。几乎没有任何动态效果。也没有用virtualenv,所以前面只要声明两行。因为直接在域名根目录运行,所以ScriptAlias的前面一部分直接就是‘/’。PythonPath是你Python程序的目录。

WSGIScriptAlias / D:/wamp64/www/converter/converter/wsgi.pyWSGIPythonPath D:/wamp64/www/converter

# 下面这一部分是授权访问文件的权限。唔,Apache2.3版本以下用来授权的那一句不是这样写的。其他都一样。
<Directory D:/wamp64/www/converter/converter><Files wsgi.py>Require all granted</Files></Directory>

三:完成

在完成这些之后,如果你的Django程序没有问题,网页应该就能正常运行了,至少我的程序此时已经可以运行了。在本机上访问127.0.0.1就可以在浏览器里看到并使用你制作的web程序。如果你有域名,你也可以很方便的把它放到互联网上。我这里也不详细说了,总之,祝大家玩的开心。


附:其实我当时因为比较着急没有耐心去看几篇官方的英文文档。其实我相信文档中不难找到适用更新版本,乃至适用python3.6的方法,如果大家有兴趣看,英文也无压力,可以参考以下文档:

· https://pypi.python.org/pypi/mod_wsgi/4.5.15 ——mod_wsgi文档

· https://github.com/GrahamDumpleton/mod_wsgi/blob/develop/win32/README.rst ——官方的在windows上运行mod_wsgi的教程

· https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/modwsgi/ ——Django官方文档的部署教程

原创粉丝点击