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 …