[トップページへ戻る]

Ubuntu14.04-ServerでVirtualBox上にWebサーバーを構築する

2014年6月
通常、WebサイトやWebアプリを作るにはLAMP環境のレンタルサーバーを契約して開発・動作確認をする。ただし、契約プランによってはブログ(WordPress)やDB, PHPなどの機能が追加できないサーバーもある。そこで、自分が自由に使えるWebサーバーを用意することにした。
一般公開する目的ではなく個人の実験用なので、セキュリティのことはあまり考えず、とりあえず動くものを、ということで気軽に構築した。

目次
  • UbuntuでWebサーバー
  • UbuntuでFTPサーバー


UbuntuでWebサーバー
  • Web開発/勉強のためにWebサーバーを構築する。外部(インターネット)には公開しない。
  • サーバー用に別途PCを用意するのではなく、仮想マシン上にサーバーを作る。
仮想マシン: VirtualBox ver 4.3.12
ホストOS: Windows7/Pro.
ゲストOS: Ubuntu14.04-Server

インストール
Ubuntu-Serverのisoファイルをダウンロードし、VirtualBoxにインストールする。インストール中にオプション選択でLAMP環境を作る。
インストール完了後、lubuntu-desktopをインストールする。コンソールをなるべく使わず、GUIでできることはGUIで、の方針。その他、PhpMyAdminなど必要に応じてインストールする。

ホストOSや同じLAN内の別PCからゲストOSにブラウザでアクセスできるようにする
VirtualBox上のどのゲストOSも起動していない状態で次の通り設定する。
  1. 目的のゲストOS(Ubuntu)を選択 - 設定 - ネットワーク -
    アダプター1… 割り当て:NAT。「ネットワークアダプターを有効化」がチェック済みであることを確認する。
    アダプター2… 割り当て:ブリッジアダプター。「ネットワークアダプターを有効化」をチェックする。
  2. 選択したUbuntuを起動する。
  3. コンソールで >ifconfig を実行。ネットワークアダプタの番号とIPアドレスを確認する。
    eth0とeth1のうち、IPアドレス:192.168.xx.xxとなっている方が、ホストOSや外部PCからゲストOSへ向かうもの(ブリッジ)。これを適当なIPアドレスに変更(固定)する。
    もう片方のIPアドレス:10.0.xx.xxは、ゲストOSからWANへ向かうもの(NAT)。
IPアドレスを 192.168.0.nn に固定したとする(nnは数字)。
Ubuntuを再起動し、ホストOSのブラウザから http://192.168.0.nn/ へアクセスし、「Apache2 Ubuntu Default Page」が表示されることを確認する。また、同じLAN内の別PCからも同様に表示できることを確認する。
ここで、PHPの動作確認もしておけば完璧。

Apache2のドキュメントルートを変更する
デフォルトのドキュメントルート /var/www/html/ から、 /home/myname/www/public_html/ に変更する。
  1. /etc/apache2/sites-available/000-default.conf を開く。
  2. 'DocumantRoot /var/www/html' を、
    'DocumantRoot /home/myname/www/public_html/' に書き換える。
  3. /etc/apache2/apache2.conf から適当な<Directory /xxxxx>のブロックをコピーして一部書き換え、2.の続きに追加する。
    DocumantRoot /home/myname/www/public_html/

    <Directory home/myname/www/public_html/>
    Options FollowSymLinks
    AllowOverride None
    Require all granted
    </Directory>
  4. /home/myname/www/public_html/ に適当な index.html を置く。
  5. /home/myname/www/public_html/ の 'www'以下のディレクトリ全てのパーミッションを'x'(実行可)に設定する。
  6. Apache2を再起動する。 >sudo service apache2 restart
  7. ホストOSのブラウザから http://192.168.0.nn/ へアクセスし、4.の index.html が表示されることを確認する。
※デフォルトのドキュメントルート /var/www/html/ のまま運用しても特に問題はない。

UbuntuでFTPサーバー
  • 特定のユーザーからのアクセスのみ受け付けるようにする。
  • FTPクライアントからアクセスしてきたとき、特定のディレクトリ(例えばWebサーバーのドキュメントルート)がルートとなるようにし、それより上の階層に移動できないようにする。
FTPサーバー: vsftpd ver 3.0.2
アクセス先: /home/myname/public_html/ ←FTPクライアントから見たときのルートディレクトリ。

インストール
vsftpdをインストールし、 /etc/vsftpd.conf を下記の通り書き換える。
「=」の前後に空白を入れてはいけない。行末に「#コメント」など余計なものを追加してはいけない。

設定
次の行のコメントマークを外して有効化する。
write_enable=YES
local_umask=022
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

次の行を追加する。
allow_writeable_chroot=YES ←writeableの綴りに注意(誤記ではない)。
local_root=myname/public_html ←homeディレクトリから後のパスを指定する。

次のファイルを作成する。
/etc/vsftpd.chroot_list ←中身は何もなし。0バイトファイルでよい。
/etc/vsftpd.user_list ←アクセスを許可するユーザー名(ここでは myname)を記述する。

動作確認
vsftpdを再起動する。 >sudo service vsftpd restart
ホストOSから、FFFTPなどのFTPクライアントツールでアクセスし(PASVモード)、サーバー側のファイルが見えることを確認する。さらに、ファイルがアップロード/ダウンロードできることを確認する。


◆ ◆ ◆
よくある、ルート権限付きレンタルサーバー(VPS)と同じように使えるサーバーができた。


(C) 『昼夜逆転』工作室 [トップページへ戻る]