exkaede

以下可保证可以本地测试

http://www.apachelounge.com/安装完整版apache, 装载c盘
安装python
安装pip:curl获取安装脚本或直接下载安装脚本来安装pip, 然后把pip路径设置到path
安装mod_wsgi(先通过vs installer安装整个c++栏目以及2015 vc++ 14.0 然后重启):pip install mod_wsgi

安装django, pip install Django==3.0.4
创建项目: django-admin startproject dj1
创建app: py manage.py startapp app1
开始写代码, 本地测试是py manage.py runserver

(重要!)连接mssql

  • 安装这个包: pip install django-mssql-backend
  • 服务器内安装odbc 13驱动(微软官网)
  • 按照教程修改settings.py里的DATABASES,options默认即可(就是用odbc 13的驱动)

以下是正式环境配置

首先, 在项目目录下的setting.py, 改动这两行:

STATIC_URL = \'static/\'
ALLOWED_HOSTS = [\'sun-pc\']

然后配置httpd.conf
pip install mod_wsgi, 安装好以后, 通过命令行获得3行配置
参考如下配置, 放入到apache的conf

# 装载mod st (版本号根据情况改)
LoadFile "c:/users/administrator/appdata/local/programs/python/python37/python37.dll"
LoadModule wsgi_module "c:/users/administrator/appdata/local/programs/python/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "c:/users/administrator/appdata/local/programs/python/python37"
# 装载mod ed
# 设置要运行Python的目录(与apache下其他正常目录隔开)
WSGIPythonPath D:/ingrid/dj1
# 设置上面这个目录访问时的别名, 以及wsgi配置文件的路径
WSGIScriptAlias /dj1 D:/ingrid/dj1/dj1/wsgi.py application-group=%{GLOBAL}
#设置静态文件路径(前半部分是django生成的路径, 而后半部分的实际文件夹的路径)
Alias /dj1/app1/static D:/ingrid/dj1/app1/static

说明

网上的文档, 配置的都是整个站点只运行python时的配置. 而我上面的配置, 是基于站点已经存在一个网站的情况下,
再单独设置某个文件夹运行python服务. 因此无需设置各种目录权限. 但是必须根据实际情况做修改, 比如要改项目下的settings

关于静态文件路径

静态文件位于app1/static,比如app1/static/app1/1.css,django官方推荐使用{% static \'app1/1.css\' %}来生成路径
在开发模式下django自带的开发服务器会处理生成的路径, 让程序可以访问到静态文件
但是线上使用apache的话,生成的路径必须再加一个别名来实现访问,也就是上文配置文件最后一行
原理就是wsgi模块并不会像开发服务器那样“智能”:当你访问这个路径的时候,由于路径位于dj1下,因此被django接管,但是又不属于urls.py定义过的路径, 因此无法访问
解决方案就是在配置文件内定义别名,强行让apache重新接管该路径,让该路径重新变为“正常”模式(访问路径和实体文件夹的路径一致)

分类:

技术点:

相关文章:

  • 2021-12-29
  • 2021-12-29
  • 2021-12-19
  • 2021-04-18
  • 2022-12-23
  • 2022-01-11
  • 2021-11-20
猜你喜欢
  • 2021-12-05
  • 2021-11-20
  • 2021-12-29
  • 2021-12-19
  • 2022-01-21
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案