XOOPS のインストール

 Blog について興味を持ったのがきっかけで、XOOPS をインストールしてみることにしました。説明をよく読んでみると、Blogとは少し違うみたいですが、モジュールを追加することによって機能が拡張できるので色々な使い方ができそうです。
 私はインストールでトラブルに出会ったので、トラブルとその解決方法を示しながら、IIS6.0 への XOOPS のインストール方法を書いてみます。

インストール前の準備

 XOOPS をインストールするには、WWW サーバ、PHP4.1.0以降、MySQL3.23.xx 以降が必要です。
XOOPS をインストールする前に、PHPとMySQLをインストールします。
 私は WWW サーバとして IIS 6.0 を用いて、XOOPSをインストールしてみることにしました。

 XOOPS は、XOOPS 日本公式サイトのダウンロードページからダウンロードできます。
XOOPS 日本公式サイトには、インストールの手順やフォーラム、XOOPS に関する情報が掲載されています。

インストール

 1回目は、PHP5.0.2、MySQL4.1.5、xoops-2.0.6-ja-eucjp という組み合わせでインストールしました。

 ダウンロードしてきた XOOPS は解凍し、htmlのフォルダの中身を仮想ディレクトリの中身にします。私は仮想ディレクトリ名を xoops にしました。
そして、ブラウザを立ち上げ、http://localhost/xoops/install/index.php を表示すると、XOOPS をインストールするためのウイザードが始まります。質問に答えていくと、インストールが完了します。

 途中、データベースを確認のボタンを押したところで、インストールのウイザードのウィンドウがなくなってしまい、ブラウザの表示も真っ白になりました。
xoops-2.0.6-ja-eucjp は PHP5.0.2 に対応していないとの事でした。

 2回目は、xoops-2.0.6-ja-eucjp が対応している PHP4.3.9 にし、MySQL4.1.5はバージョンを前回と同じにしてインストールしました。

 今度はデータベースを確認のボタンを押してもインストールのウイザードのウィンドウはなくなりませんでしたが、データベースに接続できませんというエラーが出ました。
MySQL4.1.x からパスワードのハッシュ作成方法が変わり、4.1以前のMySQLクライアントからはアクセスできなくなってユーザー認証できないことが原因でした。MySQLクライアントは、MySQLサーバーと一緒にインストールしたものでなく、PHP付属のものが使われるからです。
 APIのバージョンはphpinfo()で確認できます。

<? phpinfo() ?> 

と書いたファイルに、好きな名前.phpというファイル名をつけて、仮想ディレクトリに置き、ブラウザからアクセスするとプログラムの情報が取得できます。

 3回目は、MySQLの4.0.21 をインストールしてみました。けれども、ちゃんとインストールできていないようでした。Program Files にMySQLのフォルダがありませんでした。それに、サービスの一覧にも、スタートメニューにもMySQL の名前は見当たりませんでした。
MySQL がインストールできているかどうかの確認は、phpinfo()でできます。
MySQL サーバーが起動しているかどうかの確認は、コマンドプロンプトを起動して、

C:\> C:\mysql\bin\mysqlshow

または

C:\> C:\mysql\bin\mysql test

または

mysqld --console

と入力した結果を見て判断できます。

 4回目はMySQL4.1.5に戻しました。そして、匿名ユーザのパスワードなしのみを有効にしてインストールしました。
すると、成功しました。
パスワードハッシュの作成方法が変わったことによってユーザー認証できない問題を避けるには、MySQL を --old-passwords オプションをつけて起動する方法もあります。

http://localhost/xoops/index.php
がログイン画面になりますが、インストール後はブラウザ上にリンクがあったので、そのまま移動できました。

インストール後の処理

 誰でもデータベースにパスワードなしアクセスできる状態では、セキュリティ上良くないので、パスワードを設定しました。
Mysql のコマンドで操作する黒いウィンドウのシェル画面を開き、

use mysql

と入力して操作対象のデータベースを指定しました。続いて

update user set password = old_password('mypassword') where host = 'hostname' and user = 'username';

としてパスワードを設定しました。
自分自身のコンピューター以外を表す "%" は、シングルクォーテーションにするとエラーが出るので、ダブルクォーテーションにする必要があります。

set password for root@"localhost" = password('chocolate');

と言う構文にしても、パスワードの設定ができました。

 仮想ディレクトリ上の install フォルダを削除し、mainfile.php へのパーミッションを変更(644)して書き込みができないようにします。

 これでインストールは完了です。