書き物サイトをCMSに移行

このブログとは別に運営してる書き物サイトを全面的にCMSシステム上に移行することにした。もうね、ページ間ナビゲーション付きのHTMLをちまちま手で書いてFTPでアップロードするのが面倒になってきたもんで。

昔からWebアプリ嫌いだった人間としては、ページ表示のたんびにPHPプロセスが起動してRDBにアクセスするCMSとか、なにそれバカバカしいとしか思っていなかったけど。Webブラウザさえあれば、どこからでもちまちました技術メモとか気軽に書き込める誘惑には勝てなくなった。

本当にCMS化したいサイトは別にあるのだけど。ま、今回はその予行練習ということで。XOOPSmodxJoomla!あたりを片っ端から試してみる。

  • modxの、Ajaxとかを活用した操作体型は今風で素敵。いつまた手打ちHTMLに戻るかもとか、他のCMSへ浮気するかもとか考えると、静的サイト構成との親和性の高さは魅力的。ただー、どうも今一つ国内外での盛り上がりに欠けている印象が。
  • XOOPSは、モジュール互換性が無いレベルにまでプロジェクトが分裂してるっぽいのがイヤ。後発のCMSを見た後だと、どうにも画面が古くさく見えるのは仕方ないか。
  • で、Joomla!。日本ではそこそこ盛り上がっていそう。少なくとも日本以外では十分盛り上がっている模様。最初からおまけで付いているデザインテンプレートはそこそこ格好いい。

半日悩んでJoomlaにした。

      • -

さて、ここからはさくらインターネットのレンタルサーバ(スタンダードプラン)にJoomlaを入れた時の作業メモ。セキュリティ的に穴のある作業内容かもしれませんが、責任はとらないよん。


現時点でさくらスタンダードプランの提供する環境は以下の通り。

OS
FreeBSD 7.1
HTTPサーバ
Apache 1.3.41 (マルチドメインOK)
スクリプトエンジン(CGI版)
PHP 5.2.10 (SafeModeはオフ)
RDB
MySQL 5.1.36 (InnoDBは未サポート)

Joomlaじゃぱんが非公式にローカライズしたJoomla1.5.14ベースの「Joomla_1_5_14_in_Japanese.zip」を http://sourceforge.jp/projects/joomla/ からダウンロードしてインストールを行った。

インストールに先立って、MySQL上にJoomlaの使うデータベースを用意しておく必要がある。さくらコントロールパネルのphpMyAdminを使えば作業は楽。Joomlaインストール作業の後々になってMySQLサーバ名(mysql***.db.sakura.ne.jp)とデータベース名、MySQL接続用のユーザ名とパスワードの入力を求められるので、覚えておくこと。

Joomlaの使うデータベースの照合順序は「utf8_general_ci」に設定しておく必要がある。さくら運営のphpMyAdminの最初の画面に「utf8_general_ci」が表示されているかも知れないが、これだけでは不十分。個別のデータベース設定の「操作」タブからもしっかり照合順序を設定しておく必要がある。

いざJoomlaの運用が始まると、Joomlaのインストールディレクトリ配下に書き込みが発生したりするので、いくつかのディレクトリにはパーミッションu+wxが必要。めんどくさいので全ディレクトリを755にしといた。まずいかも?まあいいや。
PHPスクリプトを実行するためには実行フラグが必要(u+x)。さくらスタンダードプランでは、ApacheのsuExec機能を使ってPHPスクリプトが実行されるようなので、無くてもよい書き込みフラグは確実に消しておかねばならない。(go-w)
Joomlaの1000個以上あるPHPスクリプトパーミッションを修正して回るのは大変なので、

% find ./適当 -name "*.php" -print0 | xargs -0 chmod 755

のようなコマンドが便利。


PHP設定の修正を正しく行なっておかないと、Joomlaインストールの冒頭で警告が出る。インストーラApache設定ファイルの.htaccessで対処しろと言ってくるが、PHP設定ファイルのphp.iniの方で対処しないとうまく動かない。
マルチドメイン運用でも、/home/***/www/直下にphp.iniを用意する必要がある。
とりあえずさくらコントロールパネル経由で

mbstring.language = neutral
display_errors = Off

php.iniに指定しておけば、インストールは続行できる。

さて、ここまでやっておけばJoomlaのインストールを完了させるところまではできる。さくらのWAF(Webアプリケーションファイアウォール)機能は、とりあえずJoomlaインストール時点では無効にしといた。

さて、Joomla管理画面でテンプレート関係の設定をセーブすると、「パラメータファイルは書き込み不可!」とかでてくる。だけどきちんとセーブはされている。パラメータファイルのパーミッションは555になってるけど。あれ、何か間違えた?まあいいや。

Joomla管理画面で「Apache mod_rewriteを利用」をONにしたい人は、インストールディレクトリのhtaccecc.txtの内容を.htaccessにコピーする必要がある。だが、さくらでは

Options +FollowSymLinks

の行をコメントアウトしなければうまく動かなかった。
マルチドメインで運用したい人は

# RewriteBase /

のコメントを外す必要もあるかも。「/」は各々の状況に合わせて適当に。
あとは好みで

DirectoryIndex index.php .ht

とかを書いておくのもいいかも。URLからindex.php消したい人はね。