Freebsd

FreeBSD:如何使用 mod_wsgi 安裝 Django?

  • June 30, 2016

使用 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_httpapachectl restart然後我將accf_http_load =“YES”添加到我的/boot/loader.conf,所以這個更改會持續存在重啟後。 安裝 mod_wsgi

cd /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 在您部署應用程序

時發揮作用。

引用自:https://unix.stackexchange.com/questions/15525