さくらVPSでDjangoを動かす
さくらVPSを使ってDjangoを動かすまでのログ。と言っても、基本的には真っ白なCentOSの環境構築と全く同じです。
基本設定
CentOSをサーバーとして活用するための基本的な設定 - さくらインターネット創業日記
基本的なセキュリティの設定は上記のエントリを参考に行いました。
ただし、3のiptablesの設定に関しては、ssh接続するIPアドレスが定まらないのでどこからでも接続できるようにXXXXポートを割り当てたしたのと、Djangoの開発サーバをYYYYポートを使って起動実験ができるよう以下のように設定しました。XXXXとYYYYはwell-known-portで使われていない番号を好きなように設定して下さい。
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport XXXX -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport YYYY -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
全部の設定が終わったら、ついでにyumをアップデートしておきましょう。
$ sudo yum update
とりあえずここらで一旦再起動。
$ # VPSコントロールパネルの「再起動」ボタンを押すか、 $ sudo reboot
再起動が完了するまでしばし休憩(1分くらい)。
Apacheをインストール
$ sudo yum -y install httpd.x86_64 system-config-httpd.noarch httpd-devel.x86_64 $ sudo /sbin/chkconfig httpd on # サーバ起動時にApacheも自動的に起動 $ sudo /sbin/service httpd start # さっそくApachを起動
MySQLをインストール
今回は使わないけどMySQLを使う予定なのでインストールしときました
$ sudo yum -y install mysql-server mysql-devel $ sudo /sbin/chkconfig mysqld on # サーバ起動時にMySQLも自動的に起動 $ sudo /sbin/service mysqld start # さっそくMySQLを起動
mysql-develがないとmysql-pythonでインストールされるMySQLdbのインポートに失敗します。
Python関連
$ sudo yum -y install python-devel python-setuptools $ sudo easy_install mysql-python
python-develがないと、mysql-pythonでインストールされるMySQLdbのインポートに失敗します。
Django
最後にDjangoをインストールします。easy_installとか使ってもいいけど、バージョンのこととか面倒なので直接入れました。
$ wget http://www.djangoproject.com/download/1.1.2/tarball/ $ tar xzvf Django-1.1.2.tar.gz $ cd Django-1.1.2 $ sudo python setup.py install
起動実験
$ django-admin.py startproject testproject $ cd testproject $ python manage.py runserver IPアドレス:YYYY
YYYYはiptablesに設定したポート番号です。ブラウザでアクセスして以下のように表示されればOK
他にインストールしたもの
git
/etc/yum.repos.d/CentOS-Base.repoの末尾に以下を追加
[dag] name=Dag RPM Repository for Redhat EL5 baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 enabled=1 gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
これでインストールできる
$ sudo yum -y install git