2012년 5월 30일 수요일
aws ec2에 python + django + nginX + uWSGI
# ec2 AMAZON linux
# python 2.7.2 + uWSGI-0.9.6.5 + Django-1.4 + nginx-1.0.2
yum -y upgrade
yum -y groupinstall 'Development Tools' install openssl-devel* zlib*.x86_64
yum -y install zlib-devel
wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz
tar xvzf Python-2.7.2.tgz
cd Python-2.7.2
./configure --prefix=/opt/python2.7.2 --with-threads --enable-shared
make
make install
# 터미널에서 python -V 실행시 설치한 버전이 아닌 이전 버전으로 나타난다면
# 파일 경로 우선 순위에서 예전 python이 새로 설치한 python 보다 앞서는 경우이다.
# 이 경우 두 가지 방법으로 해결.
# 첫번째 : 현재 python에 연결된 python 심볼릭 링크 경로를 새로 설치한 python 경로로 변경
sudo rm /usr/bin/python
ln -s /opt/python2.7.2/bin/python2.7 /usr/bin/python
rm /usr/lib/python
ln -s /opt/python2.7.2/lib/python2.7 /usr/lib/python
rm /usr/include/python2.5
ln -s /opt/python2.7.2/include/python2.7 /usr/include/python
# 두 번째 : ~/.bash_profile의 python 실행 경로의 우선 순위를 바꾸는 것.
# ~/.bash_profile 파일에 경로 설정(PATH)에서 방금 설치한 python 경로를 앞에 둔다.
vi ~/.bash_profile
# /opt/python2.7.2/bin:/opt/python2.7.2/lib:/opt/python2.7.2/include
# 을 맨 앞에 넣어 다음과 같이 만든다.
export PATH=/opt/python2.7.2/bin:/opt/python2.7.2/lib:/opt/python2.7.2/include:/usr/local/bin:$PATH
uWSGI
-------------
yum install python-devel libxml2 libxml2-devel zlib-devel
cd /opt/
wget http://projects.unbit.it/downloads/uwsgi-0.9.6.5.tar.gz
tar -zxvf uwsgi-0.9.6.5.tar.gz
mv uwsgi-0.9.6.5/ uwsgi/
cd uwsgi/
python setup.py build
make
useradd -M -r --shell /bin/sh --home-dir /opt/uwsgi uwsgi
chown -R uwsgi:uwsgi /opt/uwsgi
touch /var/log/uwsgi.log
chown uwsgi /var/log/uwsgi.log
setuptools, pip
-------------
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefe74e
tar zxvf setuptools-0.6c11.tar.gz
python setup.py build
python setup.py install
# pip는 easy_install이랑 비슷하지만 훨씬 더 다양한 기능들을 갖고 있다. 특정 패키지를 버전별로 설치한다던가, 삭제한다던가, 여러 패키지를 한번에 설치한다던가가 가능
easy_install pip
django 설치
-------------
wget https://www.djangoproject.com/download/1.4/tarball/
tar xvfz Django-1.4.tar.gz
cd Django-1.4
sudo python setup.py install
cd /home/user
django-admin startproject project
cd project
python manage.py startapp app
# /home/user/project 에 django.ini를 만들어준다.
[uwsgi]
socket = 127.0.0.1:9001
chdir = /home/user/project
pythonpath = /home/user
env = DJANGO_SETTINGS_MODULE=project.settings
module = django.core.handlers.wsgi:WSGIHandler()
master = true
processes = 4
daemonize = /home/user/project/uwsgi.log
pidfile = /home/user/project/uwsgi.pid
uwsgi django.ini
nginx
----------------------
sudo yum install pcre pcre-devel
wget http://nginx.org/download/nginx-1.0.2.tar.gz
tar xvfz nginx-1.0.2.tar.gz
cd nginx-1.0.2
./configure --prefix=/opt/nginx --user=nginx --group=nginx
make
sudo make install
# /etc/init.d/nginx 스크립트 등록
wget -O init-rpm.sh http://library.linode.com/assets/662-init-rpm.sh
sudo mv init-rpm.sh /etc/rc.d/init.d/nginx
sudo chmod +x /etc/rc.d/init.d/nginx
sudo /sbin/chkconfig nginx on
vi /opt/nginx/conf/nginx.conf
server {
listen 80;
root /home/user/proj;
server_name mydomain.com;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9001;
}
}
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기