win10环境下配置django2.0.4+Apache2.4+python3.6项目,以及Django静态文件、Apache多项目配置的解决方案(亲测)
1 安装django, Apache,python
要求Apache和python位数一致,比如我的Apache2.4-x86和 python3.6-32位
我的安装位置:
Apache2.4 --- E:\Apache24
python3.6---E:\phthon
django2.0.4 ---E:\python\Lib\site-packages\django(我是用pycharm安装的)
2 配置环境变量(为wsgi的安装做准备):
MOD_WSGI_APACHE_ROOTDIR指向Apache根目录,即E:\Apache24
3 pip install mod_wsgi
安装wsgi会需要visual studio的编译器,我安装是的是vs2017
(如果Apache和python位数不一致会报错,我之前位数不一致,报的是100多个无法解析的外部符号),另外可能还会报错:
找不到Apache24/include/apr_perms_set.h文件,不要慌
新建apr_perms_set.h,
在官网http://apr.apache.org/docs/apr/1.6/apr__perms__set_8h_source.html复制代码于其中,并放入相应文件夹:Apache24/include,再继续安装。
4 安装完wsgi后,根据python安装目录进入E:\python\Scripts
用命令行运行箭头所指的mod_wsgi-express.exe:
mod_wsgi-expressmodule-config
得到3行后续配置所需的代码:
LoadFile "e:/python/python36.dll"
LoadModulewsgi_module "e:/python/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win32.pyd"
WSGIPythonHome "e:/python"
5 Apache的配置
5.1 打开Apache24/conf/httpd.conf:大概在240多行作如下修改:
就是将前面得到的3行代码复制进去,
5.2 因为我是启用了虚拟主机的(最后面也会讲不启用的情况),所以去掉Include conf/extra/httpd-vhosts.conf前面#:
然后来到Apache24/conf/extra/httpd-vhosts.conf,
比如我有两个项目JX,JL分别在
E:/aaProject/PythonProject/JX和E:/aaProject/PythonProject/JL文件夹
各自的静态文件在其根目录下的static文件下。即:
E:/aaProject/PythonProject/JX/static和E:/aaProject/PythonProject/JL/static
作如下修改:
<VirtualHost*:80>
ServerName www.jx.com
#项目wsgi.py文件
WSGIScriptAlias / E:/aaProject/PythonProject/JX/JX/wsgi.py
<DirectoryE:/aaProject/PythonProject/JX/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
#静态文件
Alias /static/ E:/aaProject/PythonProject/JX/static/
<Directory E:/aaProject/PythonProject/JX/static/>
Options FollowSymlinks
AllowOverride none
Require all granted
</Directory>
#项目根目录
DocumentRoot"E:/aaProject/PythonProject/JX"
<Directory"E:/aaProject/PythonProject/JX/">
Options IndexesFollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost*:80>
ServerName www.jl.com
#项目wsgi.py文件
WSGIScriptAlias / E:/aaProject/PythonProject/JL/ JL /wsgi.py
<Directory E:/aaProject/PythonProject/JL />
<Files wsgi.py>
Require all granted
</Files>
</Directory>
#静态文件
Alias /static/ E:/aaProject/PythonProject/JL/static/
<Directory E:/aaProject/PythonProject/JL/static/>
Options FollowSymlinks
AllowOverride none
Require all granted
</Directory>
#项目根目录
DocumentRoot"E:/aaProject/PythonProject/ JL "
<Directory"E:/aaProject/PythonProject/ JL /">
Options IndexesFollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
这时重启Apache然后访问网站的话会报错(服务器内部的错误,6.2解决)
6静态文件的配置
6.1 每个项目的settings.py添加:
(1)'django.contrib.staticfiles',
(2)接着再添加
这里的话,tools 和jianjia是我项目里面的两个不同应用,所以将两个应用的静态目录(在应用根目录下创建static文件夹,即:应用名称/static)都加入到 STATICFILES_DIRS中,
其中BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))),也就是项目的根目录
(3)在项目的根目录添加static文件夹,然后执行 python manage.py collectstatic 就可以将各应用的静态文件夹收集到项目根目录下的static文件夹
(4)静态文件的使用:比如有 项目根目录/应用根目录/static/a.jpg,引用时:{{STATIC_URL}} "a.jpg" 就行了
6.2每个项目的wsgi.py添加:
sys.path.append('E:/aaProject/PythonProject/JX/'),注意是各自项目的根目录
重启Apache,
www.jx.com就是E:/aaProject/PythonProject/JX项目
www.jl.com 就是E:/aaProject/PythonProject/JL项目
不启用虚拟主机的话:
Apache配置跟前面差不多,以E:/aaProject/PythonProject/JX项目为例,只需要在httpd.conf中再添加:
最后别忘了项目中wsgi.py和settings.py的修改
第一次写,望大家批评指正
阅读更多
- 三十八、python学习之Django框架(一):入门,介绍,设计模式,环境搭建,项目创建,基本配置,创建视图,静态文件,路由与反解析,App应用配置
- Django-项目上线后,静态文件配置失效以及404、500页面的全局配置
- Ubuntu下在Python3.6的环境下安装Django以及新建项目
- Linux+Django+Python+Wsgi配置过程 Linux下配置Apache+Mod_Wsgi+Django环境 部署django项目
- python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件
- django中url,静态文件,POST请求的配置 分类: Python 2015-06-01 17:00 789人阅读 评论(0) 收藏
- linux下配置python环境 django创建helloworld项目
- Python(三)Django静态文件配置
- centos下配置nginx+uwsgi部署多站点python以及静态文件的加载
- 使用APACHE部署DJANGO程序的时候如何配置静态文件支持?
- 本地配置环境打开项目出现404/本地wampserver配置伪静态以及php.ini配置
- python环境下django增加读取ini配置文件功能
- 阿里云 配置apache+python+django 环境 适合菜鸟
- 项目配置文件多环境解决方案
- 搭建python2.7环境、python与eclipse配置、以及安装Flask框架,建立web项目
- Python配置Houdini项目环境变量以及集成工具架
- Window环境下Python和Django的安装,以及项目的创建
- win8系统下 配置apache2.4+mod_wsgi4.4+django1.8.6+python3.4
- windows+apache+mod_python配置django运行环境
- apache2.4+python2.7+mod wsgi部署django1.10项目