Mybook Liveで動いているApache2サーバーはすでにPHPも実装されている。 UIの画面自体、PHPベースのCakeというフレームワークで作成されているようだ。
Monthly Archives: May 2011
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 の導入にチャレンジ!