Windows で XOOPS 環境を構築する
SERVER
XOOPS
ちょっとした理由から、Windows 2000 Server で XOOPS 環境を構築する運びとなりました。
XOOPS とは、PHP および MySQL で構成されたコミュニティサイト構築ソフトウェアです。このところの話題らしい BLOG のようなサイト作成に適しているようで、世間ではとても注目されているようです。
XOOPS 環境に自分好みのモジュールを組み込んだりすることで手軽にコミュニティサイトの構築が出来る辺りが魅力なのでしょうけど、個人的には汎用性の弊害といいますか、見た目がどこもほとんどに通ってしまうことと、メニューなりが一画面にたくさん表示されてしまって探しにくいような印象を受けるのでした。
他にも、従来どおりの CGI による日記と掲示板程度の機能以外にどこまで魅力を感じるのか、そしてその程度で済むのならばむしろ自分でサイトを作ったほうが楽しいし愛着がわくように思うのでした。
XOOPS は情報を情報として載せるのには適しているでしょうけど、味気がなくなるのが欠点のような気がします。XOOPS をトップサイトとしないで、サイトの一部機能として上手く活用できたなら、もしかすると活気だけでなくて暖かいサイトに広がってゆくのかもしれないです。
サイトの構築以外としては、自分で XOOPS サイトを立ち上げる場合、それに必要な環境を用意するのにさほど技術やお金がかからないところはとても大きいかもしれないです。
環境は無料の Web サーバソフトウェア Apache と、そしてこちらも無料のデータベースサーバソフトウェア MySQL があればよく、肝心の XOOPS についても無料です。またこれらのソフトウェアを動作できる OS 環境も、無料の Linux が利用できます。
その他で必要になり得る費用といえば、PC 1台分の代金と、サイトを一般公開するのでしたら Dynamic DNS (DDNS) で出来るのでしょうか、ともあれ工夫をすれば低コストで情報公開が出来るようになると思います。
もう少し直感的に運用しやすくするなら固定 IP アドレスを付与してくれるプロバイダと契約するなどの選択肢もありますし、これもこの最近では個人でも十分手が出せる値段となっています。
技術の面においても、CGI の設定は意外と面倒なことが多かったりしますし、PHP や ASP といったサーバーサイドスクリプトと呼ばれるものも CGI と比べてもそれほど難しくはないはずなのですけど、慣れていないと敷居はやっぱり高いですからね。
インストールさえすれば、既存の多岐にわたるモジュールの中から好きなものを選んで組み込めば良いのは (たぶん) 手軽なところなのでしょう。個人的には ASP などの方が、自分らしさが出せると思うのでお勧めですけど。
ともあれ今回は、Windows 2000 Server 環境にて XOOPS を利用したいというお話がありましたので、そのような環境を用意してみるべくインストールをしてみることにします。
Windows 2000 Server は高額ですけど、そこで動作する Apache や MySQL も存在しますし、それらは Linux と同様に無料ですので、管理作業も Windows なら何かと勝手が良いですし、もしかすると悪くない選択なのかもしれないです。
Windows 環境における XOOPS に必要な環境
2005.02.10 の時点で XOOPS日本公式サイト では 2.0.9.2 というバージョンが公開されていました。
今となってはどの形式でも問題なさそうな気もしますけど、Windows での利用なので ZIP 圧縮されたアーカイブ "xoops-2.0.9.2-ja-euc.jp.zip" をダウンロードしておくことにしました。コアパッケージの日本語版だけを入手すれば良いようです。
そしてそのアーカイブを展開して付属のドキュメントを参照してみると、次の環境が必要とありました。
- HTTP サーバ (Apache または IIS)
- PHP 4.0.5 以上 (4.1.1 以上を推奨)
- MySQL データベース 3.23 系
XOOPS が公式サポートとする Web サーバは Apache とのことでしたけど、IIS でも大丈夫とのことでした。とりあえず XOOPS が問題なく動くようならば、Windows なら IIS の方が管理の面では何かと都合が良いかもしれないですね。
ともあれ PHP が利用できる Web サーバを準備して、XOOPS で使用するデータベースを MySQL に作成してそれにアクセスできるアカウントを準備して、いよいよ XOOPS のインストールという感じの流れになるようです。
XOOPS を探していたときに、これらの環境を Windows に用意して XOOPS を利用できるようにするパッケージも発見しました。
XOOPS for Corporate にて提供されているもので、説明書きの "インストール作業が不要" は明らかに過大表現しすぎなのが気になりますけど、ともあれこの "XSAS" をインストールさえすればすぐに環境がそろってしまうとのことでなんだか便利そうでした。
ただ、想定としてイントラネット (内部ネットワーク) での試用や運用を想定しているとのことで、それ以上の細かいことは分からないながらも今回はインターネットでの利用を想定しているので今回はひとつひとつをインストールして行くことにします。インストール後に調整を行えば良いのかもしれないですけど。
XOOPS に必要な環境をインストールする
Microsoft Internet Information Service (IIS) 5.0
Windows であっても Apache を用いた PHP の方が主流のようですけど、今回は IIS を用いて PHP 環境を構築してみようと思います。IIS は Windows 2000 Server のセットに含まれていますので、インストールは簡単です。
「コントロールパネル」 から 「Windows コンポーネントの追加と削除」 を選択し、Windows コンポーネントの一覧から "インターネットインフォメーションサービス IIS" を選択してあげれば完了です。
いくつか内訳がありますけど、入れておくと後も含めて便利だと思うのは "FrontPage 2000 Server Extensions" と "WWW (World Wide Web) サーバー" と、"インターネットインフォメーションサービススナップイン"、そして "共通コンポーネント" です。
とりあえずのところ、これだけ選んでおけば問題なくインストールして運用することが可能となるはずです。
PHP をインストールする
PHP の公式サイト ( PHP Hypertext Preprocessor ) のダウンロードページから Windows Binaries 版の PHP をダウンロードします。
2005.02.10 時点での最新バージョンは 4.3.10 でした。それ以外に 5.0.3 もありましたけど、今回は XOOPS が 4.0.5 を想定していることから念のため 4.3.10 の方にしておきます。形式は ZIP と Windows Installer とがありますけど、ZIP 形式の方にしか ISAPI タイプの PHP がなさそうでしたのでそちらをダウンロードすることにします。
ダウンロードした "php-4.3.10-Win32.zip" を展開したら、IIS に組み込む作業に入ります。
今回は "C:\php-4.3.10-Win32\" に展開されたファイルがあるとします。
このなかの "php.ini-dist" というファイルを Windows フォルダ (C:\windows\) へ "php.ini" という名前でコピーします。また、"php4ts.dll" をシステムフォルダ (C:\windows\system32\) へコピーします。
そうしたら管理ツールの "インターネットサービスマネージャ" を開いて、該当サイトのプロパティを表示します。そして "ISAPI フィルタ" へ、先ほど展開した "sapi" フォルダにある "php4isapi.dll" を追加します。
その際にフィルタ名を指定する必要がありますけど、とりあえず "PHP 4.3.10" とでもしておくことにします。
そして同じくサイトのプロパティの 「ホームディレクトリ」 タグにて、.php を拡張子に持つドキュメントが PHP として処理されるようにします。
「構成」 ボタンを押して、アプリケーションのマッピングを追加します。「追加」 ボタンをおして実行ファイルとして先ほどの "php4isapi.dll" を指定します。そして拡張子に ".php" を指定し、"スクリプトエンジン" のところにチェックが入っていることを確認したら 「OK」 ボタンを押せば登録完了です。
あとは IIS を再起動してあげれば、設定が有効になります。IIS を再起動するには "インターネットインフォメーションサービス" の PC 名のところで右クリックをして、"IIS を再起動します..." を選びます。
実際に PHP が有効になったかを確かめるには、そのサイトにたとえば "check.php" というファイルを用意します。
<?php phpinfo(); ?>
内容はこのような感じにしておくだけで、php が有効ならば詳細な PHP 環境の情報が載ったページが表示されます。
あと、既定のドキュメントを登録しておくと良いかもしれないです。
既定のドキュメントと言うのはファイル名が省略されたときに自動的に探されるファイル名のことで、"index.html" などと聞けば分かりやすいかもしれないです。
これは該当するサイトのプロパティの 「ドキュメント」 タグのところで登録できますので、たとえば "index.php" など、省略したいファイル名があるのならそれらを登録しておくと良いでしょう。
Perl インタープリタのインストール
Windows は Perl スクリプトを処理する機能を備えていませんので、Perl 環境をインストールする必要があります。
それには ActiveState にて提供されている ActivePerl を利用します。これも無料で利用することが出来ます。2005.02.10 での最新のバージョンが 5.8.6 でしたので、それの Windows MSI パッケージをダウンロードしてインストールすることにしました。
ダウンロードした "ActivePerl-5.8.6.811-MSWin32-x86-122208.msi" をダブルクリックすればインストールが始まります。
オプションなどはディフォルトのままが良いらしいので安全のためそうした上で、ウィザードに沿って進めてゆけば簡単にインストールすることが出来ました。インストールの中で IIS へのスクリプトマッピングを登録することが出来るのですけど、この指定は 「既定の Web サイト」 への登録となるようなので、必要な場合は該当するサイトごとに登録する必要があります。
該当するサイトのプロパティから 「ホームディレクトリ」 タグの 「構成」 ボタンを押して、アプリケーションのマッピングを追加します。追加する内容は .pl と .cgi の二つをどちらとも次の内容でしておくと良さそうです。
実行ファイル C:\Perl\bin\perl.exe "%s" %s 拡張子 .cgi .pl スクリプトエンジン ON
MySQL のインストール
MySQL の公式サイトより、データベースシステムをダウンロードします。
XOOPS で利用出来るデータベースは MySQL の 3.23 系バージョンとのことですので、MySQL Downloads ページの "Older release" から "MySQL Database Server 3.23" を選択します。
そして Microsoft Windows 用の 3.23.58 をダウンロードすることにしました。ダウンロードできるファイルが 4 つあったのですけど、これらはバイナリかソースか、そして ZIP 形式か tar.gz 形式かに依るものでした。今回は ZIP 形式のバイナリをダウンロードすることにします。
ダウンロードした "mysql-3.23.58-win.zip" を展開したら、SETUP.EXE を実行して MySQL のインストールを開始します。
なお、少し手違えたのかもしれないのですけど、展開したらフォルダが出来ることなくその場にファイルがたくさん展開されたので、ごちゃごちゃしたくない場合は念のためフォルダを作ってから展開を行うと良いかもしれないです。
サーバソフトウェア自体のインストールは特に難しいことはなく、ウィザードに沿って進めればすぐに終了しました。インストールパスはディフォルトの "C:\mysql\" へインストールしておきました。
インストールが終わって、スタートメニューにもサービスにも "アプリケーションの追加と削除" にも MySQL らしき表示がなくて少し困ったのですが、アンインストールはともかく、起動や設定は直接 "C:\mysql\bin\winmysqladmin.exe" という管理プログラムを実行して行うようです。
ですのでさっそくそれを起動してみると、まずは "User name" と "Password" とを聞かれることとなりました。
これは "my.ini" という設定ファイルを構築する手続きだそうで、ここで入力したユーザ名とパスワードが、この MySQL を管理する上での重要なアカウントとなるようです。
これが終わると MySQL が "サービス" として登録されて起動し、タスクトレイに起動していることを示すアイコンが表示されました。
このアイコンをクリックして "Show me" を選択します。
そして "my.ini Setup" タブを選択して、my.ini ファイルの内容を確認します。この中に [mysqld] で始まる箇所があるのですけど、そのひとまとまりの最後に、次に太字で示した最後の1行を追加して、文字コードセットを指定します。
[mysqld]
basedir=C:/mysql
#bind-address=127.0.0.1
datadir=C:/mysql/data
#language=C:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
default-character-set=sjis
また [mysql] セクションにも同様の行を追記するようなのですけど、自分の環境には [mysql] セクションは無いようでした。ですので、次のような記載を追記しておくことにします。
[mysql]
default-character-set=sjis
この編集が終わったら、[Save Modification] ボタンを押して変更を保存し、MySQL を再起動してあげればこの変更が有効になります。
再起動の仕方は、起動中のこの設定ツールの空いた部分で右クリックをして、"Win NT" の項目から "Stop the Service" を選択し、その後再び "Start the Service" を選択するようになります。
それにしてもこのファイルには管理アカウントのユーザ名とパスワードがそのまま保存されているのですね。知らずに誰かに見られたりしないように気をつけておきましょう。
ついでなのでさらに、左下にある [Create ShortCut on Start Menu] ボタンを押して、Windows のスタートメニューに MySQL のこの管理ツールへのショートカットを作成しておくと便利かもしれないです。
そう思ってボタンを押してみると、"スタートメニュー" というよりはむしろ "スタートアップ" にこのツールへのショートカットが登録されてしまうのでした。
Windows 2000 Server の場合はサービス起動に対応しているので、スタートアップにこのツールを登録しておかなくても良さそうに思ったのですけど、それとはまた独立したツールのようで、MySQL の起動には問題ないもののタスクトレイのアイコンが表示されないようでしたので、とりあえず登録しておくことにしました。
あとは使い勝手の都合で、"C:\mysql\bin\" を環境変数に登録しておきましょう。
「マイコンピュータ」 の 「プロパティ」 から 「詳細」 タグを選択して、「環境変数」 ボタンを押します。そこで "システム環境変数" から "Path" の項目を選択して、変数値の最後のところに次の文字列を追加します。
;C:\mysql\bin
こうしておくことで、コマンドプロンプトから "mysql" といったコマンドを簡単に実行できるようになります。
そして、実際の運用を考えて、MySQL の root アカウントのパスワードを設定しておきます。
設定する際にはまず、コマンドプロンプトから、次のようにして root@localhost アカウントにて MySQL へ接続します。
mysql -u root
そして次のようにしてパスワードを設定します。パスワード値は引数で指定し、ここでは "abcdefgh" としている感じです。
grant all on *.* to root@localhost identified by 'abcdefgh';
grant all on *.* to root@'%' identified by 'abcdefgh';
これで root アカウントで MySQL にアクセスするときにパスワードが必要となりました。
この "grant" 命令はアカウントに対しての権限などを設定するものですが、もしアカウントが存在していない場合にはそれを作成するという機能ももっているそうです。なお、権限の削除には "revoke" 命令を使用します。
これによって "mysql" プログラムを利用してアクセスする場合、-p オプションだけをつけてあげれば続いてパスワードを尋ねられます。-p の後にパスワードを指定する感じではないので気をつけましょう。
mysql -u root -p
なお "root@localhost" アカウントというのはローカルコンピュータからアクセスしたときの root アカウントで、"root@'%'" というのはネットワーク経由でアクセスしたときの root アカウントとなるそうです。
なお '%' というのは全てのホストという意味であって、特定のホスト名を指定することも出来るとのことでした。なお '%' ではなくて指定しない場合も、全てのホストを表すそうです。
あと、匿名ユーザを削除しておきましょう。
delete from mysql.user where user='';
flush privileges;
これはユーザ名が設定されていないユーザ情報を直接削除する命令です。そして "flush privileges" にて、その権限の変更が MySQL に反映されるようにしています。
XOOPS に必要な環境を整える
XOOPS を利用するにあたって、今回はそのためのデータベース "xoops" を作成してみることにします。
mysql -u root -p
まず root@localhost アカウントで MySQL に接続したら、次のようにして "xoops" データベースを作成します。なお、登録されているデータベースは "show databases;" にて確認することが出来ます。
create database xoops;
続いてこのデータベースへアクセスするためのアカウントを作成します。アカウント名は "xoops_admin" とでもして、パスワードは "abcdefgh" とでもしてみることにします。なおハイフンをユーザ名に指定することは出来ませんでした。
grant all on xoops.* to xoops_admin identified by 'abcdefgh';
これで "xoops" データベース内の全てに対して権限を持ったアカウント "xoops_admin" が作成されました。
ホストの指定はしていないので全ての接続でこの設定が利用できることと思います。実際に登録されている情報を "select user, host from mysql.user;" にて確認してみたところ、このアカウントのホスト情報は自動的に '%' として設定されていました。
※ けれど実際に進めてみると、これでは上手く行かないことが分かりました。localhost だけは特別扱いのようで、たとえ @'&' が登録されていても @localhost がない場合はローカルシステムから接続することは出来ませんでした。ですので localhost を想定している場合はしっかりと xoops_admin@localhost を登録しないといけないようです。
XOOPS をインストールする
これでひと通りの環境設定が終わったと思うので、いよいよ XOOPS をインストールしてみることにします。
XOOPS日本公式サイト より入手した 2.0.9.2 のアーカイブに含まれていた html/ フォルダの中身を全て設置したいサイトのルートディレクトリへコピーして、実際に運用した URL にてアクセスするとインストールウィザードが表示されます。
なおインストーラーは "index.php" ですので、このファイルが既定のドキュメントになっていないと上手く繋がらないかもしれないです。
後はウィザードにそって進めます。
インストール作業に使用する言語を "japanese" としたら、続いて注意事項を確認します。必要なソフトウェアは IIS も Web サーバの候補としてあがっているし、PHP も入れたし、MySQL も準備したし、XOOPS 用のデータベースもひとつ作成したしで、環境自体には特に問題はなさそうです。
ただ Web サーバの設定に関して、uploads/, cache/, templates_c/ ディレクトリおよび mainfile.php を PHP から書き込み可能となるように権限を調整する必要があるとのことでした。
このために、安全のために IIS の匿名アカウントではなく、Guest アカウントとして新しい Windows アカウントを用意してそれをサイトの起動アカウントとし、そのアカウントに対して必要な箇所のファイルへ書き込み権限を与えてみます。
「マイコンピュータ」 のプロパティから 「ローカルユーザとグループ」 を選択し、そこでアカウントを一つ作成しました。グループは他の IIS アカウントと同じ Guest グループへ所属させておきます。
そして該当する Web サイトのプロパティから 「ディレクトリセキュリティ」 タグを選択して、匿名アクセスおよび認証コントロールの項の 「編集」 ボタンを押します。そして匿名ユーザのところで先ほど登録したアカウントを指定し、"IIS によるパスワードの管理を許可する" にチェックを入れます。
そして uploads/, cache/, templates_c/ ディレクトリおよび mainfile.php に、そのアカウントでの書き込み権限を設定すれば調整は完了なはずです。
これらを設定したら、またウィザードを進めてみます。
するとアクセス権のチェックが行われ、アクセス権に問題はないとの表示がなされました。けれど試しに、わざと書き込み権限をなくしてみたりもしたのですけど、それでも権限に問題がないとの報告がなされてしまいました。
権限を全て削除してみてもそのような感じでしたので、チェック方法が少し適切ではないのか、それとも Windows の PHP のシステムがそういうものなのか良く判らないですけど、正しいと思える設定でウィザードを進めてゆくことにします。
※ 後で実験してみたのですけど、報告では書き込み可能となっていても、やはり IIS の匿名アカウントに設定されているアカウントが書き込み権限を持っていないとしっかりとエラーとなりました。
続いてデータベースの指定です。
今回は同一サーバ内に MySQL をインストールしてあるので、ホスト名は localhost のままとします。そして XOOPS 用に作成したデータベース名とそれにアクセスするためのユーザ名とパスワードを指定し、他、XOOPS を設置する URL などを指定して次へ進みます。
すると設定内容の確認画面となるので、間違いがないことを確認したら次へ進むと、インストール作業に必要な情報がファイルに書き込まれたようです。行われた内容と結果が画面に表示されていましたけど、それを見る限り問題なく完了したようでした。
そしてパスと URL のチェックが行われた後、データベースへ接続してそこに必要なデータが生成されることとなります。
ここで、エラーが発生してしまいました。データベースサーバに接続できなかったとのことです。
調べてみると、どうやら "xoops_admin@'%'" と "xoops_admin@localhost" とは独立した別のアカウントのようで、"xoops_admin@localhost" を登録していなかったのが問題だったようです。
今回はローカルホストからのみ MySQL を使うと思うので、次のようにして host 情報を書き換えてみることにします。
update mysql.user set host='localhost' where user='xoops_admin';
flush privileges;
これで問題なく XOOPS のインストーラーが MySQL に接続できるようになり、そして次へ進むと必要なテーブル類が作成されました。
そして管理者ユーザ名とパスワードおよび電子メールアドレスを指定すれば、これにて XOOPS の構築は終了となりました。
そして管理ページへログインしてみると、「管理メニュー」 にて install/ ディレクトリが残っているということと、mainfile.php が書き込み可能になっているとの注意メッセージが表示されたので、とりあえずそれを削除なり権限調整なりしておきました。
相変わらず mainfile.php が書き込み可能と報告されてしまいましたけど、これはやはり判定処理の問題のようです。実際に書込み禁止にした上でインストール処理を行ってみたところ、書き込み可能とは判断されるものの実際の書き込み時にはエラーとなりました。
XOOPS の微調整調整にて…
これで無事完了なのだと思うのですけど、管理者の情報にてとりあえず自分のメールアドレスを設定していたので変更したかったのですけど、それを変更する箇所が見つかりませんでした。
とりあえず他のアカウントならどうかと思い、アカウントを新規に登録できる箇所を探したのですけどそれもなかなか見つからず、管理ページを参照するとページが見つからないとか言われてしまうしで、ともあれもう一回 XOOPS の再インストールを行ってみることにしました。
インストーラは "install/" ディレクトリにある "index.php" というファイルがそれのようなので、改めてそれをブラウザで呼び出してみると、インストールウィザードが表示されました。
しかも一度入力した内容を覚えているようで、特に変更する必要がなければ、入力する必要なく次々とウィザードを進めて行くことができました。しかも偶然でしょうけど、管理者情報の入力だけは何故か空白だったので、インストールしやすいように準備する上でもひととおりインストールを行って正常に完了できるかどうかを確認しておくのも良いかもしれないです。
ただし、途中の MySQL への接続の段階で XOOPS データベースが存在しているとインストールエラーとなってしまうので、あらかじめデータベースを削除しないといけないようです。
全部を消せば問題ないのですけど、それだとなかなか手間でしたので、試しに一つテーブルを削除してみました。
"xoops_config" を削除してみると、ウィザードは XOOPS 1.3.x のテーブルを見つけたため XOOPS2 へとアップグレードするとのメッセージが表示されました。各グループのディフォルトグループとやらの選択画面が表示され、それぞれにディフォルトグループを選択せよとのことだったのですけど、設定画面上でそれぞれに割り当てられる候補が存在しなかったため、それ以上インストールを進めることはできませんでした。
続いて "xoops_users" を削除してみると、今度はまるで何もなかったかのように、新規インストールと同様のウィザードが表示されました。そしてそのまま次へ進んでみると、削除したテーブルは新規に作成され、削除しなかったテーブルについては作成できなかったことを示すエラーとなりました。
そのまま次へ進んで管理者情報を登録、そして先ほど作成したテーブルへのデータの書き込みと、進めて行くことはできましたけど、いくつかのデータは挿入することが出来なかったりしていたので、データの整合性なども考えると消すなら全部消した方が良さそうです。
とりあえずデータベース内のテーブルだけ全て削除して、install/ よりインストールしなおしてみましたけど、特に変わることもなしでした。管理者メニューと言うものは、その先の 「システム管理」 メニューを選ぼうとすると 「選択されたページは存在しません」 と表示されるものなのでしょうか…。
指定された URL のファイルは物理的には存在しているのですけど、modules/system/admin.php とある感じから、モジュールと何か関連があるのか、それとも何かモジュールを入れて初めて利用するようになるのでしょうか…。
そもそも管理者のメールアドレスを変更できないのも普通に考えておかしいので、何かないかと調べてみると、管理メニューとは違うそもそものログイン前の画面に 「新規登録」 なるリンクがありました。
なんでこんなところに登録リンクがあるのか疑問ですけど、とりあえず押してみると、ユーザを登録できる画面が表示されました。
そして必要事項を入力して 「送信」 ボタンを押し、そして入力情報の確認を行ってみると、次のようなエラーにも似たメッセージが表示されたのでした。
登録が完了しました。しかし、サーバ内部エラーにより承認キーが記載されたメールを送信することができませんでした。大変申し訳ありませんが、サイト管理者までお問い合わせください。
登録したアカウントが使えるかどうか疑問に思いつつ、とりあえずログインにて今に登録したアカウント情報を入力してみたところ、まだ有効になっていないとのことでログインすることは出来ませんでした。
どうやら電子メールを送信する仕組みも上手く機能していないようですね。きっとメールに記載された "承認キー" をどうかすると、おそらくアカウントが有効になるのでしょう。
ともあれ IIS 環境だとなのでしょうけど、提示されていた環境だけではまともに動いてくれないですね。
問題箇所を修正する
管理メニューを使えるようにする
管理ページが見えない問題について、IIS を Web サーバとして ISAPI の PHP を利用している場合、"include/common.php" ファイルを修正する必要があるとのことでした。
修正箇所は 153 行目
if ( !isset( $_SERVER[ 'REQUEST_URI' ] )
この部分の最初の "!isset" 関数を、次のように "empty" に置き換えてしまえば良いのだそうです。
if ( empty( $_SERVER[ 'REQUEST_URI' ] )
このように修正してみると、管理メニューが見違えるほどに機能するようになりました。
管理者アドレスを変更する
管理メニューが動くようになったら、管理者アドレスを変更することが出来るようになりました。
「管理メニュー」 から 「一般設定」 を選択して、さらにその中の 「一般設定」 を編集します。するとこの中に "管理者メールアドレス" という項目があるので、そこを修正することでインストール時に設定したアドレスを変更することが出来ました。
システムがメールを送信できるようにする
「管理メニュー」 から 「一般設定」 を選択して、さらにその中の 「メール設定」 を編集します。
ただ、ここの内容は Linux 環境を想定しているように見えて、Windows ではどのように設定すべきか考えてしまいます。設定箇所といえば "sendmail へのパス" や "SMTP サーバアドレス" だと思うのですけど…。
ざっと眺めてみると、どうやら "メール送信方法" として "SMTP" を設定し、"SMTP サーバアドレス" として SMTP サーバの IP アドレスまたはドメイン名を設定してしまえば良さそうな気がします。
送信者メールアドレス … きっと管理者アドレスで良いのでしょう … 送信者 送信者の表示名 (送信元) を指定します。 メール送信方法 … "SMTP" を指定すれば、sendmail は使わなくなるのでしょう … SMTP サーバアドレス … ここに送信に使用する SMTP サーバの IP かドメイン名を指定すればよいのでしょう … 今回は 1 台のサーバで全てをまかなっているので、SMTP サーバとしては "127.0.0.1" を指定してみました。
上記の表以外の項目については、何が入力されていてもきっと問題ないはずです。ともあれ SMTP AUTH にも対応しているようですので、 利用できる送信方法は多彩で、環境に応じて対応させることが出来そうですね。
また SMTP は IIS のものを使用しているのですけど、XOOPS からのみ利用でき、さらにそれ以外からは利用できないようにしておくことにしました。SMTP サーバのプロパティの 「アクセス」 タグを選択て、"接続制御" と "中継の制限" の両方へ "127.0.0.1" のみが許可されるように設定しておきます。
ユーザを登録する
システムがメールを送信できるようになったら、きっとユーザを登録することが出来るようになっているはずです。
… とりあえず、システム管理を見てみると、"ユーザ管理" の項目にてアカウントを新規に作成することが出来るようになっていました。ですのでまずはこれを使って作成を行ってみようと思います。
"新規アカウント作成" の欄のうち、とりあえずユーザ名、メールアドレス、パスワードを指定して "送信" ボタンを押してみました。すると無事にデータベースに反映されたとの表示がなされ、ふたたび "ユーザ管理" の画面に戻ってきました。
このときは特に、設定したアドレスにメールが届けられることはないようで、また、すぐにこの情報を使ってログインすることが出来るようになっていました。所属グループを "登録ユーザ" としておけば、このユーザでログインしたときには管理メニューを利用できないようになるようです。
また、そのページの頭にある "ユーザの編集/削除" のところには今登録したユーザ名が選択できるようになっていて、それを選んで 「ユーザの編集」 を行えばそのアカウント情報を変更することが出来ました。
最初に作成した管理アカウントも編集することが出来るので、ここでも管理者アドレスを変更することが出来るようでした。
さて、前に失敗していたログイン前の 「新規登録」 についても試してみることにします。
ログアウトしたところにある 「新規登録」 から、ユーザ情報を入力する画面へ移動します。そして先ほどの "ユーザ管理" のときと同じように 3 項目を入力して 「送信」 ボタンを押してみたのですけど、そうしてみたところ、さっきよりユーザ名が短いはずなのに長すぎるとのことでエラーとなってしまいました。基準が違うのかよく分からないながら、とりあえずこちらでは半角 10 文字までだそうでした。
ユーザ名を短くしてから 「送信」 を押して、確認画面らしきところでもう一度 「送信」 ボタンを押してみると、今度はしっかりと登録されたようです。
認証キーが電子メールにて送られたとのことなのでメールをチェックしてみると、しっかりとメールが届いていました。そのメールの内容を見ると、URL がはられていて、これをクリックして登録の認証を行えば、ユーザ登録が完了となるとのことでした。
クリックしてみると、特に何もなくユーザが認証され、利用できるようになったようです。
さっそくこのアカウントでログインしてみると、管理メニューから登録したのと同じような感じのメニューを利用できる感じでした。管理者が登録するアカウントと、勝手に登録できるアカウントとでは何が違うのでしょう…。とりあえず所属グループは "登録ユーザ" となっていてどちらも同じグループでした。
気づくと管理者の方にもユーザが登録されたことを示すメールが届いていたので、勝手に登録してもらう感じなのかもしれないですね。特にメールを出せたりとかそういうことはないみたいですし、こうやって輪を広げてゆくのでしょう。
最終調整 & 個人的なお話
とりあえず普通に使えそうな状態が整ったような気がするので、管理メニューに赤で表示されていた注意部分を調整して、今回のインストール作業を終えることにします。
… と、管理メニューのどこを選んだら注意メッセージが出るか探してしまったのですけど、左上の XOOPS ロゴの下にある 「管理メニュー」 と書かれたテキストをクリックすることでそれが表示されました。
改めて確認するほどでもないのですけど、指示の通り "install/" フォルダを削除して、そして "mainfile.php" の IIS 匿名アカウントに対する書き込み権限を削除してあげれば完了です。
IIS の都合上なのか、Windows 版の PHP の都合なのか、ともあれ権限判定が正常に働かないようで "mainfile.php" の書き込み権限を OFF にしてもこの注意メッセージは残ってしまうのですけど、実際には書き込めなくなっているので大丈夫なはずです。
ともあれこれにて今回の環境整備は終了ということにします。他にもモジュールを組み込んだりとかしてサイトを拡張して行くことになるのだと思うのですけど、それは試さないでおきました。
XOOPS、とりあえず準備をしてみましたけど、個人的には特に魅力を感じないのでした。
コミュニティサイト、ポータルサイトを運用したい団体とかならば手軽で良いかもしれないですけど、個人用途では規模が大げさなような気がしました。それに CGI とか、そもそも HTML とかでも簡単なことなら出来るでしょうし。
ただ BLOG をつける程度で利用するだけなら、それこそそれで良いと思うんですよね。多少はテンプレートで見た目を変えられるようではありますけどどこも似通って見えてしまうし。
BLOG のレンタルサーバなどなら良いとは思うのですけど、わざわざ "らしさ" を代価にしてまで自宅サーバで XOOPS を構築する価値があるのかどうか、今はまだ判らない自分でした。
XOOPS データベース削除スクリプト
今回の実験では何度もデータベースを削除してインストールしなおしてみたので、簡単に済ませられるように WSH スクリプトを作成してみました。ODBC 経由で MySQL へ接続し、XOOPS で使用するテーブルをごっそり削除するというものです。
- WSH (VBScirpt) - xoops_db_delete.20050214.lzh
うっかりすると危ないので十分注意が必要ですけど、もし役に立つなら使ってください。