Apache部署Django项目图文详解
作者:三只松鼠 发布时间:2023-12-17 06:51:05
前言
Django项目本身就可以启动运行,为什么还需要部署到Apache或者Nginx上呢?初学者都会遇到这个问题,我们来看看官方解释:It's intended only for use while developing. (We're in the business of making Web frameworks, not Web servers.),意思是django的业务是制作Web框架,而不是Web服务器。自带的web server只是方便开发,并不能直接放到生产环境,有兴趣的同学可以自己测试两者性能上的差距。 言归正传,我们这里主要讲述如何搭建Apache环境。
安装Apache
Apache(win 64)下载:https://www.apachehaus.com/cgi-bin/download.plx#APACHE24VC09
1.解压缩,修改Apache24\conf\httpd.conf 文件中的apache路径和端口:
......
Define SRVROOT "E:/Apache24"
ServerRoot "${SRVROOT}"
......
#Listen 12.34.56.78:80
Listen 8088
......
ServerName localhost:8088
......
2.打开E:\Apache24\bin\httpd.exe,在浏览器输入http://127.0.0.1:8088/ 出现welcome页面代表成功。
mod_wsgi 模块下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
1.把whl文件改成zip,解压缩,把里面的mod_wsgi.so拷贝到E:\Apache24\modules路径下,httpd.conf 中新增一段配置:
#添加mod_wsgi.so 模块
LoadModule wsgi_module modules/mod_wsgi.so
若mod_wsgi解压后找不到mod_wsgi.so文件(如有跳过此步骤)
运行cmd,进入Scripts目录执行安装操作:
pip3 install mod_wsgi-4.5.17+ap24vc10-cp34-cp34m-win_amd64.whl
在Scripts目录执行:mod_wsgi-express module-config
把三行内容复制到httpd.conf:
#添加mod_wsgi.so 模块
LoadFile "c:/python34/DLLs/python3.dll"
LoadModule wsgi_module "c:/python34/lib/site-packages/mod_wsgi/server/mod_wsgi.pyd"
WSGIPythonHome "c:/python34"
配置Apache与Django
1.打开Apache配置文件 httpd.conf,在末尾增加一段配置:
#添加mod_wsgi.so 模块
LoadFile "c:/python34/DLLs/python3.dll"
LoadModule wsgi_module "c:/python34/lib/site-packages/mod_wsgi/server/mod_wsgi.pyd"
WSGIPythonHome "c:/python34"
#指定myweb项目的wsgi.py配置文件路径
WSGIScriptAlias / D:/mysite/mysite/wsgi.py
#指定项目路径
WSGIPythonPath D:/mysite
<Directory D:/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static D:/mysite/static
<Directory D:/mysite/static>
AllowOverride None
Options None
Require all granted
</Directory>
2.打开django项目setting配置:
DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1','localhost'] #允许访问的ip。也可以用'*'表示,代表不受限制
重启bin\httpd.exe,输入URL
测试OK
3.将Apache安装成windows server,就不需要每次打开httpd.exe出现一个小黑框了。
bin目录下运行cmd命令httpd -k install -n “服务名” (不加参数,默认Apache2.4)
运行apache:net start apache2.4
停止apache:net stop apache2.4
删除apache:sc delete Apache2.4
来源:https://www.cnblogs.com/shenh/p/7552722.html
猜你喜欢
- Embedding的近邻搜索是当前图推荐系统非常重要的一种召回方式,通过item2vec、矩阵分解、双塔DNN等方式都能够产出训练好的use
- 本文主要给大家介绍了关于Golang中switch和select用法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:一、swi
- 当我们想复制两个一模一样的列表时,我们可能使用到list.copy()这个方法,这个方法可以让我们复制一个相同的数组,当遇到下面这种情况时,
- 删除单条记录 代码如下:id = saferequest("id") sql="
- 通过使用turtle绘画象棋棋盘,供大家参考,具体内容如下# 绘制象棋棋盘import turtlet = turtle.Pen()t.wi
- 在使用图片的时候有时候我们希望改变背景颜色,这样就只关注于图片本身。比如在连连看中就只有图片,而没有背景,其实我个人感觉有背景好看一点。两种
- Python错误SyntaxError: unexpected EOF while parsing含义是解释器到底了都没找到它要找到的东西出
- 第一种方法:递归def perms(elements): if len(elements) <=1
- 目录1.获取所有顶层窗口2.手动选择需要设置老板键的程序3.隐藏或显示选中程序4.设置显示隐藏快捷键5.最终效果主要实现目标:为多个指定的程
- 1.介绍PDF 格式是与平台无关,它独立于底层操作系统和渲染引擎。事实上,PDF 是基于一种脚本语言—&mdas
- 对于许多想学习JavaScript的朋友来说,无疑如何选择入门的书籍是他们最头疼的问题,或许也是他们一直畏惧,甚至放弃学习JavaScrip
- 有时候,我们需要将文本转换为图片,比如发长微博,或者不想让人轻易复制我们的文本内容等时候。目前类似的工具已经有了不少,不过我觉得用得都不是很
- <!-- #include file="conn.asp" -->
- 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的编写,刚开始不会体会出SQL语句各种写法的性能优劣,但是如果将应
- os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname") 改
- 功能:读取txt文本,然后将目的字符串标红,再将处理过的字符串写入docx中txt文本内容:啊打发发烧鳌太路线点击点击诶的骄傲计划将鳌太标红
- 如下所示:#随机数的使用import random #导入randomrandom.randint(0,9)#制定随机数0到9i=rando
- MigrationsDjango中对Model进行修改是件麻烦的事情,syncdb命令仅仅创建数据库里还没有的表,它并不对已存在的数据表进行
- XMLHttpRequest 最近在 W3C 标准之路上又迈进了一步,W3C Web API&nbs
- 单下划线与双下划线在 python 中,会看到 _xx, xx 以及 __xx 这样的变量或者函数名,在这里做一个简要的总结。_xx:保护(