最近项目组正在上python+django。如今将部署过程总结下,相关文件也备份下,面得每次都要弄半天。网上不少不靠谱的作法,让我反复试错,浪费很多时间。html
原材料:python
Python3.6.2express
httpd-2.4.27-win64-VC14apache
mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whldjango
说明:字体
因为Python2.7将来会中止更新,公司就采用最新版算了ui
Apache不能编译成功,干脆就下了,如今采用的2.4 VC14版本,为啥要用VC14,由于mod_wsgi最新版只支持到VC14spa
mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whl:咱们来解释下:命令行
ap24vc14:apache 2.4 VC14版本
cp36-cp36m:这一节就是指python3.6+
win_amd64:就是只64位系统
在这里切记:必定要找到和你的系统版本,python版本,apache版本一致的几个套件,不然死活不成功。
接下里:咱们就讲下如何安装:
Apache24:解压下来以下。
这里,咱们须要修改:config文件。
在37行附近:修改apache的路径:
ServerRoot "D:/install/httpd-2.4.27-win64-VC14/Apache24"
在这个文件里面。默认是C:/Apache24。一键替换为你的实际路径。能够参考上图
在57行附近,修改监听的端口:
#Listen 12.34.56.78:80
Listen 8088
而后运行httpd.exe.这里,须要用命令行中运行。只要命令行窗口不退,代表运行成功。使用http://localhost:8088进行访问
安装python3.6.2的时候,会把pip一块儿安装出来。而后配置环境变量。网上多的很的教程,随便 参考 这个文档
参考这个文档: django 官方文档 在这里下载也能够
注意:在低版本使用mod_wsgi.so便可让django和apache联系起来。可是,这个版本的wsgi没有.so文件。那么咱们如何加载wsgi呢?
将你的 mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whl 文件,拷贝到python scripts的目录下,用
pip3 install mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whl
进行安装。以后会出现以下内容:
PS C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Scripts> pip3 install C:\Users\Administrator\AppData\Lo
cal\Programs\Python\Python36\Scripts\mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whl
Requirement already satisfied: mod-wsgi==4.5.17+ap24vc14 from file:///C:/Users/Administrator/AppData/Local/Programs/Python/Python36/Scripts/mod_wsgi-4.5.17%2Bap24vc14-cp36-cp36m-win_amd64.whl in c:\users\administrator\appdata\local\programs\python\python36\lib\site-packages
PS C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Scripts> mod_wsgi-express module-config
LoadFile "c:/users/administrator/appdata/local/programs/python/python36/python36.dll"
LoadModule wsgi_module "c:/users/administrator/appdata/local/programs/python/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/users/administrator/appdata/local/programs/python/python36"
PS C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Scripts>
从命令行窗口把黑色字体部分拷贝出来,放到apache httpd.config
的 最后一个 LoadModule 的位置。大概在180行左右。
紧接着,在后写入:
#wsgi文件的位置
WSGIScriptAlias / E:/Workspace/pyworkspace/mycms/mycms/wsgi.py
#项目位置
WSGIPythonPath E:/Workspace/pyworkspace/mycms
#设置脚本
<Directory E:/Workspace/pyworkspace/mycms/mycms>
<Files wsgi.py>
Require all granted
setHandler wsgi-script
</Files>
</Directory>
把如下代码放到wsgi文件的红色框内
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
至此,咱们就结束了django 的部署。在咱们的views中,有这样的返回:
此时启动apache,输入你实际的地址: