FreeBSD:如何使用 mod_wsgi 安裝 Django?
使用 FreeBSD 8.2-RELEASE。我想弄亂 Django,我想在我的 freebsd 系統上進行工作設置。我的理解是我需要安裝 python、apache、mod_wsgi 和 django。Django的手冊部分討論的是 mod_python 而不是 mod_wsgi,我相信 mod_wsgi 是推薦的方法。
我的系統上已經從軟體包中安裝了以下內容:
apache-2.2.17_1 python26-2.6.6
我該怎麼做才能讓 django 與 apache 一起工作?有教程嗎?
好的,我主要在以下說明的幫助下完成了這項工作:http ://code.google.com/p/modwsgi/wiki/InstallationOnFreeBSD
這是我所做的(作為root使用者):
重新安裝阿帕奇
我已經從二進制包安裝了 apache22,但顯然包版本是在沒有執行緒支持的情況下編譯的,你需要 mod_wsgi 的執行緒。所以我做了:
pkg_delete apache-2.2.17_1
。這抱怨php依賴於apache,所以我做了:pkg_delete php5-5.3.5
。然後我又做pkg_delete apache-2.2.17_1
了一次,效果很好。然後我做了cd /usr/ports/www/apache22
然後make config
我檢查了複選框"[X] THREADS Enable threads support in APR"
然後。啟動 apache 工作,但我得到一個錯誤“make``make install
$$ warn $$(2)No such file or directory: Failed to enable the ‘httpready’ Accept Filter"。我在網上搜尋並通過doing修復了它
kldload accf_http
,apachectl restart
然後我將accf_http_load =“YES”添加到我的/boot/loader.conf,所以這個更改會持續存在重啟後。 安裝 mod_wsgicd /usr/ports/www/mod_wsgi3 make make install
這會自動修改我的 httpd.conf 文件以添加 loadmodule 行
重新安裝php
(不是絕對必要的,但因為我必須在上面解除安裝它)
cd /usr/ports/lang/php5 make config (and set any options desired) make make install
測試 mod_wsgi 安裝
按照http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide中的說明進行操作。我在文件根目錄中創建了一個名為 test.wsgi 的文件,其中包含以下內容:
def application(environ, start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output]
我在 httpd.conf 的末尾添加了以下行:
WSGIScriptAlias /myapp /usr/home/myusername/www/wsgitest/test.wsgi
(在我的測試盒上,我在 /usr/home/myusername/www 有一個文件根目錄的 apache 設置)。然後我做了apachectl restart。然後我在瀏覽器中訪問http://localhost/myapp,瞧!我看到了“你好世界”。
安裝點子
cd /usr/ports/devel/py-pip make make install
刷新了我的外殼,所以路徑會更新。
安裝 django
pip install django
(這讓我 django 版本 1.3 耶!)確認 django 安裝
python import django
創建 django 測試應用程序
我為我的 django test 創建了一個新文件夾
mkdir /usr/home/myusername/www/djangotest
。然後django-admin.py startproject mysite
創建 django wsgi 文件
創建了一個新文件 /usr/home/myusername/www/djangotest/django.wsgi ,其內容如下:
import os import sys path = '/usr/home/myusername/www/djangotest' if path not in sys.path: sys.path.append(path) os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
編輯 httpd.conf
WSGIScriptAlias /djangotest /usr/home/myusername/www/djangotest/django.wsgi apachectl restart
在瀏覽器中訪問http://locahost/djangotest。有用!
編輯 httpd-vhosts.conf(可選)
現在讓它作為虛擬主機的一部分工作。註釋掉 httpd.conf 中的 WSGIScriptAlias 行。然後添加類似:
<VirtualHost *> ServerName mytest.whatever DocumentRoot /usr/home/myusername/www/djangotest WSGIScriptAlias / /usr/home/myusername/www/djangotest/django.wsgi </VirtualHost> apachectl restart
配置 hosts 文件後,在瀏覽器中訪問http://mytest.whatever。有用!
你不必安裝任何特殊的東西來弄亂 Django。執行調試伺服器所需的唯一條件是:
- Python
- Django 本身
- 如果你想要 SQLite 以外的東西,你的數據庫的 Python 模組
你已經有了 Python,所以我建議:
easy_install pip pip install django
然後按照Django 教程進行操作。mod_wsgi 在您部署應用程序
時發揮作用。