Centos Django+ Mod_wsgi

5530 단어 django 구성
본고는 Centos 시스템에서 Django 사이트를 구축하는 절차를 소개한다.
하나.설치 환경
이 문서는 환경에 적합합니다.
  centOS 5/6
  python2.7+-
  Django1.5
  mod_wsgi
  apache2.2/2.4 그중modpython 쌍python 2.7 지원이 없기 때문에modsgi가mod 대신python.
 
둘.소프트웨어 설치:
  1.apache 서버를 설치하려면:
# yum install -y httpd  httpd-devel
(일반 시스템은 아파치 서버를 가지고/etc/httpd 디렉터리에 설치됨)
http-devel은 apxs를 위해서입니다. yum 이후whereis apxs는 그를 찾아가서 나중에 컴파일해서 사용할 수 있습니다.
  2.python 2. 설치7
(컴파일한 후에는 import zlib을 사용할 수 없습니다.
# yum install -y zlib zlib-devel

)     
centos 시스템이 자체로 가지고 있는python은 기본적으로 2.6버전보다 작습니다. 자체로 컴파일할 수 있습니다. 오류가 발생할 수 있습니다. 가능한 2.7버전으로 컴파일하십시오.[다운로드한 모든 압축 파일을 ~ (홈 디렉터리) 디렉터리에 두었다고 가정하십시오.]   
#tar -xzvf Python-2.7.tar.bz2 
#cd Python-2.7 
#.configure --enable-shared  (!!!    mysql-python ,python        )      --enable-shared         libpython2.5.so.1.0    ,                /usr/lib    ,         /usr/lib64  。      /usr/local/lib and /usr/local/lib64   lin(    )

일반 설치 경로는:/usr/local/lib/python2입니다.7.설치 후 명령 #python을 실행합니다. 버전 번호를 출력하면 성공입니다. 
오류1:/usr/local/lib/python2.7/config/libpython2.7.a:  could not read symbols: Bad value  collect2ld returned 1 exit status apxs:Error: Command failed with rc=65536 
="python을 설치할 때 없었기 때문입니다./configure  --enable-shared 
또는
컴파일 디렉터리에서 src 폴더에서 connobject를 변경합니다.c 142줄 정도
!(b== APR BRIGADE SENTINEL(b)|||로 변경!(b==APR BRIGADE SENTINEL(bb)|||(내가 다 만났어)
오류2:python: error while loading shared libraries:libpython 2.7.so.1.0: cannot open shared object file: No such file or directory = 새 파일: #vim/etc/ld.so.conf.d/python2.7.conf 
가입 내용:/usr/local/lib
저장 종료 후 실행: ldconfig에서 #python을 실행하고 성공 여부를 테스트합니다.       
위에서 반드시 주의해야 한다. 왜냐하면 wsgi를 컴파일하면 똑같은 오류를 보고할 수 있기 때문이다.
 3. Django 설치 [Django 압축 파일을 ~디렉토리로 다운로드]
#tar -xzvf Django1.4
#cd Django1.4
#python setup.py install 

테스트:
         #python     >>>import django     >>>django.VERSION
    4. mod 설치wsgi
       a.설치하기 전에 아파치의 apxs 확장을 진행합니다: (위에 설치되어 있습니다)
# yum install httpd-devel

오류:yum 명령이 작동하지 않을 수 있습니다. 프롬프트: No module named yum
= "yum 명령이python2에 의존하기 때문입니다.4. 현재 2.7을 사용하면 yum 명령을 사용할 수 없습니다. 해결 방법은 다음과 같습니다.
  #vim/usr/bin/yum
#!/usr/bin/python이 #으로 수정됨!/usr/bin/python2.4 
기타 오류:bad interpreter: No such file or directory
       b.mod 설치wsgi,mod_ssgi 압축 패키지도/var 디렉터리에 있고 원본 [링크]로 설치합니다
여기서 나는 오랫동안 렉이 걸렸다.드디어 컴파일modwgsi 성공했어...
컴파일된python을 기본값으로 바꿀지 안 바꿀지 보십시오. 제가 직접 사용하겠습니다.
# alias python="python2.7" #        /etc/profile   ,  # source /etc/profile
이렇게 하면 안전할 수 있겠지.
  
# ./configure --with-python=/usr/local/bin/python2.7  【  python2.7】 
# make 
# make install 

틀릴 수도 있어.
부족한 것이 있으면 with-.
못 찾으면 whereis.
될 수 있는 대로 완전하게 하다.
5, 구성을 시작합니다.
httpd.conf 파일에 추가
LoadModule wsgi_module modules/mod_wsgi.so

재부팅하면 설치가 완료됩니다.
그리고django를 배치합니다.
일단 트리를 먼저 볼게요.
[root@localhost html]# tree /var/www/html/   #  django-admin.py startproject mysite
/var/www/html/                               #         。
└── mysite
    ├── manage.py
    ├── mysite
    │   ├── helloworld.py                 #        hello,    ,        
    │   ├── helloworld.pyc
    │   ├── __init__.py
    │   ├── __init__.pyc
    │   ├── settings.py
    │   ├── settings.pyc
    │   ├── urls.py
    │   ├── urls.pyc
    │   ├── wsgi.py
    │   └── wsgi.pyc                      #  
    └── wsgi
        └── django.wsgi                   #    
django.내용
import os
import sys

sys.path.append('/var/www/html/mysite')#                 ,          ,   
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' #    。
os.environ['PYTHON_EGG_CACHE'] = '/tmp/.python-eggs'

current_dir = os.path.dirname(__file__)                         
if current_dir not in sys.path: sys.path.append(current_dir)

import django.core.handlers.wsgi  #!!

application = django.core.handlers.wsgi.WSGIHandler()  #!!

httpd.conf 프로필에 추가된 내용으로django를 연결합니다.wsgi, 프로젝트를 아파치에 불러옵니다.
우리httpd는 컴파일된 것이 아니다.이 목록이 있습니다.
[root@localhost mysite]# ls /etc/httpd/conf.d/
apache가 그를 불러올 것입니다. 새 프로필 wsgi.conf
#  LoadModule wsgi_module modules/mod_wsgi.so # httpd.conf         。
WSGIScriptAlias / "/var/www/html/mysite/wsgi/django.wsgi" 

<Directory "/var/www/html/mysite">  #     。
    Order Deny,Allow
    Allow from all
</Directory>

http.conf 
변경 사항
DocumentRoot "/var/www/html/mysite"

ServerName 127.0.0.1:80

그리고 정적 파일을 static 디렉터리에 두기 때문에httpd.conf에 static 매핑 추가: Alias/static H:/pythondev/webDSS/static
만약django의 백엔드 관리를 사용한다면httpd.conf에 포함:
Alias /static/admin E:/Python27/Lib/site-packages/django/contrib/admin/media
 
<Directory "E:/Python27/Lib/site-packages/django/contrib/admin/media">
Order Deny,Allow
Allow from all
</Directory>

그리고httpd 서비스를 다시 시작합니다.됐어.

좋은 웹페이지 즐겨찾기