您好,登錄后才能下訂單哦!
今天準備想把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版本問題,對,他們也是一對的,
這樣再回過頭來看看我們的主頁,是不是跟之前的一模一樣了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。