32位系统上的搭建教程网上已经很多.64位的系统会比较复杂.如果有条件建议用linux作为服务器.
环境:Windows7 64bit; Python 3.6.4; Django2.0.2; Apache2.4;
1.安装python3.6:网上python环境搭建的教程已经很多了,我就不再累赘.(注意:记得设置环境变量,添加到系统Path中)
2.安装django,创建一个项目:
1) django安装:pip install Django;
2)创建django项目:我的项目在 F:\www 下;
F:\WWW>django-admin.py startproject myweb
运行项目:python manage.py runserver;
在浏览器输入http://127.0.0.1:8000 能访问到项目主页,那django的开发环境就部署好了,接下来开始搭建生产环境.
3.安装Apache2.4 64位:官网 http://httpd.apache.org/download.cgi
点击 a number of third party vendors
apache本身不提供已编译的安装包,只提供源码,如果你自己无法编译,可以选择下面这些官方推荐的第三方提供编译的网站。
其中后两个是有名的wamp以及xampp集成环境,如果只想下载apache可以选择前三个网站,这里我们第一个ApacheHaus。
跳转后选择 [ Apache 2.4 VC14 ];然后选择Apache 2.4.29 x64 点击后面的国旗标志下载.
1.cmd进入dos窗口
2.进入Apache安装目录的bin目录
3.执行命令行:httpd -k install -n "自定义服务名称"
即可安装系统服务
4.如果想删除,则 httpd -k uninstall -n "服务名称",即可删除已经安装的系统服务。
下载安装完成后修改httpd.conf文件:
以下三句话是第4步要生成的,
LoadFile "f:/python3/python36.dll"
LoadModule wsgi_module "f:/python3/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "f:/python3"
以下这句是django项目wsgi.py的路径,根据自己的实际情况写,
WSGIScriptAlias /myweb F:/www/myweb/myweb/wsgi.py
<Directory "F:/www/myweb/myweb">
Options FollowSymlinks
AllowOverride none
Require all granted
</Directory>
注意:apache24与apache22配置有一些不同,原来的Order deny,allow已经被Require all granted代替,网上有一些配置说明都是基于apache22的,直接使用在apache24中会有错。
4.安装mod_wsgi:
网上其他教程都是在apache的httpd.conf中加入配置LoadModule wsgi_module modules/mod_wsgi.so
so文件需要编译,难度较大,本文章为另一种方法.
官方下载wsgi https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
选择 mod_wsgi‑4.5.24+ap24vc14‑cp36‑cp36m‑win_amd64.whl 下载
i. 这个插件对应的Apache版本是24 VC是14
ii. Python版本是3.6
iii. 64位系统,是python的版本
在下载时要选择相应的版本,否则Apache启动时会有问题
把下载的.whl文件复制到python安装目录下的\Scripts\下使用
执行 F:\python3\Scripts>pip3 install "mod_wsgi-4.5.24-cp36-none-win_amd64.whl"
安装完成后执行:F:\python3\Scripts>mod_wsgi-express module-config 输入三句话:
LoadFile "f:/python3/python36.dll"
LoadModule wsgi_module "f:/python3/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "f:/python3"
复制到httpd.conf,就是第3步的三句话.
再次启动Apache服务器就行了.访问 http://127.0.0.1/myweb/ 就能访问主页