windows下 用apache部署的django和apache项目

您的邮件地址:错误详细描述:提交
自强学堂为提供的内容仅用于学习,测试和培训。实例可能为了更容易理解而简化。我们一直对教程,参考手册,在线实例保持修订,但是我们不能保证所有内容全部正确。通过使用本站进行学习随之而来的风险与本站无关。当使用本站时,代表您已接受了本站的使用条款和隐私条款。自强学堂是以学习和分享知识为目的,对任何法律问题及风险不承担任何责任。版权所有,保留一切权利。
自强学堂是用
技术开发的站点,托管在ECS
Copyright &
Powered by 自强学堂 All Rights Reserved.
JavaScriptGraphics编程Server SideWeb数据库XMLJavaScript服务器相关XMLHTML 字符CSS浏览器脚本服务器脚本XML 语言博客分类:
apache基于mod_wsgi配置Django虚拟主机启动(针对不同端口)
(注:CentOS6.2和Windows7都适用)
1. 检查主机名
CentOS:
# hostname
&& Windows:
&&&&&&&&& Doc窗口下执行:hostname
2. 如果主机名不符合要求,修改主机名:
(注:当执行# hostname, 返回的主机名,并不是我们预想的主机名,通俗讲,是我们提供给外网访问的资源地址, 对于局域网,通常使用的是ip访问,所以并不影响局域网)
CentOS6.2下:
步骤一:修改network文件
&&&&&&& # vim /etc/sysconfig/network
&&&&&&&& 修改HOSTNAME=yourhostname
&&&&&&& 参考配置:
&&&&&&& NETWORKING=yes
NETWORKING_IPV6=no
#HOSTNAME=localhost.localdomain
HOSTNAME=yourhostname
步骤二:修改hosts文件
&&&&&& # vim /etc/hosts
&&&&&& 修改 127.0.0.1 localhost.localdomain localhost
&&&&&&&&&& 为 127.0.0.1 localhost.localdomain localhost yourhostname
&&&&&& 参考配置:
&&&&&&&&&& 127.0.0.1 localhost.localdomain localhost yourhostname
::1 localhost6.localdomain6 localhost6
步骤三: 重启系统
3. 下载mod_wsgi
下载地址http://code.google.com/p/modwsgi/
注意下载的版本号
&& 下载后将文件改名为mod_wsgi.so
&& 并放到apache安装目录的modules目录下
&& $APACH_PATH/modules
&& 例如40机器的目录在:/etc/httpd/modules/
4. 修改apache配置文件
例如40机器是在这里/etc/httpd/conf/httpd.conf
# vim /etc/httpd/conf/httpd.conf
文件末尾添加:
LoadModule wsgi_module modules/mod_wsgi.so
# /usr/bigbang/stargazerservice为应用的路径
Include "/usr/bigbang/stargazerservice/apache_port_django_wsgi.conf"
Include "/usr/bigbang/Unicorn/apache_port_django_wsgi.conf"
5. 进入相应的django应用的目录建立apache需要加载的文件
# cd /usr/bigbang/stargazerservice
# vim apache_port_django_wsgi.conf
文本内容:
Listen 8080
&VirtualHost *:8080&
ServerName data
WSGIScriptAlias / "/usr/bigbang/stargazerservice/django.wsgi"
Alias /site_media/ "/usr/bigbang/stargazerservice/site_media/"
&Directory /site_media&
&&&&&&& Order allow,deny
&&&&&&& Allow from all
&/Directory&
&Directory "/usr/bigbang/stargazerservice/apache"&
&&& Order allow,deny
&&& Allow from all
&/Directory&
&/VirtualHost&
&& 还需要新建django.wsgi文件:
&& # vim django.wsgi
&& 文本内容:
&& import os, sys
# Calculate the path based on the location of the WSGI script
apache_configuration = os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)
sys.path.append("/usr/bigbang/stargazerservice")&&&&& # add to python system path
sys.path.append("/usr/bigbang")&&&&&&&&&&&& # add to python system path
os.chdir('/usr/bigbang/stargazerservice')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
同理Unicom这个应用的配置类似,具体的文本为:
apache_port_django_wsgi.conf文本如下:
Listen 8070
&VirtualHost *:8070&
ServerName data
WSGIScriptAlias / "/usr/bigbang/Unicorn/django.wsgi"
Alias /admin_media /usr/lib/python2.6/site-packages/django/contrib/admin/media
&Directory "/usr/bigbang/Unicorn/apache"&
&&& Order allow,deny
&&& Allow from all
&/Directory&
&/VirtualHost&
django.wsgi文本内容如下:
import os, sys
# Calculate the path based on the location of the WSGI script
apache_configuration = os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)
sys.path.append("/usr/bigbang/Unicorn")&&&&&&&& # add to python system path
sys.path.append("/usr/bigbang")
os.chdir('/usr/bigbang/Unicorn')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
6. 做完这步后,还需要修改应用的权限,可以让apache访问
# chown –R apache:apache myapplication_path
7. 重启apache
# service httpd restart
还存在的疑惑:
当我使用# /etc/init.d/httpd restart启动apache的时候,发现Unicom使用的环境好像是stargazer留下来的,所以无法访问,# service httpd restart启动一切正常
对应的这次的stargazerservice和unicom的部署,还需要修改相应的项目下的settings.py文件,将其中TEMPLATE_DIRS 处的“'./templates'”用
“os.path.join(os.path.dirname(__file__),'templates').replace('\\','/'),”代替,逗号一定不能忘记。
浏览: 469847 次
由于Python臭名昭著的GIL问题,OpenERP 6.1以 ...
xiaoyao3857 写道怎么看着一大堆,似乎中间有些东西重 ...
怎么看着一大堆,似乎中间有些东西重复说了吧
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'世界太小,仍没走遍;世界太大,依然偶遇
在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法。
环境搭建 & & & & & & & & & & & & & & & & & & & & & & & & &&
python 2.7.3 (注意最好是32位的,因为Apache目前对64位支持非常不友善,尝试了好多次,64位的太高大上,众多不兼容)
Apache2.2.10 (直接下载apache_2.2.10-win32-x86-no_ssl.msi就行)
Django-1.6.1 (官网下载)
配置思路 & & & & & & & & & & & & & & & & & & & & & & & & &&
1、配置apache的httpd.conf文件
2、配置django相关配置文件
配置过程 & & & & & & & & & & & & & & & & & & & & & & & & &&
其实配置生效针对不同的环境有不同的细节需要处理,网上的方案(包括本篇)都不是一定通用的,只是在某种环境下有效,但总体思路就是配置上述提及的两个配置文件。
部署django项目常用的两个方式是使用mod_python和mod_wsgi两种部署方式,这里我使用的是mod_wsgi。
1、先去网上下载个名叫这个的东西:mod_wsgi-3.4.ap22.win32-py2.7,里面有个文件是mod_wsgi.so,然后把这个copy到apache安装目录的modules文件下(默认安装目录是:C:\Program Files (x86)\Apache Software Foundation\Apache2.2\modules)
下面两个配置中涉及路径的很容易搞错,如果是绝对路径的话要检查自己是否正确。
2、在Django项目根目录下新建两个文件:
django.wsgi:
#coding=utf-8
import sys
import django.core.handlers.wsgi
os.environ['DJANGO_SETTINGS_MODULE'] = 'appops.settings'
app_apth = "D:/OPSAPP/appops"
sys.path.append(app_apth)
application = django.core.handlers.wsgi.WSGIHandler()
apache_django_wsgi.conf:
#Alias / D:/OPSAPP/appops
Alias /favicon.jpg D:/OPSAPP/appops/static/images/favicon.jpg
#WSGIScriptAlias /api "D:/OPSAPP/appops/appapi/handler.py"
#注意,这里在httpd.conf中写过的话这里就不用写了。
WSGIScriptAlias / "D:/OPSAPP/django.wsgi"
WSGIPassAuthorization On
&Directory "D:/OPSAPP/appops/appops"&
Order Deny,Allow
Allow from all
&/Directory&
Alias /static/ D:/OPSAPP/appops/static/
&Directory
D:/OPSAPP/appops/static/ &
Order deny,allow
Allow from all
IndexOptions FancyIndexing
&/Directory&
&Directory
D:/OPSAPP/appops/ &
Order deny,allow
Allow from all
IndexOptions FancyIndexing
&/Directory&
&Directory "D:/OPSAPP"&
Allow from all
&/Directory&
目录结构如下:
3、编辑apache的配置文件httpd.conf(C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf)
中间加上一句:
LoadModule wsgi_module modules/mod_wsgi.so
文件结尾新增下列配置:
Alias /static D:/OPSAPP/appops/static
#这是为了可以通过url来访问static文件
&Location "/static/"&
SetHandler None
&/Location&
&VirtualHost *:80&
#配置虚拟目录
ServerName app.ops.test.com
#ServerName 192.168.18.74
DocumentRoot D:/OPSAPP
WSGIScriptAlias / D:/OPSAPP/django.wsgi
&Directory /&
Order deny,allow
Allow from all
&/Directory&
&Directory /apache&
Allow from all
&/Directory&
&/VirtualHost&
&Directory "D:/OPSAPP/appops/static/"&
#这个一定需要,不然网页样式错误,css没有起作用
Order Deny,Allow
Allow from all
&/Directory&
重启下apache服务基本就OK了。
常见错误 & & & & & & & & & & & & & & & & & & & & & & & & & &&
访问失败时的错误会记录在apache日志里(C:\Program Files (x86)\Apache Software Foundation\Apache2.2\logs),
&1、静态资源不能访问,如css样式错乱等,需要在httpd.conf文件里增加配置:
&Directory
D:/OPSAPP/appops/static/ &
Order deny,allow
Allow from all
IndexOptions FancyIndexing
&/Directory&
2、出现找不到模块的错,如no module named XXX等,主要有两个原因:
1)、路径错了
2)、文件命名跟Django或python内部模块冲突了
阅读(...) 评论()
好好学习天天向上的女少年WINDOWS 7中将DJANGO部署到APACHE WEB SERVER_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
WINDOWS 7中将DJANGO部署到APACHE WEB SERVER
&&WINDOWS 7中将DJANGO部署到APACHE WEB SERVER
阅读已结束,下载本文需要
定制HR最喜欢的简历
你可能喜欢搞了3个小时。综合网上教程,各种坑,终于在win8上搞好了,记录一下:
首先下载软件:我用的是python3.5.2,MSC v.1900对应的是VC14.0 也就是2015编译器,所以:
从这里 www.apachelounge.com/download/ 下载对应版本的Apache2.4,一定要和你的python所对应的VC编译器版本对应,这里我安装的是httpd-2.4.17-win64-VC14.zip,解压完成后在你的电脑添加环境变量,path增加G:\Apache\Apache24\bin。
安装mod_wsgi:网址:www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi,安装和你的python版本对应的版本。这里我选用mod_wsgi-4.4.23+ap24vc14-cp35-cp35m-win_amd64.whl。cmd到你的下载目录,安装:pip3 install mod_wsgi-4.4.23+ap24vc14-cp35-cp35m-win_amd64.whl
下面开始配置:
打开Apache2.4目录下的http.conf,开始修改:
#你的Apache解压路径
ServerRoot "G:\Apache\Apache24"
Listen <span style="color: #7.0.<span style="color: #.1:<span style="color: #00 #修改端口号
ServerName www.example.com:<span style="color: #
DocumentRoot "G:/Apache/Apache24/htdocs"
&Directory "G:/Apache/Apache24/htdocs"&
ScriptAlias /cgi-bin/ "G:/Apache/Apache24/cgi-bin/"
&Directory "G:/Apache/Apache24/cgi-bin"&
AllowOverride None
Options None
Require all granted
&/Directory&
此时启动cmd输入httpd,浏览器访问127.0.0.1:8000,返回It works! 则apache配置成功
此时在http.conf中添加wsgi,并引入你的项目,此时一定要注意,安装完成mod_wsgi后,并没有生成.so文件,因此我们需要手动配置!配置如下:参考http://blog.csdn.net/chao_8023/article/details/。
#添加mod_wsgi.so 模块
LoadFile "c:/users/\济洲/appdata/local/programs/python/python35/python35.dll"
LoadModule wsgi_module "c:/users/济洲/appdata/local/programs/python/python35/lib/site-packages/mod_wsgi/server/mod_wsgi.cp35-win_amd64.pyd"
WSGIPythonHome "c:/users/济洲/appdata/local/programs/python/python35"
配置你的项目:
&打开你的项目,在settings文件里面添加STATIC_ROOT = 'all_statics' (引号里是你定义的名字),并执行python manage.py collecstatic,这样你所有app中静态文件复制到all_statics文件中,才 可&以 在 apache中正常访问。接下来继续在http.conf添加:
#指定静态资源路径
Alias /static/ G:/Anno/all_statics/
&Directory G:/Anno/all_statics&
Require all granted
&/Directory&
#指定newsCollection项目的wsgi.py配置文件路径
WSGIScriptAlias / G:/Anno/Anno/wsgi.py
#指定项目路径
WSGIPythonPath G:/Anno
&Directory G:/Anno/Anno&
&Files wsgi.py&
Require all granted
&/Directory&
开放你的端口,然后在cmd中重新启动httpd,有可能会报错!!!!注意大坑,我是win8系统,路径中含有中文,会引起编码问题,出现找不见pyhon35.dill路径的错误,此时要把httpd.conf文件改为utf8编码格式,重启httpd,完美解决。至此完成!
阅读(...) 评论()

我要回帖

更多关于 apache重启django项目 的文章

 

随机推荐