Vine Linux 3.1でブログサーバ構築


構想

自宅Webサーバは既にFreeBSDを使って運営しているが、Linuxの学習の為にもう一台サーバを構築して運営する事に決めた。OSはLinuxディストリビューションの中から選択する。ブログアプリケーションとしては、Movable Typeを使うことに決めた。ライセンス的にも個人で使うには無償で利用出来るからだ。

MovableTypeを使うには、Apache、perl、MySQL(必須ではないが)を動かす必要がある。出来れば将来的にXOOPSも導入したいのでその時にはPHPも追加したい。

サーバ用途にX-Windowは要らないというのが、私の基本的な考えなので、Linuxを最小インストールして、必要なパッケージだけインストールするようにしたい。ハードウェア環境も贅沢な事は言えないので、出来るだけ軽くかつ利便性のある構成にしたい。ディスプレイ、キーボード、マウスは接続せず、電源とLANケーブルしか接続したくない。

日常のメンテナンスは、リモートでSSHを使うか、Webブラウザで行いたい。とにかくPC本体は電源入れっぱなしでラックに収納したままとし、日常的には触れる必要が無い状態にしたいのだ。

もう一つは切実な課題である。ADSL回線を使って自宅Webサーバを公開している関係上、ブロードバンドルータでNAT動作させている。ブロードバンドルータには、ポートフォワードという機能があるので、Webサーバとして標準的に使用される80番ポートは、既存のFreeBSDサーバに転送する様にしている。つまりインターネットに公開するには、80番ポート以外のポートを使う必要がある。仕方ないので8080ポートを使うことにした。

OSの選定

自宅サーバということで、Linuxを使ってMovableTypeを導入する事に決めた。Windowsでも可能だろうが、ライセンスの問題やら、サーバOSでないとアクセス数の問題やら、煩わしい制限があるので、問答無用でWindowsは却下した。

さて、Linuxを使うと決めたが、ディストリビューションがいっぱい有るので選定に困ってしまう。会社ではRedhatかSuSEしか使わないので、出来ればどちらかでと思ったりもしたのだが、重いという事と、ライセンス(有償)の課題はどうしてもクリア出来ない(要するにお金はかけたくないのだ)。

また、使えるハードウェアも限られているので、自ずとディストリビューションは絞られてくる。今回使おうと思っているPCは、FujitsuのFMV DESKPOWER CIX355というWindows98SEモデルの型遅れなPCだ。スペックを簡単に下に記しておく。

こんなショボいマシンでは、動かすOS選びも慎重にならざるを得ない。という条件から思いつくのは、DebianかVineだ。どっちにしようか非常に迷ったが、今までにも何度か使ったことのあるVine Linuxを選択した。ショボいマシンで動かすという条件からすると、Debianは非常に魅力的なのだが、まだ余り使い込んだ事が無いので一回で作り込む「自信が無い」のである。何度も作り直す時間的余裕も気力も無いので...

OSのインストールと基本設定

Vine Linux 3.1を使う事に決めたので、最小構成でインストールする。ランゲージを英語にするか日本語にするか迷ったが、とりあえず日本語を選択した。コンソールは文字化けするので、そのままでは使い物にならない。シェル起動時にLANG=Cを実行するようにした。

Vine LinuxはAPTを使えるが、デフォルトではextrasを見に行かない設定になっているので手直しする。
/etc/apt/source.list を編集してextrasを追記するだけで良い。

早速aptのリポジトリを更新しておく。

# apt-get update

その次にパッケージを更新しておく。

# apt-get upgrade

これで基本的な準備は整った。これから順番に必要なパッケージを追加してMovableTypeが動作する環境を作る。

Apacheのインストール

Apacheには1.3系と2.0系があるのでどちらを使うか少々迷ったが、使い慣れた1.3系で行くことに決めた。おそらくそんなにアクセス数も無いだろうから、2.0系のメリットを享受出来ないと判断したからだ。

Apacheのパッケージをインストールする前に、Apacheに関するパッケージがどれくらいあるか確認してみる。結構な数のパッケージがApacheと関連していることが分かる。

# apt-cache search apache | less

