mac配置 Django 1.7.1 +mod_wsgi 4.4.7(非daemon) +Apache/2.2.26 (Unix)

今天准备想把django配置到apache 服务器上,那个糟心。。看了几个博客 要么就是草草一笔,要么就是不带版本号,搞得 晕头转向 最后我还是自己看官方文档弄明白了,这里写一个稍微详细一点的总结,适合不太懂的小白,因为我就是。。。。。- -!

再次声明我现在的版本:

Django 1.7.1 +mod_wsgi 4.4.7(非daemon) +Apache/2.2.26
mac 我没升级 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 all
Order deny,allow
</Files>
</Directory>

他的作用就是让Apache 可以读取你刚才引入的wsgi.py,所以他俩是成双成对哒!

 注意:因为的的apache的版本是 2.2.26  是小于2.4版本的,所以我用了这两行

Allow from all
Order deny,allow

如果你是高于2.4版本的Apache, 你要把这两行替换成一行

Require all granted

OK!


这样就算把桥搭好了,

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


就是关键字不太一样 这次我们用Alias

Alias /static/ /Library/WebServer/Documents/my2site/polls/statics_file/

static就是 settings里面的 STATIC_URL 后面那个就是他的真实目录拉!

别忘记要给Apache访问文件的权利哦!

<Directory /Library/WebServer/Documents/my2site/polls/statics_file>
Allow from all
Order deny,allow
</Directory>

还是注意Apache版本问题,对,他们也是一对的,

这样再回过头来看看我们的主页,是不是跟之前的一模一样了

本文出自 “我是小小程序员” 博客,请务必保留此出处http://wallacemu.blog.51cto.com/2350505/1615638

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。