Django部署方法
Windows方案: Apache2.4 + Django2.0
网上的方法乱七八糟:
那么接下来:最好的方法,不行吃屎。
当前环境是Django2.0+ python35(64bit)
部署原因:
1,django给你的是个测试服务器,最简单的,性能最低的。
2,比如你的/media/ 下的文件,例如视频。要做到像播放时候快进,如果不用服务器(apache)是不能直接快进.
比如播放某一个视频报错:
TypeError: 'NoneType' object is not subscriptable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Python35\lib\socketserver.py", line 625, in process_request_thread
self.finish_request(request, client_address) ....
.... 3,static文件获取性能极其低下
Django的设置:
1,先把settings.py
DEBUG=False
2,
ALLOWED_HOSTS = ['*']
3,指定STATIC_ROOT MEDIA_ROOT
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "YiVideo"),
] #media files
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media/')
4,打包static文件到STATIC_ROOT下(非常重要)
原因你的admin资源,还有用的img,html,js文件都统统完整打包,随后让apache服务这些文件.
>> python manage.py collectstatic
5,最头疼的地方apache来了。
<1>
https://www.apachelounge.com/download/vc14/
解压放到C:/Apache24 放到C盘,这个是最简单的方法,因为里面很多默认设置都是C:/Apache24默认目录,简单期间最好就放这个位置。
注意下载vc14版本的
<2>下载服务python的扩展包
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
因为我是py35下载 mod_wsgi‑4.5.24+ap24vc14‑cp35‑cp35m‑win_amd64.whl (很重要)
<3> 最关键的一步
1,把 mod_wsgi‑4.5.24+ap24vc14‑cp35‑cp35m‑win_amd64.whl 放入C:/Python35/Scripts 文件夹
2,然后pip install mod_wsgi‑4.5.24+ap24vc14‑cp35‑cp35m‑win_amd64.whl
3,然后改名mod_wsgi‑4.5.24+ap24vc14‑cp35‑cp35m‑win_amd64.zip
4,然后就在当前目录解压
5,在此路径下C:\Python35\Scripts\mod_wsgi-4.5.24+ap24vc14-cp35-cp35m-win_amd64\mod_wsgi\server
6,然后把mod_wsgi.cp35-win_amd64.pyd改名mod_wsgi.so
7,mod_wsgi.so复制到 C:\Apache24\modules
<4>关键性设置C:\Apache24\conf\httpd.conf
找到Listen这句 修改成你的本机固定ip ,把80端口注释了
Listen 192.168.10.198:8081
#Listen 80
找到这些加载模块这些语句注释区域,写入LoadModule wsgi_module modules/mod_wsgi.so
C:\Apache24\conf\httpd.conf文件的最底下加入这些语句:
看到static已经是使用的python manage.py collectstatic 命令打包后的位置.
<IfModule wsgi_module>
Alias /static/ D:/plugin_dev/Python/DjangoDay/ContentManager/static/
<Directory "D:/plugin_dev/Python/DjangoDay/ContentManager/static">
Require all granted
</Directory> Alias /media/ "D:/plugin_dev/Python/DjangoDay/ContentManager/media/" <Directory "D:/plugin_dev/Python/DjangoDay/ContentManager/media/">
Allow from all #must give , or display 失败-已被禁止
Require all granted
</Directory> WSGIScriptAlias / D:/plugin_dev/Python/DjangoDay/ContentManager/ContentManager/wsgi.py
WSGIPythonPath D:/plugin_dev/Python/DjangoDay/ContentManager/
<Directory D:/plugin_dev/Python/DjangoDay/ContentManager/>
<Files wsgi.py>
Order deny,allow
Allow from all
Require all granted
</Files>
</Directory>
</IfModule>
<5>cmd启动C:\Apache24\bin\httpd.exe
<6>浏览器访问:192.168.10.198:8081 ,我曹,一切完美。
media的文件随便尼玛快进快放
Django部署方法的更多相关文章
- django 部署到 apache
安装完django之后,每次都需要通过命令来启动启动开发服务器.虽然调试和测试方便,但只能在本地运行,并且不能承受许多用户同时使用的负载.所以需要将Django部署到生产级的服务器,这里选择apach ...
- Django部署到Apache Web Server
Windows环境下,将Django部署到Apache Web Server 在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法. ...
- Nginx+uWSGI+Django部署web服务器
目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...
- hadoop入门(3)——hadoop2.0理论基础:安装部署方法
一.hadoop2.0安装部署流程 1.自动安装部署:Ambari.Minos(小米).Cloudera Manager(收费) 2.使用RPM包安装部署:Apache ...
- django部署
部署教程 阿里云django部署教程 注意备份Apache2的siteconf文件 细节 环境迁移 如果是修改了注意些requirement文件
- Django 部署 uwsgi + nginx + supervisor
Django 部署 uwsgi + nginx + supervisor https://hacpai.com/article/1460607620615?p=1&m=0 zonghua • ...
- IIS:开启GZIP压缩效率对比及部署方法
HTTP压缩 HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法.HTTP压缩采用通用的压缩算法如GZIP等压缩HTML.JavaScript或CSS文件.压缩的最大好处就是降低了网络传输的 ...
- Hadoop 学习笔记 (九) hadoop2.2.0 生产环境部署 HDFS HA部署方法
step1:将安装包hadoop-2.2.0.tar.gz存放到某一个目录下,并解压 step2:修改解压后的目录中的文件夹/etc/hadoop下的xml配置文件(如果文件不存在,则自己创建) 包括 ...
- elasticsearch+kibana+metricbeat安装部署方法
elasticsearch+kibana+metricbeat安装部署方法 本文是elasticsearch + kibana + metricbeat,没有涉及到logstash部分.通过beat收 ...
随机推荐
- MySql数据库在NodeJS中简单的基本操作
阅读目录 一:连接数据库 二:数据的增删改查操作 2.1 数据库新增和查询数据 2.2 获取该数据的主键值 2.3 多语句查询 回到顶部 一:连接数据库 const mysql = require(' ...
- keras 中模型的保存
参考:https://www.cnblogs.com/weiyinfu/p/9788179.html#0 1.model.summary() 这个函数会打印模型结构,但是仅仅是打印到控制台,不能保存 ...
- Python排序算法——冒泡排序
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10786904.html 一.冒泡排序(Bubb ...
- KVM架构及模块简介
1.简介 2.架构 3.KVM模块及QEMU 一.简介 KVM(Kernel Virtual Machine)基于内核的虚拟机.阿维·齐维迪(Avi Kivity)在一家名为Qumranet的初创企业 ...
- STM32F103/429串口IAP+Ymodem升级
起因: 串口IAP升级在正点原子的例程中有讲解,正点原子的方法是:在RAM中开辟一个120K的数据空间,用来存放bin文件,bin文件通过串口一次性发送到单片机,然后再实现程序的跳转.但是这种方法在实 ...
- vue-cli3
官网 https://cli.vuejs.org/zh/ ie11 的问题 https://stackoverflow.com/questions/52056358/vue-cli-3-project ...
- 【Swift 4.0】iOS 11 UICollectionView 长按拖拽删除崩溃的问题
正文 功能 用 UICollectionView 实现两个 cell 之间的位置交互或者拖拽某个位置删除 问题 iOS 11 以上拖拽删除会崩溃,在 iOS 9.10 都没有问题 错误 017-10- ...
- Array.prototype.reduce()
reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. arr.reduce([callback, initialValue]) c ...
- 该错误的解决办法:Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1
Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1 这个问题,原因是UTF-8编码有可能是两个.三个.四个字节.Emoji表 ...
- HP 1010、 1020、 1022 、M1005激光打印机内部无卡纸,但机器仍提示卡纸?
HP 1010.1018.1020.1022.M1005激光打印机,硒鼓原装编号:Q2612A 1800页 ( A4纸,5%覆盖率).是办公桌面小型打印机中主流产品,故障率极小. 现有一台HP 10 ...