设为首页 收藏本站
查看: 394|回复: 0

[经验分享] mac配置 Django 1.7.1 +mod_wsgi 4.4.7(非daemon) +Apache/2.2.26 (Unix)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-2-28 09:27:27 | 显示全部楼层 |阅读模式
今天准备想把django配置到apache 服务器上,那个糟心。。看了几个博客 要么就是草草一笔,要么就是不带版本号,搞得 晕头转向 最后我还是自己看官方文档弄明白了,这里写一个稍微详细一点的总结,适合不太懂的小白,因为我就是。。。。。- -!
再次声明我现在的版本:
Django 1.7.1 +mod_wsgi 4.4.7(非daemon) +Apache/2.2.26mac 我没升级 Yosomite 新系统,所以版本号是 10.9.5
apache不用我帮你安装了吧,貌似mac已经原装了(如果说错了别拍我。。此步骤跳过,后期会讲到配置apache)
mac  第一件事 就是去装xcode, 装xcode干嘛呢 是为了安装一个叫Commandline tool的工具,
在哪? xcode -》 prefrence-> download   你看到没有?
啥?没看到? 那你在命令行里面输入  
xcode-select --install
会自动弹出来个方框让你安装刚才我说的那个tool,好了吧,等他安装完!

第二步: 安装 homebrew
我写文章这个时间 已经不像是之前几个博客里面的安装方法
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
用这个,直接下载安装
第三部:安装 mod_wsgi,这回就用到刚才安装的brew了,
brew install homebrew/apache/mod_wsgi
可见 为了仅仅安装一个 mod_wsgi 绕了多大一个弯,嘿嘿不用去追究他的原理,只要咱们安装成功了,供咱们使用完成自己的任务就可以了,简单来说这玩意就是用来 在配置完了Apache之后可以使用python写的第三方web application成功运行在Apache的一个middleware,所以说可以当做是一个application 和Apache的一个桥梁,后期配置文件路径啥的都靠他了。

第四步:
现在该有的都有了,该去配置文件了

apache2 中的 httpd.conf  这个是apache的很重要的一个配置文件,我的路径在
/etc/apache2/httpd.conf
怎么去?我就不告诉你是打开Finder然后Command+Shift + G
该写点啥呢,你说现在咱们桥梁也有了 两边的django 和Apache也有了剩下的就是把桥放在两者之间,没错,搭桥!

一方面搭刚才安装的 mod_wsgi 一方面搭我们的django
先来mod_wsgi ,打开上面那个 httpd.conf文件,在最后面,加上怎么一行先
LoadModule wsgi_module /usr/local/Cellar/mod_wsgi/4.4.7/libexec/mod_wsgi.so
哦!可以理解成为这个让Apache把刚才下载的mod_wsgi 文件加载进来吧,没错!
至于说为什么是
/usr/local
这个路径呢?你安装的适合人家就放在那了你能怎么的吧,引过来就好了!
然后!!再加入一行
WSGIPythonPath /Library/WebServer/Documents/my2site
可以看出来 后面的
/Library/WebServer/Documents/my2site
这个就是你用startproject时候创建的根目录了,也就是整个站点的根目录了找出来直接贴在后面,这个的用处可以理解为 可以让Apache找到你的django的根目录,怎么样,桥搭上了吧?对!
但是还缺少东西,一个最关键的文件 wsgi.py ,创建django工程项目的时候已经自动创建了这个文件,我们只需要像上面那样给他引进来,例如我的是
WSGIScriptAlias / /Library/WebServer/Documents/my2site/my2site/wsgi.py
这里发现 最中间有个 /  这个是干嘛的。  他是你的的根目录!也就是说的首页地址,像是这样的话我的主业就是 127.0.0.1 如果我把这个 / 换成 /app 那我的首页是什么??  你答对了。。

紧接着要写这样一句话
<Directory /Library/WebServer/Documents/my2site/my2site/><Files wsgi.py>Allow from allOrder deny,allow</Files></Directory>
他的作用就是让Apache 可以读取你刚才引入的wsgi.py,所以他俩是成双成对哒!
注意:因为的的apache的版本是 2.2.26  是小于2.4版本的,所以我用了这两行
Allow from allOrder deny,allow
如果你是高于2.4版本的Apache, 你要把这两行替换成一行
Require all granted
OK!

这样就算把桥搭好了,
去看看首页应该会显示了,,但是你会发现我们很多的静态文件已经显示不出来了,这是因为django已经不负责关联你的static文件路径了,需要Apache来配置,怎么配置?联想到刚才咱们都引入了wsgi.py文件的经验 我们一样的引入static的根目录,

就是关键字不太一样 这次我们用Alias
1
Alias /static/ /Library/WebServer/Documents/my2site/polls/statics_file/



static就是 settings里面的 STATIC_URL 后面那个就是他的真实目录拉!
别忘记要给Apache访问文件的权利哦!
1
2
3
4
<Directory /Library/WebServer/Documents/my2site/polls/statics_file>
Allow from all
Order deny,allow
</Directory>



还是注意Apache版本问题,对,他们也是一对的,
这样再回过头来看看我们的主页,是不是跟之前的一模一样了


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-42811-1-1.html 上篇帖子: 如何配置Dnsmasq 来加速局域网内服务器域名解析 下篇帖子: Linux日常工作中常用快捷右键脚本(主要是android应用)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表