どうやら必要になるのは、「apache」と「mod_perl」の2つのパッケージになりそうだ。apt-getコマンドで2つのパッケージをインストールする。

# apt-get install apache mod_perl

2つのパッケージをインストールしようとしたら、依存関係で4つのパッケージが自動的に選択されて来た。
「perl-HTML-Parser」「perl-HTML-Tagset」「perl-URI」「perl-libwww-perl」
APTの便利なところは依存関係をいちいち調べなくて済む点だ。[y]キーを押してそのままインストールを続ける。

インストールが終わったら、apacheをchkconfigに登録して、自動的に起動する様にする。その後でhttpdを起動させる。いちいちOSを再起動しなくて済む点は、Windowsサーバに比べるとありがたい。

# chkconfig httpd --add
# chkconfig httpd on
# chkconfig --list   
# service httpd start

WindowsのIEから早速リモートでアクセスしてみる。

http://www2.sasapurin.com/

Apacheのテストページが表示されたらひとまずOK。

proftpdのインストール

Vine Linuxを最小インストールした場合は、ftpdがインストールされないようだ。仕方ないのでproftpdを追加する。

# apt-get install proftpd

引き続きproftpdをchkconfigに登録して、自動的に起動する様にし、その後でproftpdを起動する。

# chkconfig proftpd --add
# chkconfig proftpd on
# chkconfig --list
# service proftpd start

デフォルト設定が気に入らないならば、必要に応じて、/etc/proftpd.conf を編集すると良いだろう。

MySQLのインストール

MySQLをインストールする。何をインストールしたら良いのか分からないのでちょっと調べてみた。とりあえずMySQLに関するパッケージがどれだけあるのか調べてみよう。

# apt-cache search mysql

最低限必要なのは、「MySQL-server」と「MySQL-client」と「perl-DBD-MySQL」の3つらしいが、「MySQL-shared」も必要なのかな?というところ。とりあえず3つだけインストールしてみる。

# apt-get install MySQL-server MySQL-client perl-DBD-MySQL

Webminのインストール

Vine Linux 3.1では、Webminが簡単に使えますのでインストールすることにします。目的はMySQLの操作をする為です。MySQLを操作出来る人や、余計なパッケージを入れたくない人は、Webminをインストールしなくても別に構わないでしょう。私はSQL覚える気が無いので素直にWebminで楽しようと考えました。

Vine Linux 3.1のWebminパッケージは、基本モジュールが一通り入るので、debianのWebminパッケージの様に、モジュールを一つずつ追加する手間は無い。しかし余計なものが入るのはちょっと嫌な感じである。でもまぁ贅沢は言えないので、Webminをインストールする。

# apt-get install webmin

依存関係で、「perl-Net_SSLeay」というパッケージも一緒にインストールされるようだ。

また、chkconfigにも自動的に登録されて、サービスも開始する様だ。とりあえずchkconfigの状態は確認しておこう。

# chkconfig --list

WebminからMySQLを操作する

Windowsパソコンから、Webブラウザを使ってポート10000へアクセスすれば、Webminを操作することが出来る。どうやらSSL対応なので、httpsでアクセスしなくてはならないようだ。

https://www2.sasapurin.com:10000/

しかし、Access Denyされてしまう。アクセス制御がかかっているようだ。/etc/webmin/miniserv.conf にアクセス制御の記述がある。デフォルトでは127.0.0.1しか許可していないから、リモートでは制御出来ない様だ。miniserv.confをエディタで開いて、下記の様に記述を変更してサービスを再起動してみる。

allow=127.0.0.1 192.168.0.
# service webmin restart

もう一度Windowsパソコンから、Webブラウザを使ってアクセスしなおしてみたら無事にアクセス出来るようになった。rootアカウントと、Vine Linuxに設定したrootのパスワードを使ってリモートログイン出来ることを確認する。ついでにWebminのアップデートもしておくと良いだろう。

WebminからMySQLを操作してみる。デフォルトではMySQLのrootアカウントに、パスワードが設定されていないので、Webminからパスワードを設定すると楽だと思う。現時点、私にはSQLは全く分からないので、パスワードの設定と、データベース作成がWebmin導入の目的だったりする。(MovableTypeを運用し始めてからはデータベースのバックアップという重要な役目も待っているが。)

現在のWebminのMySQLモジュールにはバグというか、ミスがあるようだ。WebminからMySQLサーバを停止したり起動したりしようとするとエラーが表示される。原因は単純なもので、mysqlサーバの名前が「mysqld」と誤記されているからだ。Webminを操作して、下記の様にMySQLモジュールの修正を行えば解決する。

起動コマンド
/etc/rc.d/init.d/mysqld start
    ↓ 
/etc/rc.d/init.d/mysql start
停止コマンド
/etc/rc.d/init.d/mysqld stop
    ↓
/etc/rc.d/init.d/mysql stop

データベースの作成

Webminへのアクセスが可能になり、MySQLの操作が行える様になったついでに、MovableType用の新しいデータベースを作成しておこう。私はmtというデータベースを作成した。

なお、テーブルの作成などは、MovableTypeのCGIスクリプトが行ってくれるので、ここではデータベースだけ作成しておけば充分だ。正直なところ私は本当にSQLが分からないのでWebminが頼りだ。

Movable Typeを入手する

Windowsパソコンで、http://www.sixapart.jp/movabletype/index.htmlにアクセスする。ユーザー登録をしてからMovable Typeをダウンロードする。ライセンスについて問われるが、個人で一人だけで使用する分にはお金はかからない(ただし作成出来るブログは3つまで)。ありがたいことだ。

ユーザー登録の手順が分からないという人は、http://www.jitaku-server.net/を参考にすると良いだろう。細かく丁寧に解説してくれている(Movable Typeのインストール)。なおこのサイトで紹介されている手順は、Movable Typeのオフィシャルなマニュアルに書かれている事とほぼ同じなので、環境が同じなら当サイトよりもお勧め出来る。

余談になるが、私は、cgi-bin ディレクトリでCGIを動作させるのでは無く、public_html ディレクトリで色々とCGIを動作させたいので、違う方法を選択した。

ダウンロードしたアーカイブは、圧縮されているので解凍しておこう。

Apacheの設定変更

Apacheのデフォルト設定では、public_html ディレクトリによる、個人のページ開設が許可されていない。私しか触れることの無い自宅サーバなので内部のセキュリティは緩くても大丈夫だと判断し、public_html ディレクトリでもCGIの実行を許可したい。

また、ポート番号80は、FreeBSDで稼働させているWebサーバで使用しているので、8080で待ち受けしてくれるようにバーチャルホストをしたい。

/etc/httpd/conf/httpd.conf をエディタで開いて、上記の要件を満たすように変更する。

# vi /etc/httpd/conf/httpd.conf

Listen ポートへの8080ポート追加

Apacheは複数のポートでサービスを提供することが出来るので、下記の様にリッスンポートを80と8080の2つ受け付ける様、新たにListen 8080 を追記する。80ポートを残した理由は、LAN内部のみで使用したいコンテンツ(Webalizer等のアクセス解析)を80ポートで動かせば、外部からは見えないから合理的だと思ったからだ。もちろん80ポートが不要ならその行は要らない。

Listen 80
Listen 8080 

