usakdsteen

ゆうさくですてぃーん

ウェブサーバー構築

レンタルサーバーにアップロードする前に

自前の環境でテストするためにウェブサーバーを構築することにした

PCのウェブのポートを開けたくなかったので仮想環境に構築することにした

以下、手順等を記す

Oracle Virtual Box 4.2.12(以下VB)上にサーバーを構築した

ホストOSはWindows7 Starter SP1

PCのスペックは CPU 1.67GHz(Intel Atom N570) メモリ 1.00GB

構築するゲストOSは Debian 6.0.7 (Squeeze)

Debianの公式サイトから

Debian 6.0.7のi386のnetinstのisoをダウンロード

VB上にDebian用の仮想環境を追加

名前 Debian 6 (Squeeze) Server RAM256

メモリ 256MB

HDD VDI 可変 5GB

ネットワーク1 NAT

ネットワーク2 ホストオンリー

ネットワークアダプタにはいくつか種類があるようで

NAT … ホストOSがルータのように働きゲストOSからホストOS経由で外部ネットワークへ接続することができる、ゲストOSが外部ネットワークに晒されない。ただし、ホストOSからはゲストOSに通信できないとのこと

ホストオンリー … ゲストOSとホストOSの間だけで通信できる、ホストOSとゲストOSの相互に通信ができる。ゲストOSは外部のネットワークには晒されない。VBで接続用のDHCPIPアドレスを設定できる。

ブリッジ … ホストOSのネットワークアダプタをゲストOSからダイレクト(?)に扱えるらしい、ゲストOSがホストOSと同じネットワークに晒される。そのネットワーク経由でゲストOSとホストOSの通信も可能

IDE(CD)にダウンロードしたisoをセットして起動

Debianインストーラが起動するから

一番上のinstallを選ぶ

言語とか時間とか日本を選択していく

taskselのとこは

ウェブサーバー、SQLサーバー、SSHサーバー、標準システムユーティリティ(?)

の4つを選択した

(このSQLサーバーはPostgreSQLだった、MySQLを使いたいので後でインストールすることに)

マシン名とかrootパスワード、ユーザー名&パス等を設定したり

ブートローダGRUBのインストールしたり

まぁ全て選択とエンターだけの簡単な作業のみでインストールできた、非常にありがたい

んでインストール終了し仮想システムが再起動しDebian Linuxが起動する

入れたい機能は MySQL Server, PHP5(gd,imagick,curl,mysql) だけ一応分かってるのでそれをインストール

aptitude search ^mysql | more

aptitude search ^php5 | more

で一応パッケージを確認

aptitude install mysql-server

aptitude install php5

aptitude install php5-gd php5-imagick php5-curl php5-mysql

とインストール、なんか確認のメッセージとかよく分からんが Y とyesしといた

aptitude 簡単にパッケージのインストールできるので非常にありがたい

一通り終わったんで

ホストOSのTera TermからSSHで接続しようとしたら

(接続先はVBの環境設定のネットワークのところにホストオンリーのIPアドレスが出てるのでそれを入力すればよい, 192.168.*.* な感じのアドレスが書いてある、自分で好きなアドレスに変更もできる)

接続できないでやんの

どうもネットワーク2が準備できてなかったという

小一時間調べて以下の方法で解決

/etc/network/interfaces

というファイルに

auto eth1

iface eth1 inet dhcp

を追記後

ifup -a

を実行で解決

次に

/var/www 以下にphpinfo.phpファイルを作り

<?php phpinfo(); ?>

と書いてIEで見てみるとgdとかcurlがロードされてなかった

IEで開くには先ほどのVBの環境設定のIPアドレス

http://192.168.*.*/phpinfo.php という感じに入力すればよい)

のでapache2の再起動を試みようと小一時間奮闘

cd /etc/init.d/

apache2 restart

とすると何かエラーがでる、apache2のドキュメント見て解決したが

/usr/sbin/apache2 というやつが邪魔をしてるらしく

結局

apache2ctl restart

とすればいいことが分かり、無事PHPのモジュールロード完了

(どうもphp5本体とモジュールのインストールを別にしたのが悪かったぽい?)

次に標準ユーザのとこにpublic_htmlディレクトリを作って

簡易なindex.htmlを作って置いて

ホスト側のIEでユーザのHPを見ようとしたら見れない

これも小一時間調べたら

apache2の公式サイトに詳しい日本語の説明が書いてあるじゃないかと

今更ながらたどり着いてみてUserDirがどうのこうのとuserdir.confと

/etc/apache2/mods-available

のフォルダにusrdir.confがあるから見るとpublic_htmlロードが記述されてるじゃんとか思ってさらに小一時間

apache2の付属ドキュメント README.Debian を読んだら解決が書いてあって

(man apache2ctl に書いてあったパスの

gunzip -c /usr/share/doc/apache2-common/README.Debian.gz>~/hoge.txt

とかして

less hoge.txt で読んだ)

/etc/apache2/mods-enabled

のフォルダにロードしたいモジュールのmods-available下シンボリックリンク貼れと

そうと分かれば簡単

cd /etc/apache2/mods-enabled/

ln -s ../mods-available/userdir.conf userdir.conf

ln -s ../mods-available/userdir.load userdir.load

apache2ctl restart

これで無事ユーザーHPが見られましたとさ、ちゃんちゃん

ちなみにapache2の公式ホームページの日本語ドキュメントは古いとか書いてあって

ドキュメント通りにuserdir.confを

UserDir public_html

UserDir enabled  ← この行を追記

UserDir disabled root

と書きなおしたらエラーと

UserDir enabled

の行がいらなかったらしい削除したらちゃんと動いた

(つまり最初から書き直しはいらなかったと・・・)

それと、DebianGUI環境入れなかったのでそのままだと日本語表示できない

rootでログインしてaptitudeとかそのまま起動したら文字化け

LANG=C と環境変数を変えて英語モードで見るしかないわけだが

ホストOSからTera TermでSSHログインすればそんなこと問題なくなる

日本語がちゃんと表示されるのだ!やったぜ!

以上。ウェブサーバー構築日記