Apache,wsgi,django 프로그램 배치 방법 상세 설명

이 사례 는 Apache,wgi,django 프로그램 배치 방법 을 설명 한다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
앞에서 글 을 썼 습 니 다.ngixn,uwsgi,django,python 환경 설정,관심 있 는 친 구 는 참고 하 세 요nginx,django 배치.
나중에 어떤 사람 이 QQ 에서 Apache 로 배치 할 수 있 냐 고 물 었 다.나 는 당시 windows 에서 만 APACHE 2.3,django 1.4,wgi 를 배 치 했 을 뿐 Liux 에 배치 되 지 않 았 다.며칠 전에 시간 이 있어 서 나 는 centos 에서 테스트 배 치 를 했다.어렵 지도 않 아.유일한 차 이 는 windows 아래 에 이미 컴 파일 된 wgi.so 파일 이 있다 는 것 이다.  apache modules 에서 httpd.conf 에 추가 합 니 다.

LoadModule wsgi_module modules/mod_wsgi.so

그러나 Liux 에서 wgi 의 설 치 는 모두 소스 코드 컴 파일 에 설치 되 어야 하 며 몇 가지 주의해 야 할 것 이 있 습 니 다.다음은 제 배치 과정 을 상세히 소개 하 겠 습 니 다.
python 2.7 또는 필요 한 버 전 설치
이것 은 간단하게 가 져 왔 습 니 다.설치 패 키 지 를 다운로드 한 후에 windows 는 설치 패 키 지 를 직접 실행 할 수 있 습 니 다.Liux 에서 컴 파일 하여 설치 하 는 것 이 좋 습 니 다.이 단 계 는 내 가 위 에서 언급 한 문장 을 참고 할 수 있다.나 는 이미 비교적 분명하게 말 했다.그러나 이 centos 환경 은 다른 사람 이 이미 설치 한 것 이 고 이상 합 니 다./usr/local/activepython 27 에 설치 되 어 있 습 니 다.일반적인 python 은/usr/bin/python 에 설치 되 어 있 습 니 다.그 이 유 는 간단 하 다.centos 가 자체 적 으로 가지 고 있 는 python 은 2.4 버 전이 낮 기 때문에 새로운 버 전 을 다시 설치 했다.
설치
우선 구 글 코드 위탁 관리 소 에서 다운로드 해 야 합 니 다.https://code.google.com/p/modwsgi windows 라면 컴 파일 된 파일 을 직접 다운로드 할 수 있 습 니 다.Liux 의 형제들,원본 코드 컴 파일 다운로드:

wget http://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz
tar zxvf mod_wsgi-3.4.tar.gz
cd mod_wsgi-3.4
./configure

뭘 발 견 했 는 지 잘못 보고 했다.

./configure
checking for apxs2... no
checking for apxs... no
checking Apache version... ./configure: line 1695: apxs: command not found
./configure: line 1695: apxs: command not found
./configure: line 1696: /: is a directory

잘못 보고 한 원인 도 분명 하 다.apxs 가 없습니다.아래 에 설치 하 십시오.

yum install httpd-devel

하면,만약,만약...  명령 은sudo apt-get install apache2-dev또는sudo apt-get install apache2-threaded-dev일 수 있 습 니 다.구체 적 인 명령 은 확인 할 수 있 습 니 다.
재 컴 파일

[root@29 mod_wsgi-3.4]# ./configure (        python   --with-python=/usr/local/activepython27)
checking for apxs2... no
checking for apxs... /usr/sbin/apxs
checking Apache version... 2.2.3
checking for python... /usr/local/activepython27/bin/python
configure: creating ./config.status
config.status: creating Makefile
[root@29 mod_wsgi-3.4]#
make
make install

다음 컴 파일 결 과 를 얻 었 습 니 다:
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/lib/httpd/modules/mod_wsgi.so
[root@29 mod_wsgi-3.4]#
apache2 프로필 httpd.conf 를 설정 합 니 다.

LoadModule wsgi_module modules/mod_wsgi.so

그리고 apache 시작 하기

service httpd start

무슨 새 를 발 견 했 는 지,이것 은 뻐꾸기 인 데,마구 울 어서 잘못 보고 했다.
Could not find platform independent libraries
Could not find platform dependent libraries
Consider setting $PYTHONHOME to [:]
ImportError: No module named site
잘못된 원인,시스템 에 여러 개의 python 버 전이 있 습 니 다.어떤 python 을 사용 하 는 지 알려 야 합 니 다.
apache 설정 파일 에 계속 추가
WSGIPythonHome /usr/local/activepython27  (이것 은 당신 이 사용 하고 자 하 는 python 의 경로 입 니 다.보통/usr/bin/python 입 니 다.제 환경 은 다른 사람 이 이렇게 만 들 었 습 니 다)
어떤 방법 으로 이 경 로 를 얻 을 수 있 습 니까?python 명령 을 직접 실행 하면 얻 을 수 있 습 니 다.전 제 는 이 python 소프트 연결 은 원 하 는 python 입 니 다.주의해 야 할 것 은 WSGIPython Home 을사이 에 설정 하지 마 십시오.그렇지 않 으 면 오류 가 발생 합 니 다.

import sys
sys.prefix 
경로/usr/local/activepython 27 을 얻 을 수 있 습 니 다.
Django 프로그램 관련 설정
1.제 django 프로그램 은/opt/www/html/djangocms/crm 에 배치 되 어 있 습 니 다.
 
프로젝트 의 conf 디 렉 터 리 에 다음 두 개의 파일 을 추가 합 니 다.
apache_django_파일 내용

<VirtualHost *:80>
  ServerName 192.168.1.111
  ServerAlias 192.168.1.111
  DocumentRoot /opt/www/html/djangocms/crm
  WSGIScriptAlias / /opt/www/html/djangocms/crm/conf/django.wsgi
  <Directory "/opt/www/html/djangocms/crm">
   order allow,deny
   Allow from all
  </Directory>
  Alias /static /opt/www/html/djangocms/crm/static
  <Location "/static">
      SetHandler None
  </Location>
  <Directory "/opt/www/html/djangocms/crm/static">
    order Deny,Allow
    Allow from all
  </Directory>
</VirtualHost>

django.wsgi 파일 내용

import os
import sys
sys.path.append("/opt/www/html/djangocms")
sys.path.append("/opt/www/html/djangocms/crm")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "crm.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

마지막 으로 apache 프로필 httpd.conf 에 추가:

Include "/opt/www/html/djangocms/crm/conf/apache_django_wsgi.conf"

apache 다시 시작

service httpd restart

너 는 네가 익숙 한 django 응용 프로그램 을 보 았 다.
본 고 는 Django 프레임 워 크 를 바탕 으로 하 는 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기