【IBS30(八)】--Django项目部署

简介

截至目前,项目实现了,一个完整功能domain app,主要是实现检索字段解析,为了能在生产上使用,所以在整个项目还没有竣工的情况下进行提前部署。主要原因是想将生产和开发环境分开,开发的同时生产上也能使用,在开发环境开发完一个完整功能后,然后直接复制提换整个文件夹,再重启apache2.4服务,直接在生产上运行,节省时间。

环境搭建

ibs30项目部署环境版本如下
win7 64+Apache2.4+python3.6+django2.0+wsgi
下面分别介绍每个环境的部署和配置

wsgi的安装

wsgi是Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器(apache)和Web应用程序(django)或框架之间的一种简单而通用的接口
wsgi下载地址
但是上面现在地址没有对应apache24的版本,所以这里提前下载的whl已上传到网盘欢迎下载
云盘地址
对应版本解析
在这里插入图片描述下载之后,将其复制到python安装目录下的script文件夹中,一定要是这个文件夹否则会安装失败,然后CMD到命令窗口再cd到script目录下执行以下安装命令

pip install "whl_name"

安装成功之后在执行以下命令:获取其配置信息

# 目的获取配置信息,在后面配置中会使用到。
mod_wsgi-express module-config

Apache2.4下载和配置

  • Apache下载
    apache的下载路径目前提供三个一个官网环境和ApacheHaus,ApacheLounge第三方集成下载环境对应地址如下:
    apache官网
    ApacheHaus
    ApacheLounge
    本文采用ApacheHaus并上传到云盘
    云盘链接
  • Apache配置
    主要是修改httpd.conf配置文件
    首先修改
Define SRVROOT "C:/Program Files/Apache24"    # 修改Apache实际绝对安装目录(不修改也无所谓)
Listen 80                       # 监听端口
ServerName 127.0.0.1:80          # 可访问的主机,域名。需要在Windows的hosts文件中做IP映射(没有域名可用ip)

然后在 httpd.conf 配置文件末尾添加以下内容:

##------------------------django项目部署配置--------------------------##
# 声明项目根目录变量
Define DjangoRoot "D:\ibs30"

# 添加"mod_wsgi.so"模块,这三行是在命令"mod_wsgi-express module-config" 显示出来的
LoadFile "c:/programdata/anaconda3/python36.dll"
LoadModule wsgi_module "c:/programdata/anaconda3/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/programdata/anaconda3"

# 指定项目的"wsgi.py"配置文件路径
WSGIScriptAlias / "${DjangoRoot}/ibs30/wsgi.py"

# 指定django项目根目录,并配置访问权限。WSGIPythonPath取代DocumentRoot配置,或者保留DocumentRoot一致
WSGIPythonPath "${DjangoRoot}"
<Directory "${DjangoRoot}">
    Require all granted
</Directory>

# 项目静态文件配置
Alias /static "${DjangoRoot}/static"
<Directory "${DjangoRoot}/static">
    AllowOverride None
    Options None
    Require all granted
</Directory>

# 项目media文件配置,用户上传图片等媒体文件 
Alias /media "${DjangoRoot}/media"
<Directory "${DjangoRoot}/media">
    AllowOverride None
    Options None
    Require all granted
</Directory>

然后进入Django项目的settings.py文件下进行配置。

# 上线时必须将DEBUG设为False
DEBUG = False

# 可指定主机,若元素为'*',表示所有同一局域网内的网络均可被访问
ALLOWED_HOSTS = ['*']
  • 重启Apache服务
    修改完配置后,只需重启Apache服务即可,此时会连着wsgi服务一并重启,因为httpd.conf配置中加载了mod_wsgi模块。cmd重启Apache命令:
httpd -k restart -n apache         # apache为Windows托管服务名
或:
net stop apache 然后 net start apache     # Windows服务管理命令,没有restart
  • 测试效果
    访问测试:在浏览器地址栏输入"127.0.0.1:80"或"localhost:8080"回车就可以进入Django项目网站了!其中www.wcwnina.com为httpd.conf中配置的主机域名ServerName。
问题发现admin后台管理没有样式
  • 在项目根目录想新建static目录
  • setting配置如下
STATICFILES_DIRS=[
	os.path.join(BASE_DIR,'static'), #原先本来在根目录下创建common_static作为公共static目录,后来发现在执行python manage.py collectstatic时比较麻烦,所以直接都统一成static
]
STATIC_ROOT=os.path.join(BASE_DIR,'/static/') 
#STATIC_ROOT=os.path.join(BASE_DIR,'/static/')  错误配置
#会报<staticfiles.E002> the staticfiles_dirs setting should not contain the STATIC_ROOT setting..错误
  • 执行以下指令收集所有app下的static文件到项目根目录下的static文件夹中
python manage.py collectstatic #在数据yes,不是y记住

到这里基本配置完成,如有错误请指正。

参考文章1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值