溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mac配置 Django 1.7.1 +mod_wsgi 4

發(fā)布時(shí)間:2020-06-28 10:56:56 來源:網(wǎng)絡(luò) 閱讀:1607 作者:warm200 欄目:系統(tǒng)運(yùn)維

今天準(zhǔn)備想把django配置到apache 服務(wù)器上,那個(gè)糟心。??戳藥讉€(gè)博客 要么就是草草一筆,要么就是不帶版本號(hào),搞得 暈頭轉(zhuǎn)向 最后我還是自己看官方文檔弄明白了,這里寫一個(gè)稍微詳細(xì)一點(diǎn)的總結(jié),適合不太懂的小白,因?yàn)槲揖褪?。。。?!? -!

再次聲明我現(xiàn)在的版本:

Django 1.7.1 +mod_wsgi 4.4.7(非daemon) +Apache/2.2.26
mac 我沒升級(jí) Yosomite 新系統(tǒng),所以版本號(hào)是 10.9.5

apache不用我?guī)湍惆惭b了吧,貌似mac已經(jīng)原裝了(如果說錯(cuò)了別拍我。。此步驟跳過,后期會(huì)講到配置apache)

mac  第一件事 就是去裝xcode, 裝xcode干嘛呢 是為了安裝一個(gè)叫Commandline tool的工具,

在哪? xcode -》 prefrence-> download   你看到?jīng)]有? 

啥?沒看到? 那你在命令行里面輸入  

xcode-select --install

會(huì)自動(dòng)彈出來個(gè)方框讓你安裝剛才我說的那個(gè)tool,好了吧,等他安裝完!


第二步: 安裝 homebrew

我寫文章這個(gè)時(shí)間 已經(jīng)不像是之前幾個(gè)博客里面的安裝方法 

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

用這個(gè),直接下載安裝

第三部:安裝 mod_wsgi,這回就用到剛才安裝的brew了,

brew install homebrew/apache/mod_wsgi

可見 為了僅僅安裝一個(gè) mod_wsgi 繞了多大一個(gè)彎,嘿嘿不用去追究他的原理,只要咱們安裝成功了,供咱們使用完成自己的任務(wù)就可以了,簡單來說這玩意就是用來 在配置完了Apache之后可以使用python寫的第三方web application成功運(yùn)行在Apache的一個(gè)middleware,所以說可以當(dāng)做是一個(gè)application 和Apache的一個(gè)橋梁,后期配置文件路徑啥的都靠他了。


第四步:

現(xiàn)在該有的都有了,該去配置文件了


 apache2 中的 httpd.conf  這個(gè)是apache的很重要的一個(gè)配置文件,我的路徑在

/etc/apache2/httpd.conf

怎么去?我就不告訴你是打開Finder然后Command+Shift + G

該寫點(diǎn)啥呢,你說現(xiàn)在咱們橋梁也有了 兩邊的django 和Apache也有了剩下的就是把橋放在兩者之間,沒錯(cuò),搭橋!


一方面搭剛才安裝的 mod_wsgi 一方面搭我們的django

先來mod_wsgi ,打開上面那個(gè) httpd.conf文件,在最后面,加上怎么一行先

LoadModule wsgi_module /usr/local/Cellar/mod_wsgi/4.4.7/libexec/mod_wsgi.so

哦!可以理解成為這個(gè)讓Apache把剛才下載的mod_wsgi 文件加載進(jìn)來吧,沒錯(cuò)!

至于說為什么是

/usr/local

這個(gè)路徑呢?你安裝的適合人家就放在那了你能怎么的吧,引過來就好了!

然后??!再加入一行

WSGIPythonPath /Library/WebServer/Documents/my2site

可以看出來 后面的

/Library/WebServer/Documents/my2site

這個(gè)就是你用startproject時(shí)候創(chuàng)建的根目錄了,也就是整個(gè)站點(diǎn)的根目錄了找出來直接貼在后面,這個(gè)的用處可以理解為 可以讓Apache找到你的django的根目錄,怎么樣,橋搭上了吧?對(duì)!

但是還缺少東西,一個(gè)最關(guān)鍵的文件 wsgi.py ,創(chuàng)建django工程項(xiàng)目的時(shí)候已經(jīng)自動(dòng)創(chuàng)建了這個(gè)文件,我們只需要像上面那樣給他引進(jìn)來,例如我的是

WSGIScriptAlias / /Library/WebServer/Documents/my2site/my2site/wsgi.py

這里發(fā)現(xiàn) 最中間有個(gè) /  這個(gè)是干嘛的。  他是你的的根目錄!也就是說的首頁地址,像是這樣的話我的主業(yè)就是 127.0.0.1 如果我把這個(gè) / 換成 /app 那我的首頁是什么??  你答對(duì)了。。


緊接著要寫這樣一句話

<Directory /Library/WebServer/Documents/my2site/my2site/>
<Files wsgi.py>
Allow from all
Order deny,allow
</Files>
</Directory>

他的作用就是讓Apache 可以讀取你剛才引入的wsgi.py,所以他倆是成雙成對(duì)噠!

 注意:因?yàn)榈牡腶pache的版本是 2.2.26  是小于2.4版本的,所以我用了這兩行

Allow from all
Order deny,allow

如果你是高于2.4版本的Apache, 你要把這兩行替換成一行

Require all granted

OK!


這樣就算把橋搭好了,

去看看首頁應(yīng)該會(huì)顯示了,,但是你會(huì)發(fā)現(xiàn)我們很多的靜態(tài)文件已經(jīng)顯示不出來了,這是因?yàn)閐jango已經(jīng)不負(fù)責(zé)關(guān)聯(lián)你的static文件路徑了,需要Apache來配置,怎么配置?聯(lián)想到剛才咱們都引入了wsgi.py文件的經(jīng)驗(yàn) 我們一樣的引入static的根目錄,


就是關(guān)鍵字不太一樣 這次我們用Alias

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

static就是 settings里面的 STATIC_URL 后面那個(gè)就是他的真實(shí)目錄拉!

別忘記要給Apache訪問文件的權(quán)利哦!

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

還是注意Apache版本問題,對(duì),他們也是一對(duì)的,

這樣再回過頭來看看我們的主頁,是不是跟之前的一模一樣了

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI