レンタルサーバーにアップロードする前に
自前の環境でテストするためにウェブサーバーを構築することにした
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をダウンロード
名前 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で接続用のDHCPやIPアドレスを設定できる。
ブリッジ … ホストOSのネットワークアダプタをゲストOSからダイレクト(?)に扱えるらしい、ゲストOSがホストOSと同じネットワークに晒される。そのネットワーク経由でゲストOSとホストOSの通信も可能
IDE(CD)にダウンロードしたisoをセットして起動
一番上のinstallを選ぶ
言語とか時間とか日本を選択していく
taskselのとこは
ウェブサーバー、SQLサーバー、SSHサーバー、標準システムユーティリティ(?)
の4つを選択した
(このSQLサーバーはPostgreSQLだった、MySQLを使いたいので後でインストールすることに)
マシン名とかrootパスワード、ユーザー名&パス等を設定したり
まぁ全て選択とエンターだけの簡単な作業のみでインストールできた、非常にありがたい
んでインストール終了し仮想システムが再起動しDebian Linuxが起動する
入れたい機能は MySQL Server, PHP5(gd,imagick,curl,mysql) だけ一応分かってるのでそれをインストール
aptitude search ^php5 | more
で一応パッケージを確認
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がロードされてなかった
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
の行がいらなかったらしい削除したらちゃんと動いた
(つまり最初から書き直しはいらなかったと・・・)
それと、DebianのGUI環境入れなかったのでそのままだと日本語表示できない
rootでログインしてaptitudeとかそのまま起動したら文字化け
LANG=C と環境変数を変えて英語モードで見るしかないわけだが
ホストOSからTera TermでSSHログインすればそんなこと問題なくなる
日本語がちゃんと表示されるのだ!やったぜ!
以上。ウェブサーバー構築日記