歡迎回來(lái)杂伟,愿豬神保佑你~
在上一篇中,我們安裝了mod_wsgi模塊仍翰,并寫(xiě)了一個(gè)小程序來(lái)驗(yàn)證我們的WSGI工作正常赫粥。在本篇中,我們將安裝Django,并建立一個(gè)簡(jiǎn)單的網(wǎng)站來(lái)證明我的們的搭建是成功的予借。
步驟一: 安裝Django
使用pip即可安裝越平,命令十分簡(jiǎn)單频蛔,看上去一切順利。
但是秦叛,等等晦溪, 這是什么?挣跋!
原來(lái)三圆,系統(tǒng)在提示我pip不是最新的,建議更新避咆≈廴猓可是我剛剛安裝的pip啊,為什么剛才你不順便給我安裝成最新的查库?好在django已經(jīng)安裝成功了(藍(lán)框里面的提示信息),我們先干正事路媚,看看django是不是真的安裝成功了。
系統(tǒng)也是好意嘛樊销,我們就順帶更新下pip吧~
步驟二: 使用Django建立一個(gè)web-site
我們將web-site的文件存在哪個(gè)文件夾呢整慎?為了方便,減少討論分支围苫,這里我繼續(xù)使用【/var/www/】這個(gè)文件夾院领。我們先切換到這個(gè)文件夾,回顧一下里面有哪些內(nèi)容够吩。
注意比然,我們現(xiàn)在的位置是【/var/www/】目錄!我們使用django-admin命令來(lái)新建一個(gè)項(xiàng)目(project)周循,名字就叫【web2】吧强法。
這里要注意,我們的目錄結(jié)構(gòu)湾笛!django在【/var/www/】目錄下面新建了一個(gè)【web2】目錄饮怯,并且,在【web2】目錄里面嚎研,還有一個(gè)同樣名字的【web2】目錄蓖墅,不要搞混了!A侔纭论矾!
這么看是不是有些亂?我們使用一個(gè)工具杆勇,更換一種視角來(lái)看目錄結(jié)構(gòu)贪壳。首先安裝這個(gè)工具。
命令的使用很簡(jiǎn)單蚜退,tree~注意下圖中:
1. 我們所在的目錄是【/var/www】
2. 在tree命令的輸出中闰靴,最左上角的那個(gè)【.】代表當(dāng)前目錄彪笼,也就是【/var/www】
3. tree命令展示的是,以當(dāng)前目錄為根目錄(root-dir)的目錄結(jié)構(gòu)
這個(gè)視角是不是清晰多了蚂且?【web2】目錄下配猫,確實(shí)有一個(gè)同名的【web2】目錄對(duì)么?記住這個(gè)目錄關(guān)系杏死,在后面的時(shí)候是要用到的~~
步驟三:定位Django給出的wsgi入口
再次章姓,仔細(xì)觀察tree給出的目錄結(jié)構(gòu):
有沒(méi)有注意到,Django為我們建立了一個(gè)【wsgi.py】文件识埋,這個(gè)就是它自動(dòng)為我們提供的【web2】的wsgi入口。
對(duì)比我們之前創(chuàng)建的【simple.wsgi】零渐,可以發(fā)現(xiàn)窒舟,他們的后綴名不一樣!是的诵盼,你get到了一個(gè)知識(shí)點(diǎn):wsgi的入口可以是wsgi后綴的惠豺,也可以是py后綴的!
步驟四: 修改配置文件风宁,指向新的wsgi入口
首先洁墙,我們切換到Apache的配置目錄;然后用我們新入手的工具【tree】瞧瞧目錄結(jié)構(gòu)戒财;最后热监,修改我們的老朋友【000-default.conf】
我們?cè)谂渲梦募校瑓⒄罩凹尤氲膬?nèi)容饮寞,增加對(duì)新的wsgi入口的定義孝扛。
和之前的內(nèi)容做對(duì)比,會(huì)發(fā)現(xiàn)主要修改了http路徑和文件夾路徑而已幽崩。
接下來(lái)苦始,我們啟用(enable)修改后的配置,并重新啟動(dòng)Apache服務(wù)慌申;然后去看看他的日志文件都說(shuō)了啥陌选。
現(xiàn)在打開(kāi)瀏覽器,訪問(wèn)【http://localhost/pig】蹄溉,告訴我你看到了啥咨油?是不是錯(cuò)誤?
好吧柒爵,我們?nèi)タ纯村e(cuò)誤日志里都說(shuō)了什么臼勉。
這個(gè)【web2】看上去有些眼熟,可是那個(gè)【settings】是什么鬼餐弱?再把我們的新工具【tree】拉出來(lái)~
嗯宴霸,在內(nèi)層的【web2】目錄里面囱晴,確實(shí)有一個(gè)叫做【settings.py】的文件,難道這個(gè)路徑結(jié)構(gòu)和【wsgi.py】有什么關(guān)系瓢谢?
查看【wsgi.py】的內(nèi)容畸写,看來(lái)還真是有點(diǎn)關(guān)系~看上去是將某個(gè)東西賦值給了另外一個(gè)東西~但這只是一篇簡(jiǎn)單的教程而已,豬神有必要玩得這么大么氓扛?枯芬!
關(guān)于背后的各種邏輯,豬神顯然不想玩那么大~既然他需要某個(gè)值采郎,我們就給他某個(gè)值千所!~
步驟五: 配置環(huán)境變量
先去看看Apache的配置文件夾中,都有什么內(nèi)容蒜埋。
那個(gè)【sites-available】是不是很眼熟淫痰?之前我們多次修改它里面的【000-default.conf】。但這次我們不找他整份,我們要找的是【apache2.conf】待错!
編輯【apache2.conf】,定位到文件的最后一樣烈评,看上去是這個(gè)樣子:
插入一行內(nèi)容火俄,如下:
其中的【W(wǎng)SGIPythonPath】是告訴Apache,在需要尋找一個(gè)Python模塊的時(shí)候讲冠,除了現(xiàn)有的路徑瓜客,也去【/var/www/web2】看看~
重新啟動(dòng)Apache服務(wù)器,在瀏覽器中訪問(wèn)【127.0.0.1/pig】
錯(cuò)誤就是404竿开,但是系統(tǒng)給出的信息還是挺多的:
1. URLconf .... in web2.urls忆家,用過(guò)Django的同學(xué)一定知道這是怎么回事了
2. ^admin/,看上去這個(gè)單詞好熟悉~
3. DEBUG = True就會(huì)顯示這風(fēng)格德迹,等我真正部署的時(shí)候可不希望讓別人知道這么多芽卿,到時(shí)候我要去改掉它!
去看看胳搞,Apache日志里面說(shuō)了些什么
找不到【/pig】卸例,那么能找到啥呢?對(duì)了肌毅,那個(gè)【admin】好使不筷转?
嗯,雖然布局很丑悬而,但那熟悉的味道是Django!這說(shuō)明呜舒,我們部署成功,通了~~~
在下一篇中笨奠,我們將繼續(xù)完善我們的【web2】,加入我們自己定義的頁(yè)面袭蝗。