파이썬 2.6 설치

파이썬 2.6 소스 패키지 다운로드, 압축해제 그리고 작업디렉토리 진입:

 

  1. $ 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'

 

※ .bash_profile 에 추가된 alias 는 해당 계정으로 다시 로그인을 해야 적용된다.

 

심볼릭 링크 생성:

$ 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://hdformat202.springnote.com/pages/3971699


출처 - 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 설치

 

엔터 + 엔터 + ... + 엔터 완료

 

  1. $ yum groupinstall "Web Server"
  2. $ yum groupinstall "MySQL database"

 

Python 2.6 설치

 

파이썬 2.6 의존 프로그램 설치

 

sqlite3 설치:

 

  1. $ 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 소스 패키지 다운로드, 압축해제 그리고 작업디렉토리 진입:

 

  1. $ 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'

 

※ .bash_profile 에 추가된 alias 는 해당 계정으로 다시 로그인을 해야 적용된다.

 

심볼릭 링크 생성:

 

$ 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 설치:

 

  1. $ cd
  2. $ wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c9-py2.6.egg
  3. $ sh setuptools-0.6c9-py2.6.egg --prefix=/opt/python2.6

 

MySQLdb 패키지 설치:

 

  1. $ 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) 설치

 

  1. $ cd
  2. $ wget http://effbot.org/downloads/Imaging-1.1.6.tar.gz
  3. $ tar xvfz Imaging-1.1.6.tar.gz
  4. $ cd Imaging-1.1.6
  5. $ python setup.py install

 

파이썬 2.6 설치 검증:

 

  1. $ 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
  2. >>>

 

MySQLdb 임포트시 경고 메시지가 출력되는 경우가 있는데 재로그인 하면 사라진다. (이유는 모름. 누가 설명 좀.)

 

mod_wsgi 설치

 

mod_wsgi 다운로드:

 

  1. $ 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 공용라이브러리를 링크하도록 설정

 

  1. $ cd /opt/python2.6/lib/python2.6/config
    $ ln -s ../../libpython2.6.so .

 

configure 실행

 

  1. $ cd
    $ cd mod_wsgi-2.5
    $ ./configure --with-python=/opt/python2.6/bin/python

 

apx가 없다고 에러메시지가 나올 경우 httpd-dev 관련 패키지를 추가로 설치한다. (yum install httpd-dev*)

 

컴파일 후 설치:

 

  1. $ 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 파일에 다음 내용을 추가한다.

 

  1. LoadModule wsgi_module modules/mod_wsgi.so
  2. AddHandler wsgi-script .wsgi

 

변경된 설정으로 httpd 서버를 재시동한다.

 

  1. $ service httpd restart
    httpd 를 정지 중:                                         [  OK  ]
    httpd (을)를 시작 중:                                     [  OK  ]

 

mod_wsgi 설치 검증:

 

CentOS 기본 웹서버 문서 디렉토리인 /var/www/html 에 vi 등을 통해 다음 내용을 입력하고 test.wsgi 란 이름으로 저장한다.

 

  1. 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 에 다음 내용을 추가한다.

 

  1. WSGIScriptAlias /myapp /var/www/html/test.wsgi

 

브라우저에서 http://localhost/myapp 로 접근하면 다음과 같은 내용이 출력된다.

 

Clipboard01.png

 

django 설치를 위한 추가 검증:

 

위 단계에서 생성한 test.wsgi 파일의 상단에 import socket 을 추가한다.

 

  1. import socket
  2. 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]

 

브라우저에서 접근시 서버 에러가 발생하면 시스템 보안설정으로 인한 오류이므로 lokkit 명령어 등을 통해 SELINUX 보안을 해제시켜준다.

 

django 1.1 설치

 

본 예제에선 다음과 같은 환경 하에서의 설치를 가정한다.

 

서버 도메인 : luckyzzang.com

사용자 : kangunma

사용자의 도메인 : kangunma.luckyzzang.com

 

django 프로젝트 디렉토리 생성:

 

django 프로젝트들이 놓일 디렉토리를 생성한다. 예제에선 sites 로 가정한다.

 

  1. $ mkdir -p /home/kangunma/sites/

 

프로젝트 디렉토리에 django를 svn으로 설치:

 

  1. $ 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로 프로젝트를 생성:

 

  1. $ /home/kangunma/sites/django/bin/django-admin.py startproject 108combo

 

사용자의 .bash_profile 설정:

 

사용자 홈 디렉토리의 .bash_profile에 다음과 같은 내용을 추가한다.

 

  1. alias python='/opt/python2.6/bin/python'
    export PYTHONPATH='$PYTHONPATH:/home/kangunma/sites/'

 

.bash_profile 에 추가된 alias 는 해당 계정으로 다시 로그인을 해야 적용된다.

 

mod_wsgi를 통해 django 프로젝트가 실행될 수 있도록 설정:

 

mod_wsgi를 통해 wsgi 스크립트를 동작시킬 디렉토리를 생성한다. 

 

  1. $ mkdir /home/kangunma/wsgi-scripts
  2. $ cd /home/kangunma/wsgi-scripts

 

신규 생성한 django 프로젝트를 호출하는 wsgi스크립트 파일인 108combo.wsgi를 다음과 같은 내용으로  생성한다.

 

  1. #!/opt/python2.6/bin/python
    import os, sys
    sys.path.append('/home/kangunma/sites/')
    os.environ['PYTHON_EGG_CACHE'] = '/home/kangunma/sites/.python-eggs'
  2. os.environ['DJANGO_SETTINGS_MODULE'] = '108combo.settings'

    import django.core.handlers.wsgi

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

 

httpd.conf 의 사용자 VirtualHost 설정을 다음과 같은 내용으로 설정한다.

 

  1. <VirtualHost *:80>

        ServerName kangunma.luckyzzang.com
        DocumentRoot /home/kangunma/public_html

        <Directory /home/kangunma/sites>
        Order allow,deny
        Allow from all
        </Directory>
  2.  
  3.     <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>

 

site_media와 admin_media의 Alias 설정은 장고 프로젝트의 settings.py의 media, admin media 섹션에서 필요한 부분이다

 

변경된 설정으로 httpd 서버를 재시동한다.

 

  1. $ service httpd restart
    httpd 를 정지 중:                                         [  OK  ]
    httpd (을)를 시작 중:                                     [  OK  ]

 

웹브라우저를 통해 gunma.luckyzzang.com/108combo 로 접근하면 다음과 같은 메시지를 볼 수 있다.

 

Clipboard02.png


출처 - 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
Posted by linuxism
,