Debianで開発環境構築

今までsakuraのVPSプランの512を使ってたけど、
2Gへ移行したのでその時の手順のメモです。
まず環境設定したあと、phppythonの開発環境設定を行ないます。

まずスペックを比較するとこんな感じ。

プラン VPS 512 VPS 2G
メモリ 512M 2G
HDD 20G 200G
仮想CPU 1コア 3コア
月額 980円 1480円

512のプランから500円足すだけで
これだけガッツリ上がるなら変えなきゃ損ですね。

Debianのインストール

sakuraではデフォルトOSがCentOSになってるので
コントロールパネルからカスタムOSインストールで
debianを選びOSの再インストールします。

512のプランの時は、LVMを入れてなく今回の移行のように
最初からの構築になってるので今回は導入します。
次からrsyncで簡単に移行できるようになります。

とりあえず、以下のようにボリューム切りました。

  • System(論理グループ)
    • root(4G)
    • var(20G)
    • home(10G)
    • usr(2G)
    • tmp(2G)

あとは、必要に応じてサイズを増やしていくだけですね。

OSインストール完了後、まだリモート接続できないので
VNCコンソールからsshだけはインストールしときます。

# apt-get install ssh

基本的な環境を設定

viを使用するのでnanoを削除
# apt-get remove nano
システムアップデート
# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
必要なパッケージをインストール

とりあえず、自分がよく使うものaptでインストール

sudo
zsh
vim
dnsutils(dig, nslookupなど)
lv
nkf
psmisc(pstree)
subversion
git
ethtool(nicの状況がわかる)
etckeeper(etc配下をgitで管理できる)
locate
build-essential(基本的な開発環境)
sudo使用時にパスワード入力しなくても実行できるようにする

visudo を起動して次の文字を追記する

# visudo
<ユーザ名> ALL=(ALL) NOPASSWD:ALL
※「%admin ALL=(ALL) ALL」が最後に評価されると
すべてパス有りとなってしまうため、上記は最終行に追記する
デフォルトシェルをzshする

ログインシェルをbashからzshへ変更

% chsh

一旦ログアウトしてログインするとzshに変更される


開発環境構築

最初に必要なpkgをインストール

webサーバーとDBは、apachemysqlを使用するのでインストール

% sudo apt-get install apache2 mysql-server
php用開発環境として以下をインストール
% sudo apt-get install php php-pear php-db php-mysql

上記でひとおとおり動くようになりますが、画像処理がある場合
以下もインストールしておく必要があります

% sudo apt-get install php5-imagick php5-gd imagemagick

apacheを一度更新した後、サンプルphpソースを置き動作確認します。

sudo vim /var/www/index.php

<?php phpinfo(); php>
python用開発環境としてはDjango使用するので以下をインストール
% apt-get install python-django python-mysqldb libapache2-mod-wsgi

ドキュメントルートへDjangoのprojectコンテンツを配置し
apachewsgi用の設定を追加
vim /etc/apache2/sites-available/hoge

<VirtualHost *:80>
    ServerName hoge.com
    ServerAdmin user@hoge.com

    WSGIScriptAlias / /var/www/hoge/hoge.wsgi
</VirtualHost>

vim /var/www/hoge/hoge.wsgi

import os
import sys
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.append(PROJECT_DIR)

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

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

apacheの設定を反映

% sudo a2ensite
% sudo /etc/init.d/apache2 restart