さくらVPSでWEBアプリケーションを稼働させることを想定した時、まずローカルの仮想マシン上で同等のサーバ環境を構築してそこで安心して開発したいなと思いました。
さくらVPSでCentOSをインストールしたときの状態を思い出しながら最低限の環境インストールまで記録しておきます。
VirtualBox のインストール
省略します。どこかのサイトを参考にしてください。
そんなに苦労したり悩んだりしなかったはずです。
CentOS 6.6 のインストール
isoイメージのダウンロード
http://wiki.centos.org/Download
ここからイメージをダウンロードします。32bitならi386、64bitならx86_64を選択します。
リンクを巡っていった先にある、"CentOS-6.6-i386-minimal.iso"または"CentOS-6.6-x86_64-minimal.iso"をダウンロードします。
この記事を書いてる時には64bitの仮想マシンを構築することを想定しているので、"CentOS-6.6-x86_64-minimal.iso"を選択したとします。
新規マシンの作成
Oracle VM VirtualBox マネージャを起動します。
上のメニューから、「仮想マシン」>「新規」を選択します。
名前とオペレーティング・システム
「名前」は適当に決めます。
「タイプ」は"Linux"。
「バージョン」は"Red Hat (64bit)"。
(名前に「Cent」とタイプすると勝手にタイプとバージョンを予想してくれるっぽい。)
メモリーサイズ
さくらVPSで契約した仕様に合わせればいいと思います。
1024MBか2048MBに設定。
ハードドライブ
「仮想ハードドライブを作成する。」を選択します。
仮想ハードドライブのファイルタイプ
"VDI(VirtualBox Disk Image)"を選択します。
物理ハードドライブにあるストレージ
「可変サイズ」を選択します。
ファイルの場所とサイズ
何も変更せず「作成」を押します。
たぶん仮想ハードドライブのサイズは8.00GBになってるかな。
仮想マシンの設定
作成されたマシンを左のリストから選んで、右クリックから「設定」を選択します。
「ストレージ」を選択し、ストレージツリー内の「コントローラー: IDE」>「空」を選択します。
右の「属性」のCDアイコンをクリックしてCentOSのisoイメージを選択します。
「ネットワーク」を選択し、「アダプター2」に切り替えます。
「ネットワークアダプターを有効化」にチェックを入れます。
「割り当て」を「ホストオンリーアダプター」に設定します。
「OK」を押して完了です。
仮想マシンの起動
作成されたマシンを左のリストから選んで、右クリックから「起動」を選択します。
少しして、"Welcome to CentOS 6.6!"の画面が表示されます。
"Install or upgrade an existing system"を選択します。
しばらくすると、メディアチェックしようと促されますが、"Skip"を選択します。
CentOS のインストール
CentOS6のインストール画面が表示されます。「Next」をクリックします。
"What language would you like to use during the instration process?"を訊かれるので、日本語を選択します。次へ。
システム用のキーボードも日本語にします。次へ。
ストレージデバイスのタイプは、「基本ストレージデバイス」を選びます。
ストレージデバイスの警告が出ますが、何も含まれているはずがないので、「はい」を選択します。
ホスト名は好きに設定してよいですが、私はデフォルトのままにしています。
左下のネットワークの設定を押して、eth0とeth1を共に自動接続するようにチェックします。次へ。
タイムゾーンはデフォルトの「アジア/東京」にします。次へ。
rootのパスワードを適当なものに設定します。次へ。
インストールのタイプは「既存のLinuxシステムを入れ替える」でよいと思います。深く考えていません。次へ。
「変更をディスクに書き込む」を押して、インストールを待って完了です。
CentOS 6.6 の設定
とりあえずrootでログインします。
ネットワークの設定
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
以下のようにeth0を起動時に有効にするよう書き換えます。
ONBOOT=yes
再起動します
$ reboot
ユーザ作成
usernameというユーザを作成するとします。
$ useradd username
$ passwd username
Changing password for user username.
New password:(パスワードを入力)
Retype new password:(再度入力)
passwd: all authentication tokens updated successfully.
usernameでsudoできるようにします。
$ visudo
99行目あたりを書き換えます。
root ALL=(ALL) ALL
username ALL=(ALL) ALL
exitしてusernameでログインしなおします。
パッケージの更新
$ sudo yum -y update
EPELリポジトリのインストール
$ sudo yum -y install epel-release
ファイアウォールの設定
$ sudo vi /etc/sysconfig/iptables
1行追加してこんな感じにします。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
iptablesを再起動します。
$ sudo service iptables restart
Nginx のインストール
インストール
$ sudo yum -y install nginx
自動起動するように設定
$ sudo chkconfig nginx on
起動してみる
$ sudo service nginx start
これでホストOSのブラウザからIPでアクセスできます。
IPアドレスは、
$ ifconfig eth1
を叩いて、"inet addr:"の後ろに表示されます。
あとはnginxの設定ファイルをいじるとか、node.jsを入れるとか好きにやりましょう。
おしまい!
[おまけ] HTMLファイルを公開してみる
ホームディレクトリ以下に公開用ディレクトリを作成する
$ cd
$ mkdir public_html
適当なHTMLファイルを置いておく
$ cd ~/public_html
$ vi index.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>Hello there!</h1>
</body>
</html>
Nginxのサーバ設定をする
本当はサーバごとにconfファイルを作っておくといいと思いますが、今回は簡易のため用意されているデフォルトのconfファイルを編集します。
$ sudo vi /etc/nginx/conf.d/default.conf
15行目あたりを編集します。
location / {
root /home/username/public_html;
index index.html index.htm;
}
ホームディレクトリのパーミッションを変更する
これをしないと403 Forbiddenハマりします。
$ chmod o+x /home/username
SELinuxを無効化しておく
これをしないと403 Forbiddenハマりします。
$ sudo setenforce 0
$ sudo vi /etc/selinux/config
"SELINUX="のところを書き換えます。
SELINUX=disabled
アクセスしてみる
先ほどと同様にIPアドレスでアクセスして、"Hello there"なページが表示されればOKです。
おしまい!