2013年1月27日日曜日

ServersMan@VPS サーバ構築 (Django版)

ServersMan@VPS Entryプランでサーバを構築して、Djangoを使うまでのアレコレをスクリプトに纏めたので、公開しておきます。

apt-get でインストールできないパッケージがイロイロあるので、ソースからビルドしたり..
結構、面倒でした。

1.環境

OS : Ubuntu10.04 (32bit)

2.概要

主な流れは、次の通り。

  • Serversman を削除
  • iptables で、ファイヤーウォール設定
  • apt-get で mosh denyhosts mysql-server などをインストール
  • Python2.7
  • pip
  • Django MySQL-python
  • MeCab mecab-ipadic mecab-python (形態素解析できます)
  • mod_wsgi
  • /etc/apache2/httpd.conf に wsgi の設定

利用する場合は、<IPアドレス> と <ユーザ名> を書きかえてください。

3.手順

-- ここから --
※ L:はローカル(PC)、R:はリモート(VPS) です。

L:$ ssh root@<IPアドレス> -p 3843
> パスワード入力

R:# vi setup.sh
--
#!/bin/sh
/etc/init.d/smadmd stop
dpkg -P smadmin
dpkg -P serversman
### iptables ###
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 3843 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 60000:61000 -j ACCEPT
iptables-save > /etc/iptables.rules
fl="/etc/network/if-pre-up.d/iptables_start"
cat > $fl <<_EOF_
#!/bin/sh
/sbin/iptables-restore < /etc/iptables.rules
exit 0
_EOF_
chmod 755 $fl
### Install PKG ###
sed -i".bak" -e 's/archive.ubuntu.com/jp.archive.ubuntu.com/g' /etc/apt/sources.list
apt-get update
apt-get install python-software-properties
add-apt-repository ppa:keithw/mosh
apt-get update
apt-get upgrade
apt-get install mosh language-pack-ja denyhosts phpmyadmin mysql-server gcc zlib1g-dev g++ apache2-dev
### Python2.7 ###
# apt-get install gcc zlib1g-dev
cd /usr/local/src
wget http://python.org/ftp/python/2.7/Python-2.7.tar.bz2
tar jxvf Python-2.7.tar.bz2
cd Python-2.7
./configure --prefix=/usr/local
make
make install
### pip ###
cd /usr/local/src
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar xzvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
/usr/local/bin/python2.7 setup.py install
easy_install pip
pip install yolk Django==1.3 MySQL-python
### MeCab ###
# apt-get install g++
cd /usr/local/src
wget http://mecab.googlecode.com/files/mecab-0.99.tar.gz
tar zxvf mecab-0.99.tar.gz
cd mecab-0.99/
./configure --enable-utf8-only
make
make install
ldconfig
cd /usr/local/src
wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801/
./configure --with-charset=utf8
make
make install
cd /usr/local/src
wget http://mecab.googlecode.com/files/mecab-python-0.99.tar.gz
tar zxvf mecab-python-0.99.tar.gz
cd mecab-python-0.99/
python setup.py build
python setup.py install
### mod_wsgi ###
# apt-get install apache2-dev
cd /usr/local/src
wget https://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz
tar xzf mod_wsgi-3.4.tar.gz
cd mod_wsgi-3.4
./configure --with-python=/usr/local/bin/python2.7 --with-apxs=/usr/bin/apxs2
make
make install
fl="/etc/apache2/httpd.conf"
cat > $fl <<_EOF_
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
WSGIScriptAliasMatch / /home/akira/django/django.wsgi
WSGIScriptAliasMatch ^/site([^/]+) /home/site\$1/django/django.wsgi
_EOF_
a2enmod userdir
mkdir /etc/skel/public_html
/etc/init.d/apache2 restart
### USER ###
adduser <ユーザ名> --ingroup sudo
usermod -L root
##
cd
rm setup.sh
--
R:# sh setup.sh
R:# exit

L:$ mosh <ユーザ名>@<IPアドレス> -p 3843
R:$ mkdir django
R:$ cd ~/django
R:$ vi django.wsgi
--
import os, sys, site
site.addsitedir(os.path.dirname(__file__))
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
--

0 件のコメント:

コメントを投稿