파이썬 2.6 설치
파이썬 2.6 소스 패키지 다운로드, 압축해제 그리고 작업디렉토리 진입:
- $ cd
$ wget http://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz
$ tar xvfz Python-2.6.tgz
$ cd Python-2.6
기존 시스템 설치 파이썬을 덮어쓰지 않도록 파이썬 2.6 설정:
$ ./configure --prefix=/opt/python2.6 --with-threads --enable-shared
컴파일 후 설치:
$ make
$ make install
root의 .bash_profile에 alias 추가:
alias python='/opt/python2.6/bin/python'
심볼릭 링크 생성:
$ ln -s /opt/python2.6/bin/python /usr/bin/python2.6
ld가 공용라이브러리를 찾을 수 있도록 설정:
$ cat >> /etc/ld.so.conf.d/opt-python2.6.conf
/opt/python2.6/lib (hit enter)
(hit ctrl-d to return to shell)
$ ldconfig
설치된 파이썬 2.6 설치 테스트:
$ python
아래와 같은 파이썬 2.6 인터랙티브 세션이 나타난다:
Python 2.6.2 (r262:71600, Aug 5 2009, 00:51:31)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Hit ctrl-d to exit
출처 - http://blog.naver.com/PostView.nhn?blogId=aries84&logNo=100157702157
===================================================================================
CentOS 5.3 + Python 2.6 + modwsgi + django 1.1 설치
Matt Reiferson 와 Eric Farkas 가 운영하는 Perplexed Labs 의
'Setup Python 2.5, mod_wsgi, and Django 1.0 on CentOS 5 (cPanel)' 을 참조하여 작성
http://blog.perplexedlabs.com/2008/11/10/setup-python-25-mod_wsgi-and-django-10-on-centos-5-cpanel/
CentOS 5.3 설치
엔터 + 엔터 + ... + 엔터 완료
- $ yum groupinstall "Web Server"
- $ yum groupinstall "MySQL database"
Python 2.6 설치
파이썬 2.6 의존 프로그램 설치
sqlite3 설치:
- $ wget http://www.sqlite.org/sqlite-amalgamation-3.6.16.tar.gz
$ tar xvfz sqlite-amalgamation-3.6.16.tar.gz
$ cd sqlite-3.6.16
$ ./configure
$ make
$ make install
파이썬 2.6 설치
파이썬 2.6 소스 패키지 다운로드, 압축해제 그리고 작업디렉토리 진입:
- $ cd
$ wget http://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz
$ tar xvfz Python-2.6.tgz
$ cd Python-2.6
기존 시스템 설치 파이썬을 덮어쓰지 않도록 파이썬 2.6 설정:
$ ./configure --prefix=/opt/python2.6 --with-threads --enable-shared
컴파일 후 설치:
$ make
$ make install
root의 .bash_profile에 alias 추가:
alias python='/opt/python2.6/bin/python'
심볼릭 링크 생성:
$ ln -s /opt/python2.6/bin/python /usr/bin/python2.6
ld가 공용라이브러리를 찾을 수 있도록 설정:
$ cat >> /etc/ld.so.conf.d/opt-python2.6.conf
/opt/python2.6/lib (hit enter)
(hit ctrl-d to return to shell)
$ ldconfig
설치된 파이썬 2.6 설치 테스트:
$ python
아래와 같은 파이썬 2.6 인터랙티브 세션이 나타난다:
Python 2.6.2 (r262:71600, Aug 5 2009, 00:51:31)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Hit ctrl-d to exit
setuptools 설치:
- $ cd
- $ wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c9-py2.6.egg
- $ sh setuptools-0.6c9-py2.6.egg --prefix=/opt/python2.6
MySQLdb 패키지 설치:
- $ cd
$ wget http://sourceforge.net/projects/mysql-python/files/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz/download
$ tar xvfz MySQL-python-1.2.3c1.tar.gz
$ cd MySQL-python-1.2.3c1
$ python setup.py build
$ python setup.py install
1. 빌드 과정 중 에러가 발생하면 MySQL-dev 관련 패키지를 추가로 설치한다. (yum install mysql-dev*)
2. $ python2.6 setup.py build 시 /usr/bin/ld: cannot find -lpython2.6 에러발생하면 python2.6 setup.py build_ext --library-dirs=/opt/python2.6/lib/ 시도
PIL(Python Image Library) 설치
- $ cd
- $ wget http://effbot.org/downloads/Imaging-1.1.6.tar.gz
- $ tar xvfz Imaging-1.1.6.tar.gz
- $ cd Imaging-1.1.6
- $ python setup.py install
파이썬 2.6 설치 검증:
- $ cd
$ python
Python 2.6.2 (r262:71600, Aug 5 2009, 00:51:31)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> import MySQLdb
>>> import Image - >>>
mod_wsgi 설치
mod_wsgi 다운로드:
$ cd
$ wget http://modwsgi.googlecode.com/files/mod_wsgi-2.5.tar.gz
$ tar xvfz mod_wsgi-2.5.tar.gz
mod_wsgi가 파이썬 2.6 공용라이브러리를 링크하도록 설정
$ cd /opt/python2.6/lib/python2.6/config
$ ln -s ../../libpython2.6.so .
configure 실행
- $ cd
$ cd mod_wsgi-2.5
$ ./configure --with-python=/opt/python2.6/bin/python
apx가 없다고 에러메시지가 나올 경우 httpd-dev 관련 패키지를 추가로 설치한다. (yum install httpd-dev*)
컴파일 후 설치:
- $ make
$ make install
컴파일 확인
mod_wsgi.so의 사이즈가 약250kb인지 확인:
$ ls -Al /etc/httpd/modules/mod_wsgi.so
-rwxr-xr-x 1 root root 338629 8월 5 01:24 /etc/httpd/modules/mod_wsgi.so
반드시 250kb 여야 하는 건 아닌 듯 하다. (필자의 경우 32bit CentOS 5.3 에선 250kb였으나 64bit CentOS 5.2에선 340Kb 정도로 컴파일됨)
아파치 2.x 설정에 mod_wsgi 추가:
/etc/http/conf/httpd.conf 파일에 다음 내용을 추가한다.
- LoadModule wsgi_module modules/mod_wsgi.so
- AddHandler wsgi-script .wsgi
변경된 설정으로 httpd 서버를 재시동한다.
- $ service httpd restart
httpd 를 정지 중: [ OK ]
httpd (을)를 시작 중: [ OK ]
mod_wsgi 설치 검증:
CentOS 기본 웹서버 문서 디렉토리인 /var/www/html 에 vi 등을 통해 다음 내용을 입력하고 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 /var/www/html/test.wsgi
브라우저에서 http://localhost/myapp 로 접근하면 다음과 같은 내용이 출력된다.
django 설치를 위한 추가 검증:
위 단계에서 생성한 test.wsgi 파일의 상단에 import socket 을 추가한다.
- import socket
- 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]
django 1.1 설치
본 예제에선 다음과 같은 환경 하에서의 설치를 가정한다.
서버 도메인 : luckyzzang.com
사용자 : kangunma
사용자의 도메인 : kangunma.luckyzzang.com
django 프로젝트 디렉토리 생성:
django 프로젝트들이 놓일 디렉토리를 생성한다. 예제에선 sites 로 가정한다.
$ mkdir -p /home/kangunma/sites/
프로젝트 디렉토리에 django를 svn으로 설치:
$ cd /home/kangunma/sites/
$ svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
$ ln -s django-trunk/django django
$ mkdir .python-eggs
$ chmod 777 .python-eggs
django-admin.py로 프로젝트를 생성:
$ /home/kangunma/sites/django/bin/django-admin.py startproject 108combo
사용자의 .bash_profile 설정:
사용자 홈 디렉토리의 .bash_profile에 다음과 같은 내용을 추가한다.
alias python='/opt/python2.6/bin/python'
export PYTHONPATH='$PYTHONPATH:/home/kangunma/sites/'
mod_wsgi를 통해 django 프로젝트가 실행될 수 있도록 설정:
mod_wsgi를 통해 wsgi 스크립트를 동작시킬 디렉토리를 생성한다.
- $ mkdir /home/kangunma/wsgi-scripts
- $ cd /home/kangunma/wsgi-scripts
신규 생성한 django 프로젝트를 호출하는 wsgi스크립트 파일인 108combo.wsgi를 다음과 같은 내용으로 생성한다.
- #!/opt/python2.6/bin/python
import os, sys
sys.path.append('/home/kangunma/sites/')
os.environ['PYTHON_EGG_CACHE'] = '/home/kangunma/sites/.python-eggs' - os.environ['DJANGO_SETTINGS_MODULE'] = '108combo.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
httpd.conf 의 사용자 VirtualHost 설정을 다음과 같은 내용으로 설정한다.
- <VirtualHost *:80>
ServerName kangunma.luckyzzang.com
DocumentRoot /home/kangunma/public_html
<Directory /home/kangunma/sites>
Order allow,deny
Allow from all
</Directory> - <IfModule mod_alias.c>
Alias /robots.txt /home/kangunma/sites/108combo/media/robots.txt
Alias /site_media /home/kangunma/sites/108combo/media
Alias /admin_media /home/kangunma/sites/django/contrib/admin/media
</IfModule>
WSGIScriptAlias /108combo /home/kangunma/wsgi-scripts/108combo.wsgi
<Directory /home/kangunma/wsgi-scripts>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
변경된 설정으로 httpd 서버를 재시동한다.
- $ service httpd restart
httpd 를 정지 중: [ OK ]
httpd (을)를 시작 중: [ OK ]
웹브라우저를 통해 gunma.luckyzzang.com/108combo 로 접근하면 다음과 같은 메시지를 볼 수 있다.
출처 - http://hdformat202.springnote.com/pages/3971699
'System > Linux' 카테고리의 다른 글
linux - scp 사용법 (0) | 2012.07.16 |
---|---|
linux - gcc와 make (0) | 2012.07.16 |
CentOS - RPMforge EPEL Remi 저장소 설치 (0) | 2012.07.13 |
linux - 프로세스 디버깅 (0) | 2012.07.09 |
Linux - iptables를 이용한 포트포워딩 (1) | 2012.05.26 |