FreeBSD: mod_wsgi를 사용하여 Django를 설치하는 방법은 무엇입니까?

FreeBSD: mod_wsgi를 사용하여 Django를 설치하는 방법은 무엇입니까?

FreeBSD 8.2-RELEASE를 사용합니다. 나는 Django를 시험해보고 내 freebsd 시스템에서 작동하는 설정을 얻고 싶습니다. 내 이해는 Python, Apache, mod_wsgi 및 django를 설치해야 한다는 것입니다. 이것Django 매뉴얼 섹션mod_wsgi보다는 mod_python에 대해 이야기하면 mod_wsgi가 권장되는 접근 방식이라고 생각합니다.

내 시스템의 패키지에서 다음을 설치했습니다.

apache-2.2.17_1 
python26-2.6.6 

django를 apache와 함께 작동하게 하려면 어떻게 해야 하나요? 튜토리얼이 있나요?

답변1

Django를 엉망으로 만들기 위해 특별한 것을 설치할 필요가 없습니다. 디버그 서버가 작동하려면 필요한 것은 다음과 같습니다.

  • 파이썬
  • 장고 그 자체
  • SQLite 이외의 것을 원한다면 데이터베이스용 Python 모듈

이미 Python이 있으므로 다음을 제안합니다.

easy_install pip
pip install django

그럼 팔로우해장고 튜토리얼.
mod_wsgi는 다음과 같은 경우에 작동합니다.배포너의 어플리케이션.

답변2

좋습니다. 저는 주로 다음 지침의 도움을 받아 이 작업을 수행했습니다.http://code.google.com/p/modwsgi/wiki/InstallationOnFreeBSD

내가 한 일은 다음과 같습니다(루트 사용자로서).

아파치 재설치

바이너리 패키지에서 apache22를 설치했지만 해당 패키지 버전은 스레딩 지원 없이 컴파일되었기 때문에 mod_wsgi의 스레드가 필요합니다. 그래서 나는 다음과 같이 했습니다: pkg_delete apache-2.2.17_1. 이것은 PHP가 아파치에 의존한다고 불평했기 때문에 다음과 같이 했습니다 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"다음 make. make installApache를 시작하면 작동하지만 "[경고] (2) 해당 파일 또는 디렉터리가 없습니다. 'httpready' 허용 필터를 활성화할 수 없습니다."라는 오류가 발생합니다. 온라인으로 검색하고 이를 수행하여 문제를 해결한 kldload accf_http다음 apachectl restart/boot/loader.conf에 accf_http_load="YES"를 추가하여 재부팅 후에도 이 변경 사항이 유지되도록 했습니다.

mod_wsgi 설치

cd /usr/ports/www/mod_wsgi3
make
make install

이것은 loadmodule 라인을 추가하기 위해 내 httpd.conf 파일을 자동으로 수정했습니다.

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을 다시 시작했습니다. 그럼 내가 갔어http://localhost/myapp내 브라우저에서 짜잔! 헬로월드를 봤습니다.

설치 아이디어

cd /usr/ports/devel/py-pip
make
make install

경로가 업데이트되도록 쉘을 새로 고쳤습니다.

장고 설치

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

호스트 파일을 구성한 후 액세스하십시오.http://mytest.whatever브라우저에서. 효과가있다!

관련 정보