Centos Django+ Mod_wsgi
5530 단어 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 서비스를 다시 시작합니다.됐어.