public_htmlの有効化(行頭の#を削除する)と、ExecCGIの記述追加

<Directory /home/*/public_html>
     AllowOverride FileInfo AuthConfig Limit
     Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
     <Limit GET POST OPTIONS PROPFIND>
       Order allow,deny
       Allow from all
     </Limit>
     <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
       Order deny,allow
       Deny from all
     </Limit>
 </Directory>

CGIスクリプトの有効化

 AddHandler cgi-script .cgi

バーチャルホストの設定

NameVirtualHost *:8080
   
<VirtualHost *:8080>
   ServerAdmin root@www2.sasapurin.com
   DocumentRoot /home/sasapurin/public_html
   ServerName blog.sasapurin.com
</VirtualHost>

httpdサービスの再起動

編集した内容を保存したら、 httpdサービスを再起動する。

# service httpd restart

CGIの動作検証

WindowsパソコンからFTPクライアントツール(FFFTP等)を使って、自分のホームディレクトリにアクセスする。ここで一つ重要な作業は、自分のホームディレクトリのパーミッションを755に変更する必要があることだ。FFFTPから行えるかどうかは未確認だが、私の場合は /home/sasapurin/ のパーミッションを755にしないとHPを公開出来なかった。

そこにpublic_htmlフォルダを作成する。このフォルダも755にしておく必要があるらしいが、その辺りは各々の許せる範囲で設定すれば良いだろう。幸い私の環境では「私自身しか触らないサーバ」なので、緩い設定が出来た。

FFFTP等を使って、public_htmlフォルダに、MovableTypeのアーカイブを解凍したファイル群の中から、「mt-check.cgi」を転送して、パーミッションを755にする。直接Linuxを操作したり、SSHで操作出来る場合は、下記のようにすれば、実行権を追加出来る。

# chmod +x mt-check.cgi

この状態で、WindowsパソコンのWebブラウザから、自分のホームページ領域にある、mt-check.cgiを実行してみる。エラー表示無く、「Movable Type システム・チェック」 が表示されたら、CGIの動作もOKだ。

http://blog.sasapurin.com:8080/mt-check.cgi

MovableTypeファイルのアップロード

Windowsパソコンから、FFFTP等のFTPクライアントツールを使って、MovableTypeのファイル群を、自分のホームディレクトリの中に作った、public_html フォルダの中に全て転送する。

そして拡張子がcgiのファイルに実行権を与える。FFFTP等から地道に一つずつ行っても良いが、Linuxを直接、またはSSHから操作出来るのであれば、下記のようにすれば一気にパーミッションを変更出来る。

# cd
# cd public_html
# chmod +x mt*.cgi

MovableTypeのインストール

インストールは、実は非常に簡単である。そして最も信頼出来る手順書は、既に参照出来る状態にあるハズだ。なぜならMovableTypeのファイル群をアップロードした時に、インストール手順書もアップロードしているからだ。

Windowsパソコンから、Webブラウザを使って下記のようにして手順書を開いて、その通りに実行すれば問題なくMovableTypeのインストールは行えるハズである。

http://blog.sasapurin.com:8080/docs/mtinstall.html

非常に整然とされた手順書が表示されたと思う。これだけ分かりやすい手順書があれば、私がとやかく書いても無駄だと思うので、インストール手順については割愛することにする。

メモリーの使用状況確認

最後に気になっているメモリーの使用状況を確認しておく。今回は64MBしか実装していない為、もしかしたらスワップ領域を食いだしている可能性があるからだ。それと今後XOOPSを使う為にPHPを入れたりする余裕があるか知っておきたい。

# free

未使用のメモリーは、約8MBと少々厳しい事になっている。FreeBSDなら64MBもあれば、サクサク動いてくれるのだが、Linuxはどうやらメモリーを食うようだ。このままではXOOPSを導入する際に足枷となってしまいそうだ。対応策を検討しようっと(メモリーは持っているのだが、無駄に実装しても意味がないかなと)。

最後に

MTはデフォルトでもブログとして充分使用できるが、デザインを自分の好みにしようとすると、XHTML、CSS、JavaScript等の知識がどうしても必要になってくる。非常に柔軟性があるので、全然違うデザインにする事も知識さえあれば可能である。

最初はデフォルトで基本機能を使って、ブログの挙動を把握して、それから独自のカスタマイズを行うと良いだろう。改造するテクニックを紹介しているサイトも結構あるが、詳しく解説された書籍も発売されているので、自分に合う本をさがして購入してみても良いと思う。とりあえず私が購入した本と、XOOPS関連書籍を下に記しておくので参考にして欲しい。

即実践!ブログ徹底カスタマイズ術 Movable Typeで自分好みに!―Movable Type3.1/3.0日本語版対応
武井 一巳

4774122238

関連商品
Movable Typeスタイル&コンテンツデザインガイド―コンテンツ管理システム(CMS)ツールとしてのMovable Type活用術&実践サイトデザイン術
ブログ自由自在 Movable Type 上級カスタマイズ術
Movable Type公式タグリファレンス
Movable Type標準ハンドブック Movable Typeで今すぐできるウェブログ入門 改訂版
Dr.BlogのMovable Typeスタイルデザイン&テンプレート集
by G-Tools

TOP