MyBook LiveというNASでWEBサイトをホストしてみた。実践編その3

一昔前と違い、WordPressやJoomla!あるいはDrupalとかModXなど Webサイトを作るのに
Content Management System (CMS)を使うのが当たり前のようになっている昨今、 Apacheサーバーにはデータベースサービス(例えばmysql)とこのデータベースとウェッブページをつなぐツール(例えばPHP)が必要だ。 最初から何も実装されていなければ、lamp(linux Apache mysql php)などという便利なパッケージもあるが、すくなくともapacheサーバーは実装されているのでlamplをインストールするわけにもいかない。

Mybook Liveで動いているApache2サーバーはすでにPHPも実装されている。 UIの画面自体、PHPベースのCakeというフレームワークで作成されているようだ。

<?php phpinfo(); ?>
という一行を phpinfo.php というファイル名でWEB folder上に保存し、(前回の例では/stores/Public/WWW) ブラウザでアドレスを mblwebsite/phpinfo.phpと打ち込むと、PHP情報が表示されるはずだ。
これを見るとMysql用のインターフェースも実装されている。 PHP側からmysqlをアクセスする準備は整っているわけだが、 残念ながらMBLはmysqlのサーバーは実装していない。
そこでMysqlサーバーを個人のリスクでインストールすることになる。
Debian上でのインストールはいたって簡単で、
#aptitude update
でパッケージリストを更新したのち、
#aptitude install mysql-server
または
#apt-get install mysql-server
インストールの準備が整うと、本当に実行しますか?と聞いてくるのでYesと応えるときちんと実行される(はず)
途中でパスワードを作るように催促されるのでMysqlのroot 用のパスワードを適当に考えて入れてやる。(覚えておきましょう)
インストールの終わりにはMysqlサーバーを起動してくれるので、 これをアパッチ側にも認識させるために アパッチサーバーを再起動
/etc/init.d/apache2 restart
これでApache +Mysql + PHP の環境が整った。
また、Mysqlの管理用にphpMyAdmin あるいは sqlbuddyなどの管理ツールを用意しておくと楽である。 これらはいずれもパッケージをダウンロードし、Web用のフォルダーにサブフォルダーを作り、解凍しておくだけで、すぐにブラウザーから使えるようになる。 詳細はそれぞれのパッケージのReadme を見てください。

MyBook LiveというNASでWEBサイトをホストしてみた。実践編その2

さて、

Mybook lveに実装されているLinuxはDebian のLenny というバージョンだが、Debian の現在はSqueeze というバージョンがすでにstable になっている。 debian 系なのですぐにapt-get でアップデートしたくなるのだが、ハードウエアインターフェースの部分がWDの書いたドライバーのようで、その部分がsqueeze で動くかどうかよくわからないなどの懸念があり、、万が一を考えて、あまりむやみなアップデートはしないほうが無難なようだ。

まずは mybookworld.wikidot.comに書いてあるお呪いをいくつか施す

# aptitude hold udev

これでudev 廻りのアップデートを阻止。 つぎに、squeeze base のコードのダウンロードを止めるために /etc/apt/sources.list’ 内の以下の一行をコメント化する(行頭に#を追加)

#deb http://ftp.us.debian.org/debian/ squeeze main

Update: 2011 年9月時点でのファームウエアではSqueeze.main が唯一のソースデポジトリに指定されているので、この部分をコメントアウトするわけにはいかなくなった。

さらにPHPを5.3にアップデートするとUI に使っているCake-PHP というフレームワークが警告を発して画面を壊してしまうので、それを防ぐために前もって前もって以下を実行

# echo “error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED” > /etc/php5/conf.d/cake_1.2.6.ini

# /etc/init.d/apache2 restart

さて、いよいよWEB サーバーを使えるようにしてみる。 前回も書いたが、現状でMybooklive にブラウザでアクセスすると自動的にUIというサブフォルダーにリダイレクトされ、Mybook liveのユーザーインターフェース画面になる。 これそのものがWEBページであり、ようするにWEBサーバーは既に稼働しているわけだ。 これを横取りして自分のサイトを表示できるようにすればよいわけだが、そのためにユーザーインターフェースが使えなくなるのも困る。

前回書いたFeaturePackを使用すると、普通のWEB アクセスはポート8080を通して行われるようになる。これはこれで一つの方法だが、今回はこのFeaturepackを使わずにport80を共用してサイトを運営することを考える。 そのために Apache2 サーバーの NameViritualHost という機能を使う。

この機能、我が家のMBLでは、/etc/apache2/ports.conf というファイルの中で既に設定されてアクティブな状態になっていた。

NameVirtualHost 80:*

Listen 0.0.0.0:80

これで何がおこるかというと、例えば同じWebServer にアクセスする場合でもブラウザに打ち込むURLアドレスによって、違うサイトを表示できるようになっている。 例えば mybooklivesiteA.com とmybooklivesiteB.com というアドレスが同じIPアドレスを参照した場合、リクエストを受けたWeb サーバーはブラウザから送ってきたアドレスによって、違うサイトを表示できる。

Local network で、実験してみる。 とりあえずブラウザを使う側のPCのhosts ファイルに以下を追加する。

mybooklive 192.168.1.5
mblwebsite  192.168.1.5

これでこのパソコンのブラウザのアドレス欄にmybooklive あるいは mblwebsite と打ち込むとIPアドレス192.168.1.5を見にいくようになる。 これは我が家のmybookliveの設定で静的IPに設定した値なので、ブラウザ上にはユーザー設定画面が現れる。

このままではどちらのアドレスを使ってもユーザー設定画面だが、 mblwebsiteを指定したときに自分のサイトが現れるようにしたいわけで、そのためにはetc/apache2/sites_available というフォルダーの中に設定ファイルを作っておき、それをSite-enabled というフォルダにソフトリンクしておく必要がある。

Sites-enable のフォルダーにdefault というファイルがある。 これは見本ファイルだ。 これをコピーする。

#cp default mblweb

mblwebというファイルができる。 このファイルの中身をいじる。 nano というエディターが既に実装されているのでこれを使える。

#nano mblweb

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mblwebsite  #この行追加
ServerAlias mysitename.com www.mysitename.com  #将来、外部からのアクセスを可能にするための準備
DocumentRoot /shares/Public/WWW  #この行を自分が作ったサイトフォルダーに指定
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

<Directory /shares/Public/WWW> #この行変更
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

以下は変更しないので省略

このファイルをセーブし、ソフトリンクを作るために以下のコマンドを実行

#a2ensite mblweb

 

Apollo3G というファイルにははユーザーインターフェースのサイト情報が書いてある。このファイルには

ServerName mybooklive

 

という一行をServeradmin 設定の下ぐらいに追加する。

 

これをセーブしたら、

#/etc/init.d/apache2 reload

で設定をリロードする。

 

ここまでやって、ブラウザにmybooklive と打ち込むとユーザーインターフェースが現れ、

mblwebsiteと打ち込むとShares/Public/WWW 上に置いたWEb siteが表示されるようになる。

抑えておくべき情報: apache2 サーバーの設定方法 (NameVirtualHost, Directory, VirtualHost、ServerName, ServerAlias  などのパラメーター)

次回はmysql の導入にチャレンジ!