LoginSignup
34

More than 5 years have passed since last update.

VirtualBox+CentOS+Nginxで、テストWEBサーバを構築する覚書

Last updated at Posted at 2015-04-21

さくら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を起動時に有効にするよう書き換えます。

ifcfg-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行目あたりを書き換えます。

sudoers
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行追加してこんな感じにします。

iptables
-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:"の後ろに表示されます。

アクセスして、
2015y04m21d_201948728.jpg
こんな感じのページが表示されればOKです。

あとはnginxの設定ファイルをいじるとか、node.jsを入れるとか好きにやりましょう。

おしまい!

[おまけ] HTMLファイルを公開してみる

ホームディレクトリ以下に公開用ディレクトリを作成する

$ cd
$ mkdir public_html

適当なHTMLファイルを置いておく

$ cd ~/public_html
$ vi index.html
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行目あたりを編集します。

default.conf
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="のところを書き換えます。

config
SELINUX=disabled

アクセスしてみる

先ほどと同様にIPアドレスでアクセスして、"Hello there"なページが表示されればOKです。

おしまい!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34