apache設(shè)置域名綁定 apache域名解析
2024-02-23
更新時(shí)間:2024-02-24 00:14:05作者:未知
Django 提供了通用Web開(kāi)發(fā)模式的高度抽象,提供了頻繁進(jìn)行的編程作業(yè)的快速解決方法,以及為“如何解決問(wèn)題”提供了清晰明了的約定。同時(shí),Django 嘗試留下一些方法,來(lái)讓你根據(jù)需要在framework之外來(lái)開(kāi)發(fā)。
本質(zhì)上來(lái)說(shuō), Django 只不過(guò)是用 Python 編寫(xiě)的一組類庫(kù)。用 Django 開(kāi)發(fā)站點(diǎn)就是使用這些類庫(kù)編寫(xiě) Python 代碼。因此,學(xué)習(xí) Django 的關(guān)鍵就是學(xué)習(xí)如何進(jìn)行 Python 編程并理解 Django 類庫(kù)的運(yùn)作方式。
如果你有Python開(kāi)發(fā)經(jīng)驗(yàn),在學(xué)習(xí)過(guò)程中應(yīng)該不會(huì)有任何問(wèn)題,基本上,Django的代碼并 沒(méi)有使用一些黑色魔法(例如代碼中的欺騙行為,某個(gè)實(shí)現(xiàn)解釋或者理解起來(lái)十分困難)。 對(duì)你來(lái)說(shuō),學(xué)習(xí)Django就是學(xué)習(xí)她的命名規(guī)則和API。
配置思路
1、配置apache的httpd.conf文件
2、配置django相關(guān)配置文件
配置過(guò)程
其實(shí)配置生效針對(duì)不同的環(huán)境有不同的細(xì)節(jié)需要處理,網(wǎng)上的方案(包括本篇)都不是一定通用的,只是在某種環(huán)境下有效,但總體思路就是配置上述提及的兩個(gè)配置文件。
部署django項(xiàng)目常用的兩個(gè)方式是使用mod_python和mod_wsgi兩種部署方式,這里我使用的是mod_wsgi。
1、先去網(wǎng)上下載個(gè)名叫這個(gè)的東西:mod_wsgi-3.4.ap22.win32-py2.7,里面有個(gè)文件是mod_wsgi.so,然后把這個(gè)copy到apache安裝目錄的modules文件下(默認(rèn)安裝目錄是:C:/Program Files (x86)/Apache Software Foundation/Apache2.2/modules)
下面兩個(gè)配置中涉及路徑的很容易搞錯(cuò),如果是絕對(duì)路徑的話要檢查自己是否正確。
2、在Django項(xiàng)目更目錄下新建兩個(gè)文件:
django.wsgi:
#coding=utf-8
import os
import sys
import django.core.handlers.wsgi
os.environ['DJANGO_SETTINGS_MODULE'] = 'appops.settings'
app_apth = "D:/OPSAPP/appops"
sys.path.append(app_apth)
application = django.core.handlers.wsgi.WSGIHandler()
apache_django_wsgi.conf:
#Alias / D:/OPSAPP/appops
Alias /favicon.jpg D:/OPSAPP/appops/static/images/favicon.jpg
#WSGIScriptAlias /api "D:/OPSAPP/appops/appapi/handler.py" #注意,這里在httpd.conf中寫(xiě)過(guò)的話這里就不用寫(xiě)了。
WSGIScriptAlias / "D:/OPSAPP/django.wsgi"
WSGIPassAuthorization On
<Directory "D:/OPSAPP/appops/appops">
Order Deny,Allow
Allow from all
</Directory>
Alias /static/ D:/OPSAPP/appops/static/
<Directory D:/OPSAPP/appops/static/ >
Order deny,allow
Allow from all
IndexOptions FancyIndexing
</Directory>
<Directory D:/OPSAPP/appops/ >
Order deny,allow
Allow from all
IndexOptions FancyIndexing
</Directory>
<Directory "D:/OPSAPP">
Allow from all
</Directory>
目錄結(jié)構(gòu)如下:
3、編輯apache的配置文件httpd.conf(C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/httpd.conf)
中間加上一句:
LoadModule wsgi_module modules/mod_wsgi.so
文件結(jié)尾新增下列配置:
Alias /static D:/OPSAPP/appops/static #這是為了可以通過(guò)url來(lái)訪問(wèn)static文件
<Location "/static/">
SetHandler None
</Location><br>
<VirtualHost *:80> #配置虛擬目錄
ServerName app.ops.test.com
#ServerName 192.168.18.74
DocumentRoot D:/OPSAPP
WSGIScriptAlias / D:/OPSAPP/django.wsgi
<Directory />
Order deny,allow
Allow from all
</Directory>
<Directory /apache>
Allow from all
</Directory>
</VirtualHost>
<Directory "D:/OPSAPP/appops/static/"> #這個(gè)一定需要,不然網(wǎng)頁(yè)樣式錯(cuò)誤,css沒(méi)有起作用
Order Deny,Allow
Allow from all
</Directory>
重啟下apache服務(wù)基本就OK了。
常見(jiàn)錯(cuò)誤
訪問(wèn)失敗時(shí)的錯(cuò)誤會(huì)記錄在apache日志里(C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs),
1、靜態(tài)資源不能訪問(wèn),如css樣式錯(cuò)亂等,需要在httpd.conf文件里增加配置:
<Directory D:/OPSAPP/appops/static/ >
Order deny,allow
Allow from all
IndexOptions FancyIndexing
</Directory>
2、出現(xiàn)找不到模塊的錯(cuò),如no module named XXX等,主要有兩個(gè)原因:
1)、路徑錯(cuò)了
2)、文件命名跟Django或python內(nèi)部模塊沖突了