windows下apache部署django项目个人总结(备查)
来源:互联网 发布:java访问控制修饰符 编辑:程序博客网 时间:2024/06/05 07:50
// 另一个账号里两年前写的,搬过来合到一个账号里
要了我的亲命了,配了两三次apache上的django项目了,还是有一些意外的bug,拣出来几个还记得的bug备案,方便下次查询。
各种查资料,网络上的文章大多对 VirtualHost 没什么说明,导致配置到这个地方总会因为一些理解上的偏差出问题。
按照网络上的情景部署django项目到apache上,因为有多个项目并存在这台服务器上,所以需要使用 VirtualHost 对不同的项目进行划分,这个地方貌似也可以在一个host下划分,具体没有深入研究,之后再关注,先总结分 VirtualHost 下部署项目。
下载
mysql-python :点击打开链接
mod_wsgi.so:点击打开链接
python由于我下的版本有点多,结果造成混淆了,装乱了,导致配置时候有些意外,比如两个程序运行在不同的版本python上,有的python没安装django,造成问题,还不宜发现,django默认安装在最新的python上面,请注意
django就下载gz那个包就好,然后python install.py install安装
1、遇到的一个很重要的问题 import django.core.handlers.wsgi 这个东西找不到
场景:这个问题是apache的log中显示的,如果restart方式重启,不会报这个问题,先stop,再start就会报出来
解决:这个地方具体原因没有细究,查资料可能是 mod_wsgi.so 这个文件和 apache 或者 python 的版本不对应产生的问题,在官网下载匹配版本的mod_wsgi.so,然后放入Apache下面的modules目录,千万注意名字要与配置apache配置文件中的名字一致,否则会很纳闷问题发生在了哪。apache配置文件httpd.conf中添加的对应内容为:LoadModule wsgi_module modules/mod_wsgi.so 下载地址:http://code.google.com/p/modwsgi/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+Size+DownloadCount
由于版本比较多,结果没注意运行在了一个没安装django的python上,报的错跟上面的好像是一样的,说是import 不到wsgi,安装django就好,如果该版本python不是最新的,还要重装一下该版本python,再安装django
还有一个问题,可能比如最新装了python2.7.6,但是实际却不一定运行在了2.7.6上,这个看报错里面到底是用的哪个版本,然后考虑这个版本python是否成功安装了django,然后wsgi.so是否匹配。哎,早知道就先删除2.7.5,再安装2.7.6了
2、apache配置文件中的配置
目录在apache下面的conf文件夹,http.conf就是
2.1 首先记得加上1中的mod_wsgi.so引用,注意同名
2.2 对 / 这个目录权限的设置,某些场景会有访问受限的提示,貌似返回的是403
参照如下设置
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
#2014.2.12 andyxzhang 注释掉
#Deny from all
</Directory>
2.3 设置 VirtualHost 有三点关键,一个是打开对virtualhost的引用,默认是注释掉的
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
当时纳闷为啥配置好了,还是404,不能访问,搞了半天是因为没开这个,太稀里糊涂了
还有就是千万记得加监听 Listen 8080 ,8080是我设置的VirtualHost
默认是监听了80端口,直接访问localhost就可以进入,但是Virtual不能设置80,会有一些冲突,造成报错,也可以修改配置,Virtual设置成80,不过具体涉及到的内容我没研究,前面部署的一台远程服务器,VirtualHost坚挺的就是80,如何实现的不冲突,没深究,这次也没实现
下面是设置VirtualHost
NameVirtualHost *:8080
ErrorDocument 404 /404.html
<VirtualHost *:8080>
#WSGIScriptAlias /msgpresstest E:\root\website\MsgPressTest\MsgPressTest\wsgi.py
#setting.wsgi名字可以随便起,但是要保持一致
#/msgpresstest 就是访问时的相对url
WSGIScriptAlias /msgpresstest "E:/root/website/MsgPressTest/setting.wsgi"
#添加访问目录的权限
<Directory "E:/root/website/MsgPressTest/MsgPressTest">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
#可能不识别html或者python内的一些目录,这样修改,好像也能在setting.wsgi还是wsgi.py中实现,太累了没尝试,稍后尝试了再补充
Alias /static/ "E:/root/website/MsgPressTest/static/"
<Directory "E:/root/website/MsgPressTest/static/">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
3、配置wsgi.py的时候还发生了一起杯具,报了一个稀奇古怪的错误,具体忘了
原因是下面语句中的引号用的是中文的,非英文的,没识别,这个问题的发现是因为巧合,在一个一个翻看的时候发现引号用错了,好像因为是复制来的,万恶的字符编码格式。这个问题应该可以在apache的log文件中发现,log目录下的error.log
sys.path.append('E:\root\website\MsgPressTest\MsgPressTest')
sys.path.append('E:\root\website\MsgPressTest\MsgPressTest\MsgPressTest')
为了以后方便配置,把wsgi.py和setting.wsgi贴出来备份
wsgi.py
import os
# root_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
# sys.path.insert(0, os.path.abspath(os.path.join(root_path, 'firstdj')))
# sys.path.insert(0, root_path)
import sys
sys.stdout = sys.stderr
from os.path import abspath, dirname, join
from django.core.handlers.wsgi import WSGIHandler
sys.path.insert(0, abspath(join(dirname(__file__), "../")))
sys.path.append('E:\root\website\MsgPressTest\MsgPressTest')
sys.path.append('E:\root\website\MsgPressTest\MsgPressTest\MsgPressTest')
os.environ["DJANGO_SETTINGS_MODULE"] = "MsgPressTest.settings" #your settings module
application = WSGIHandler()
setting.wsgi
import os
import sys
import django.core.handlers.wsgi
sys.path.append(r'E:/root/website/MsgPressTest')
os.environ['DJANGO_SETTINGS_MODULE'] = 'MsgPressTest.settings'
application = django.core.handlers.wsgi.WSGIHandler()
同时需要注意上面两个文件所在目录
0 0
- windows下apache部署django项目个人总结(备查)
- windows下apache部署django项目个人总结(备查)
- windows+Apache部署django项目
- windows + Apache + mod_wsgi 部署发布Django项目
- Django 项目部署(apache)
- Apache部署django项目方法总结
- windows环境下部署django mod_wsgi apache
- Windows下 Django部署到Apache
- windows 下 apache 部署 django python3.6
- 部署Django项目到Apache服务器(下)
- windows Apache 部署 django
- Apache部署Django项目
- Apache部署django项目
- Apache部署django项目
- Apache部署django项目
- Apache部署django项目
- 【Django】 Windows下使用Apache+mod_wsgi部署Django
- 在apache服务器上部署两个django项目总结
- 移位
- UVA 1349 Optimal Bus Route Design 最小费用流+拆点
- android static对内存的影响
- N皇后问题
- FaceBook/infer-infer工作流
- windows下apache部署django项目个人总结(备查)
- 游戏编程入门
- 学习七十一雾央MFC游戏心得,初体验(七)
- MySQL系列,第1部分:Mysql简介
- 大小端
- 英语词典小程序
- Android开发Bitmap在Native层与Java层内存的两种生成方式
- Java中出现异常:Syntax error on token(s), misplaced construct(s)
- 我们的游戏世界(背包【仓库】,交易,任务,简单经济系统,装备)实现(基于仙剑demo聊聊游戏世界)第三篇谈谈装备