Hatena::ブログ(Diary)

yoshiringの日記

2010年06月04日

[][] お名前.comのVPS01でDjango

yumインストール

$ wget http://ftp.iij.ad.jp/pub/linux/centos/5/os/x86_64/CentOS/m2crypto-0.16-6.el5.6.x86_64.rpm
$ wget http://ftp.iij.ad.jp/pub/linux/centos/5/os/x86_64/CentOS/python-elementtree-1.2.6-5.x86_64.rpm
$ wget http://ftp.iij.ad.jp/pub/linux/centos/5/os/x86_64/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.x86_64.rpm
$ wget http://ftp.iij.ad.jp/pub/linux/centos/5/os/x86_64/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm
$ wget http://ftp.iij.ad.jp/pub/linux/centos/5/os/x86_64/CentOS/python-sqlite-1.1.7-1.2.1.x86_64.rpm
$ wget http://ftp.iij.ad.jp/pub/linux/centos/5/os/x86_64/CentOS/python-urlgrabber-3.1.0-5.el5.noarch.rpm
$ wget http://ftp.iij.ad.jp/pub/linux/centos/5/os/x86_64/CentOS/yum-3.2.22-26.el5.centos.noarch.rpm
$ wget http://ftp.iij.ad.jp/pub/linux/ceentos/5/os/x86_64/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm

# rpm -ivh m2crypto-0.16-6.el5.6.x86_64.rpm
# rpm -ivh python-elementtree-1.2.6-5.x86_64.rpm
# rpm -ivh yum-metadata-parser-1.1.2-3.el5. centos.x86_64.rpm
# rpm -ivh python-urlgrabber-3.1.0-5.el5.noarch.rpm
# rpm -ivh python-iniparse-0.2.3-4.el5.noarch.rpm
# rpm -ivh python-sqlite-1.1.7-1.2.1.x86_64.rpm
# rpm --import http://mirror.centos.org/centos-5/5.3/o s/i386/RPM-GPG-KEY-CentOS-5
# rpm -ivh yum-3.2.22-26.el5.centos.noarch.rpm yum-fasttestmirror-1.1.16-14.el5.centos.noarch.rpm

Python2.5とDjangoインストール

wget http://python.org/ftp/python/2.5.2/Python-2.5.2 .tgz
tar xvfz Python-2.5.2.tgz
cd Python-2.5.2
./configure --prefix=/opt/python2.5 --with-threa ds --enable-shared
vi ./Modules/Setup
make
make install
vi opt-python2.5.conf
/sbin/ldconfig
ln -s /opt/python2.5/bin/python /usr/bin/python2.5
wget http://pypi.python.org/packages/2.5/s/setuptool s/setuptools-0.6c9-py2.5.egg
sh setuptools-0.6c11-py2.5.egg --prefix=/opt/python2 .5
curl -O http://peak.telecommunity.com/dist/ez_se tup.py
easy_install Django

パス周り

$ vi .bash_profile
--- PATH=$PATH:$HOME/bin
+++ PATH=$PATH:$HOME/bin:/opt/python2.5/bin/
$ vi .bashrc
+++ alias python='python2.5'
$ source ~/.bash_profile
$ source ~/.bashrc

Djangoのバージョン確認

django-admin.py --version
1.2.1

デプロイ

# httpd -v
Server version: Apache/2.2.3
Server built:   Oct 14 2009 20:27:59
cd etc
$ find . -name httpd.conf -print
./httpd/conf/httpd.conf

//mod_pythonのインストール
# yum -y install httpd-devel
# cd DOWNLOAD_DIR
# wget http://ftp.kddilabs.jp/infosystems/apache/httpd/modpython/mod_python-3.3.1.tgz
# tar xfz mod_python-3.3.1.tgz
# cd mod_python-3.3.1
# ./configure --with-python=/opt/python2.5/bin/python2.5 --with-apxs=/usr/sbin/apxs
# make
# make install

//Django+mod_python
# chown stamp109.com /var/www/vhosts/stamp109.com/httpdocs
$ cd /var/www/vhosts/stamp109.com/httpdocs
$ django-admin.py startapp polls #Djangoチュートリアルアプリ作成
# vi /etc/httpd/conf.d/python.conf
LoadModule python_module modules/mod_python.so
<Location "/stamprally/">
    SetHandler python-program
    PythonPath "['/var/www/vhosts/mydomain/httpdocs']+sys.path"
    PythonHandler django.core.handlers.modpython
    SetEnv PYTHON_EGG_CACHE /var/www/vhosts/mydomain/httpdocs/stamprally/.python-eggs 
    SetEnv DJANGO_SETTINGS_MODULE stamprally.settings
    PythonDebug On
</Location>

# vi /etc/httpd/conf/httpd.conf
<Location "/stamprally/">
    SetHandler python-program
    PythonPath "['/var/www/html/']+sys.path"
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE stamprally.settings
    PythonOption django.root /stamprally
    PythonDebug On
    PythonPath "['/var/www/vhosts/mydomain/httpdocs'] + sys.path"
</Location>
# /sbin/service httpd configtest
# /sbin/service httpd restart

画像ライブラリPILのインストール

# wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
# tar zxvf Imaging-1.1.7.tar.gz
# cd Imaging-1.1.7
# /opt/python2.5/bin/python setup.py build
# /opt/python2.5/bin/python setup.py install
//必要なライブラリの追加
# yum install libjpeg
# yum install libjpeg-devel
# yum install zlib       
# yum install zlib-devel 

デプロイの続き

ここでブラウザからアクセスするとmod_pythonのエラー
ImportError: No module named django.core.handlers.modpython

シンボリックリンクを作成してみる
# ln -s django /opt/python2.5/lib/python2.5/site-packages

エラーが変わった
SystemError: NULL result without error in PyObject_Call

# chmod a+x /var/www/vhosts/mydomain/httpdocs/

pysqliteのインストール

//pysqliteのインストール
# /opt/python2.5/bin/easy_install pysqlite
エラー発生:command 'gcc' failed with exit status

//gccのインストール
# yum install gcc

//再度pysqliteのインストール
# /opt/python2.5/bin/easy_install pysqlite
エラー発生:/usr/bin/ld: cannot find -lpython2.5

//ソースからpysqliteをインストール
# wget http://pysqlite.googlecode.com/files/pysqlite-2.6.0.tar.gz
# tar xvzf pysqlite-2.6.0.tar.gz
# cd pysqlite-2.6.0
# vi setup.cfg
以下の様に修正
include_dirs=/opt/python2.5
librarly_dirs=/opt/python2.5/lib
# /opt/python2.5/bin/python setup.py build
# /opt/python2.5/bin/python setup.py install --prefix=/opt/python2.5

//インストール完了の確認
# /opt/python2.5/bin/python
>>> import sys
>>> sys.path.append('/opt/python2.5/lib/python2.5/site-packages/')
>>> import pysqlite2
Apacheを再起動してブラウザからアクセスするとエラーが変わった
DatabaseError: unable to open database file

データベースファイルの親ディレクトリのパーミッションを変更すると、画面にアクセスできました☆
http://www.mail-archive.com/django-users@googlegroups.com/msg16740.html
References
  1. お名前.comのVPSサーバを使うまで
  2. お名前.com の VPS の CentOS5.3 に、Python 2.6.4 と Django 1.1.1 と、mod_wsgi を設定した覚え書き
  3. yumを間違って削除しちゃった場合の手順
  4. CentOS5.3にPython2.6でDjango1.1の開発環境を作成する
  5. パス(PATH)の確認と設定方法は?
  6. Apache と mod_python で Django を動かす
  7. mod_python のインストール
  8. CentOS5にpython2.6+Django+mod_python+色々の環境を整える
  9. PIL(Python Image Library)の導入
  10. CentOS に Django をデプロイ - with python2.6, mod_python
  11. はまったところ/pysqliteのインストール

2010年05月01日

[] CentOS インストール & 初期設定 & Python 開発環境構築メモ

Win7 のゲスト OS として、CentOS5 を VirtualBoxインストールし、PythonDjango 開発環境を作成するまでのメモ。


CentOSVirtualBoxインストール

ディスプレイ設定を ACER ASPIRE 1410 に合わせる

# system-config-display
ディスプレイ設定 > ハードウェアタブ > モニタータイプの設定 > Generic LCD Display > LCD Panel 1360x768 > OK > モニター設定タブ > 解像度1024x768 > OK
# shutdown -r now
※横は 1366 まで拡げたい、縦はもう少し縮めたいが…

サーバのホスト名を変更(←要調査)

# vi /etc/hosts
192.168.56.101 myhost.domain.jp myhost
127.0.0.1 localhost.localdomain localhost

# vi /etc/sysconfig/network
HOSTNAME=myhost.domain.jp

# vi /etc/hosts.allow
ALL : 127.0.0.1
sshd : ALL

# /etc/rc.d/init.d/network restart

SSH の設定

Apache の起動と自動起動設定

# httpd -v
Server version: Apache/2.2.3
# /etc/rc.d/init.d/httpd start
# chkconfig httpd on

httpd-devel のインストール

# yum -y install httpd-devel

Python のバージョン確認

$ python -V
Python 2.4.3

GCCインストール

# yum -y install gcc

mod_pythonインストール

http://httpd.apache.org/modules/python-download.cgi から mod_python-3.3.1.tgz をダウンロード
$ cd /tmp
$ tar xfz mod_python-3.3.1.tgz
$ cd /tmp/mod_python-3.3.1
$ ./configure --with-apxs=/usr/sbin/apxs
$ make // ここでエラーが発生(←要調査)

Djangoインストール

http://www.djangoproject.com/download/ から Django-1.1.1.tar.gz. をダウンロード
/tmp 配下に展開
cd /tmp/Django-1.1.1
# python setup.py install

eclipseインストール

http://www.eclipse.org/downloads/ から Eclipse Classic 3.5.2 (163 MB) をダウンロード
eclipse-SDK-3.5.2-linux-gtk-x86_64.tar.gz を /home/yoshiring 配下に展開
~/eclipse -clean で eclipse の起動
References
  1. VirtualBox+CentOS+解像度設定
  2. 「Apache」の設定
  3. ■WebDAV設定
  4. Linux Tips - configure: error: no acceptable C compiler found in $PATH -
  5. mod_python のインストール
  6. Mod_python Manual
  7. Django のインストール
  8. サーバのホスト名を変更する