Home » 2-レンタルサーバの選択からXOOPSのインストールぐらいまで

とりあえず導入してみる [Permalink]

条件に合ったサーバを選ぶ [Permalink]

 では早速、XOOPSをダウンロード……といきたいが、その前に、XOOPSを動かすための条件を書いておきたいと思う。XOOPS Cube日本サイトには以下のような記述がある。

ご自分でサーバを用意されるという方は、サーバにMySQLおよびPHPが既にインストールされていることをご確認ください。XOOPSをインストールするのに必要なサーバ環境は以下のとおりです。

WWWサーバ: Apacheを特にお薦めします
データベース: MySQL4.0.xx(将来的にはPostgreSQL等にも対応予定)
PHP: PHP4.1.0 以降 (4.3.11を推奨~標準パッケージでは、PHP5.0.xに対応していますが、一般に配布されているモジュールには未対応のものもあります)

 ものすごくざっくりとした説明になってしまうが、プロバイダ(Yahoo!BB、ニフティ、So-net、BIGLOBE、OCNなど)と契約するともれなくついてくるサーバにはデータベース(MySQL)が付属されていないので設置できない。よって、個人でサーバを立てるつもりがないのなら、基本的には有料のサーバと契約する必要がある。個人がレンタルするような有料サーバなら、WWWサーバはだいたいApache(アパッチ)で、PHPも入っている。問題はやはりデータベース(MySQL)の有無だ。Yahoo!ジオシティーズの有料版である「ジオプラス」は、Yahoo! Japanからリンクが張られていることもあり、比較的よく知られているレンタルサーバだと思うが、データベースが使えないのでXOOPSを使えない。
 また、やはり有名なサーバーである「さくらインターネット」のようにコース、プランによって使えたり使えなかったりするところ、他にも、どのコース、プランでも使えるけど使うなら別料金取りますよというところもある。
 この辺は会社によって本当にいろいろとあるので、XOOPSをやりたいためにサーバを借りるというのであれば、まずデータベースが使えるのかどうか、使えるなら条件などはあるのかを絶対に確認しておこう。

 もう一つ、MySQL(データベース)、PHPのそれぞれのバージョンについてだが、レンタルサーバで使われているMySQLのバージョンは大きく分けて「3」「4.0」「4.1」「5」の4種類あり、私の経験上、すべてのバージョンでXOOPSは使える。4.1や5を利用したとき、ブロック内の文字が半角のクエスチョンマークになるといった文字化け問題が発生する可能性はあるが、これは回避可能だ。

文字化けしたサイトのトップページ

キャプション ?が並ぶという、わりとよく報告される文字化けパターン。

 PHPのバージョンは4.1.0とか4.3.11といった数字が出ているが、これは2008年にはほとんど意味がなくなると考えられる。というのも、おそらく大半のレンタルサーバでPHPのバージョンが4から5、つまり4.*.*という並びから5.*.*という並びに切り替わるからだ。5で動かないモジュールはもう使えないし、長期間メンテナンスされていない可能性を考えれば使わない方がいい。
 というわけで、MySQLとPHPの推奨バージョンというのはあまり気にしなくても大丈夫だ。一般的なレンタルサーバが用意しているバージョンであれば、普通に動くと考えていいだろう。

コラム [コラム]なぜデータベースを使うのか? [Permalink]

 データベースなんて必要あるの? だって普通のサイトはそんなの使ってないじゃん。最先端を気取るために格好つけているだけじゃないの? と言いたくなる人もいると思う。
 しかし、個人のアクセスを特定して、その人の特有のデータを提供するということになるとデータベースがないとやはり無理だ。

 たとえば、こんな風に考えるとわかりやすいと思う。A君とB君がそれぞれCDのレンタルショップを始めたとする。A君は社員としてC君を雇い入れ、彼に仕入れたCDを「ロック」「演歌」などジャンル別に分け、それぞれあいうえお順で並べるように命じた。B君は社員を雇わず、仕入れたCDを手に取った順に棚に詰め込んだ。
 お客が来て、
「サザンのCD入ってる?」
 と聞いてきた。
 A君はC君に「ロック」の“さ”の所を探すように命じた。そしてすぐに見つかった。B君はどこに入れたのか覚えていないので棚の端から探し始めた。そこに次から次へと客がやってきて、

「○○のCDありますか?」
「××は?」
「△△は?」

 と聞いてきて、A君たちはうまく応対できたが、B君は一人一人の要望を聞くのにとても時間が掛かってしまった――。

 XOOPSを使ったサイトのように、ユーザ毎に個別のデータがある場合、普通のサーバだけを使ってサイトを構築すると、ユーザ数が少ないならなんとか対応できるが、数百、数千となってくると一気に処理スピードが落ちてしまうということになる。だが、データを整理して、提供するということに特化しているデータベースを組み合わせると問題なく処理ができる。
 よって、XOOPSではデータベースが必須となっているというわけである。

 データベースの有無と合わせて、レンタルサーバと契約する際に知っておきたいことがある。それは、レンタルサーバには当たりはずれがあるということだ。はずれの定義はいろいろとあると思うが、まずは「重い」ことだろう。トップページにアクセスすると表示されるまで数十秒かかるというのは結構ある。
 レンタルサーバの利用料金は本当にピンキリで、数百円から数万円ぐらいまでと、最低料金から100倍ぐらいの振り幅がある。月1万円も出せば、「いつアクセスしても、サイトが表示されるまで数十秒かかる」なんていうことはまずないだろう。だが、利用者数が万単位というのでなければ、東京見物にあたって、荷物を置くためだけに帝国ホテルを借りるようなもので、いい選択とはいえない。サイトを無理なく長続きさせるには、予算と相談して、できるだけコストパフォーマンスのよい身の丈にあったサーバを探し出すというのも重要だ。

 一応、私が実際に使っていたことのあるサーバの一覧を書き出したページを作ってみたが、

レンタルサーバーを探したい!

 私以外の人が契約して納得できるかどうかはなんともいえない。というのは、たくさんの人が「ここは軽くていいよ」と誉めるサーバと契約したとしても、自分が入ったサーバにものすごく負荷を掛けるサイト(たとえば、動画配信サイトとかアクティブユーザーが数万人いるような会員制サイトなど)があったら、自分のサイトはとても重くなってしまう。バスを降りようとしたら、乗り合わせていた相撲取りたちがドアの前に並んでしまい、彼らが降りるまでまったく動けなくなってしまった、というイメージになるだろうか。
 また、HTMLファイルなどのデータが入っているサーバとデータベースサーバが分かれていて、処理要求と処理能力の釣り合いが取れていない場合も重くなる。数万人が住んでいる大きな住宅街なのに銀行のキャッシュディスペンサーがたった一つしかなく、給料日が来るたびに大勢の人が並ぶようなイメージだ。夜間、無料ブログサービスが閲覧しづらくなる原因は大抵これである。

重いデータベースサーバのイメージ

キャプション 重いデータベースサーバのイメージ。いくら高速にデータを処理できるとは言え、同じ時間にあちこちから膨大な要求を出されるとデータベースサーバはパンクしてしまう。データベースはユーザが必ず使うサービスではないので、コストを掛けずに対応している会社も多い。契約前に、データベースサーバの状況を問い合わせておいた方がいいだろう。

 以上のように、サーバ選びは運が占める部分も結構ある。運要素をできるだけ排除するためには、自分で口コミ情報などを調べ、サーバが無料お試し期間を設けていたら遠慮なく利用して実際に使ってみるしかない。いいサーバとめぐり逢えたら、腰を据えてサイトを運営することができる。ただ単に候補の中で一番安いからとか名前を聞いたことがあるからといった安易な理由では選ばず、自分に一番合ったレンタルサーバ会社と契約しよう。

 参考までに、以下のリンクはインプレスR&D社作成の「レンタルサーバー完全ガイド」において、「ディスク容量が300MB以上、独自ドメイン利用可、メールのウイルス対策とスパム対策がなされており、その上でXOOPSを使える」という検索条件で検索した結果である。

レンタルサーバー、ホスティング 比較 | レンタルサーバー完全ガイド

 件数が多すぎるということで7ページ100件のみの情報だが、選択する際の参考にはなると思う。

↑このページの一番上へ

「XOOPS Cube Legacy」と「XOOPS 2.0.16a JP」の関係 [Permalink]

 それでは、XOOPSを「XOOPS Cube日本サイト」からダウンロードしてみよう! と軽やかにいいたいのだが、いきなり難問が立ちはだかる。

日本サイトのブロックその1

 と、明らかに名前が違うものが二つ並んでいるのだ。最新、旧とあるからには「最新」の方がよさそうだが、「旧安定バージョンで動作していたモジュールが動作しない場合がある」とも書かれており、どちらがどういうものなのか、また、自分にはどちらが向いているのかと不安や疑問に思う人も多いだろう。
 単純に書くと、双方の違いはアルカトラスというバンドのギタリストだった、イングヴェイ・マルムスティーンとスティーヴ・ヴァイみたいなものである。いや、別にこの二人でなくてもいいのだが、ようするにバンドを脱退したギタリストとバンドに新加入したギタリストのような関係ということだ。
 基本的に、両方ともバンドの曲を演奏することができる。だがまったくの別人なので、既存の曲の演奏に際しては新ギタリストが脱退したギタリストのテクニックを真似るような形になり、そういった部分で再現できない(あえてしない)ところがあり、できない曲も出てくるということになる。
 脱退したギタリストに「XOOPS 2.0.16a JP」を、新加入のギタリストに「XOOPS Cube Legacy」を、バンドの曲に「モジュール」をそれぞれ当てはめてもらえれば、なんとなく構図を把握していただけるだろうか。つまり、同じことができるが中身がまるで違うということになる。
 前任者にできたことができないなどと書くと新ギタリストが悪いみたいだが、新ギタリストは脱退したギタリストより洗練されているし、当然の如く、彼のテクニックに合った曲が今後は作られることになる。だから、既存のモジュールを問題なく使いたいというのであれば現時点では旧メンバーのXOOPS2.0.16a JPでいいと思うし、どうせいつかアップデートするなら最初から入れておきたい、XOOPS Cube Legacy専用のモジュールにも魅力を感じるというなら新加入のXOOPS Cube Legacyでいいだろう。

↑このページの一番上へ

XOOPS Cube Legacyのアドバンテージ「プリロード機能」 [Permalink]

 さて、上記の説明だけだと「結局具体的にはなにが違うのかさっぱり……」ともやもやしてしまう人が続出してしまうと思うので、一点だけ、XOOPS Cube Legacyにあって、XOOPS 2.0.16a JPには存在しない機能を上げておきたいと思う。
 それは「プリロード(preload)」という仕組みである。
 XOOPSにもともと存在しない機能などを付け加えたいとき、ファイルに直接手を加えることを「ハック」という。XOOPSのユーザ登録情報は誰にでも閲覧可能なのはよく知られている。Googleのロボットもクロールするので、検索すれば引っかかる。これはバグではなくそういう思想の元に作られているので“修正”されることはない。しかし、会員制のサイトに登録したつもりなのに、自分のユーザ情報が誰にでも見られるのはちょっと……という人もいる。なので、ログインした人にしか見られないようにハックする人が結構多い(と思う)。XOOPS 2.0.16a JPにおいて「ゲストにユーザ情報を見せないようにする」ためには、本体のファイル(userinfo.php)を直接編集する必要があった。つまり、もともと存在する書類に油性ペンで直に修正を加えるようなことをしなければならなかった。

XOOPS 2.0.16a JPにおけるもともとのuserinfo.phpの中身(28行目から32行目辺り)

$xoopsOption['pagetype'] = 'user';
include 'mainfile.php';
include_once XOOPS_ROOT_PATH.'/class/module.textsanitizer.php';

include_once XOOPS_ROOT_PATH . '/modules/system/constants.php';

 これに下記のように書き加える必要がある

$xoopsOption['pagetype'] = 'user';
include 'mainfile.php';
include_once XOOPS_ROOT_PATH.'/class/module.textsanitizer.php';
if ( !$xoopsUser ) {
redirect_header(XOOPS_URL."/",3,_NOPERM);
exit();
}

include_once XOOPS_ROOT_PATH . '/modules/system/constants.php';

 油性ペンで書き加えた文字を消したり、それら更に追加で修正を加えたりするとどうなるか、想像していただければわかると思うが、何度もそういうことをしているうちに紙が破損したり、汚くなってなにをどうしたのかわけがわからなくなるということは大いにあり得る。またどこか一カ所、誤って「;」を消してしまったなんていうことであれば、そけだけでエラー発生だ。
 基本ファイルに直接修正を加える、つまり“ハックする”ということは、そのファイルがバージョンアップしたときに、再度、編集しなければならないということになるし、仮に修正が複数で、そのうちの一つは取りやめたいなんていうときには更に面倒な作業が必要だ。トラブルの発生源になることはおわかりいただけるだろう。

 こういったハックの手間を大いに少なくしてくれるのがプリロードいう仕組みなのである。XOOPS 2.0.16a JPでのハックが油性ペンでの直書きだとすると、XOOPS Cube Legacyのプリロードは「ハックの内容が書かれた札を、あらかじめ用意されているフックに引っ掛ける」というもの。
 前出の、「ゲストにユーザ情報を見せないようにする」というハックであれば、XOOPS Cube Legacyの圧縮ファイルを解凍し、そこにあるextraというフォルダの中のextra_preloadにある「UserInfoProtector.class.php」というファイルを、サーバ上のpreloadディレクトリに入れてやるだけで済んでしまうのだ。

extra_preloadフォルダ内のファイル

キャプション extra_preloadフォルダ内にUserInfoProtector.class.phpはある。他にもいくつかプリロードが存在している。もともとのpreloadディレクトリは空なので、UserInfoProtector.class.phpを使いたかったらここからサーバにアップロードしてやる必要がある。

うちの本家サイトのpreloadディレクトリ

キャプション うちの本家サイトのpreloadフォルダ。UserInfoProtector.class.phpのほかに、登録したメールアドレスをログインIDにできるUser_EmailLogin.class.phpなどを入れている。

 勿論、やっぱり見せてもいいやと心変わりすればさくっと削除すればいい。preloadフォルダにアップロード=機能ON、preloadフォルダから削除=機能OFFということになる。1つのファイルの出し入れで済んでしまうので、万が一、ファイルをアップロードした段階で不具合が発生したとしても、そのファイルを削除してやるだけで解決に導ける、ようするに、引っ掛けた札を外してやるだけで元に戻せるということになる。
 直接PHPファイルを編集するなんて不安という人に、ハックを手軽に試せるようにするということで、プリロードという機能はXOOPS Cube Legacyの大きなアドバンテージだろう。
 参考情報として、面白い、または役に立ちそうなプリロードをダウンロードできるサイトを紹介しておこう。

Download - XOOPS専門-株式会社RYUS
ひよこむ - myCode

↑このページの一番上へ

第三の選択「ホダ塾ディストリビューション」 [Permalink]

 もし、XOOPS Cube Legacyを選択するという場合、もちろん、Xoops Cube Projectにあるものをダウンロードしてもいいのだが、「ホダ塾ディストリビューション for XOOPS Cube Legacy 2.1」を使っても面白いと思う。
 これは、XOOPS Cube Legacyに信頼できるモジュールがいくつか組み込まれており、もうちょっと下の方で話す「D3モジュール」のインストールに必要な「xoops_trust_path」の設定を本体インストール時にできるというパッケージだ。最初からスタンダードナンバーが100曲ぐらい入っているiPodといった感じのものである。とにかくすぐにXOOPS Cube Legacyを動かしたいという場合、理想的なものといえるだろう。

ホダ塾ディストリビューション for XOOPS Cube Legacy 2.1のインストール画面

キャプション Xoops Cube ProjectからダウンロードできるXOOPS Cube Legacyには見られない、xoops_trust_pathの設定が存在している。

 ただ頭に入れておきたいのは、このパッケージはあくまでも「ホダ塾ディストリビューション」であり、オリジナルのXOOPS Cube Legacyではないということ。いろいろな部分で差違がある。
 具体的に書くなら、

 辺りが目立つ差違だろうか。

ホダ塾ディストリビューション for XOOPS Cube Legacy 2.1のインストール画面 文字コード決めるところ

キャプション 文字コードは初期で「ja_utf8」になっている。ここで「japanese」に切り替えればEUC-JPでインストールできる。

 特に大きいのが文字コードの問題である。文字コードというのは、まあ方言のようなものだと思う。サイトではページごとに「このページは○○という文字コードで書かれていますよ」ということが大抵書かれていて、たとえば今見ているこのページの適当な場所でマウスを右クリックし、「ソースの表示」といったものを選択すると、

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />

なんていう一文が書かれているのが見えるはず。つまり、このページはShift_JISで表示されているわけである。一般的に、日本語のサイト作成では「Shift_JIS」「EUC-JP」「UTF-8」がよく使われる。
 オリジナルのXOOPS Cube Legacyのデフォルトの文字コードはEUC-JPであり、すなわち「EUC-JP」という方言を使って日本語を表示しているといえる。なので、モジュールに含まれている言語ファイルもEUC-JPしか用意されていないケースがわりと多い。EUC-JPの言語ファイルしかないモジュールを、UTF-8で表示されている「ホダ塾ディストリビューション」にインストールすれば文字化けが発生してしまう。お互いに日本語ではあるのだが、まったく違う方言なのでベースのUTF-8がEUC-JPの話していることを理解できないためだ。

 なので、もし、「ホダ塾ディストリビューション」をUTF-8で動かすというのなら、UTF-8の言語ファイルが用意されていないモジュールをインストールするときは、自分でUTF-8の言語ファイルを作ってやる必要がある。一応書いておくと、文字コード変換ソフト(たとえばKanjiTranslator)を使って、インストールしたいモジュールのlanguage/Japanese/ フォルダ内全ファイルの文字コードをEUC-JPからUTF-8に一括変換し、フォルダ名を「japanese」から「ja_utf8」にリネームしてサーバにアップロードすればいいだけなので、そんなに難しい作業ではない。が、そういう作業が必要になってくる場合があるということは、「ホダ塾ディストリビューション」を選択する上で頭に入れておくべきだろう。

 ちなみにUTF-8のメリットというのは、一般サイト運営者の私個人の意見だと、

 辺りになる。多分、一番目がもっとも重要だと思う。下の二つの画像を見ていただけるとはっきりとわかるだろう。

UTF-8で動かしているXOOPSにおいて、多言語を書き込まれたフォーラム

キャプション UTF-8で動いているXOOPSのフォーラム。すべての国の言葉が正常に表示されている。

UTF-8で動かしているXOOPSにおいて、多言語を書き込まれたフォーラム

キャプション EUC-JPで動いているXOOPSのフォーラム。中国語とエスペラント語が文字化けしている。ちなみにFirefoxは自分でなんとかしちゃうため、文字コードなんて関係なく正常に表示する。

 オリジナルのXOOPS Cube LegacyをUTF-8で運営することも勿論できるし、今までEUC-JPだったのをUTF-8に変更することも可能なので、UTF-8で運営するなら絶対に「ホダ塾ディストリビューション」とまではいわないものの、次へ次へでやれるので楽ではある。実際にエスペラント語で書き込まれる確率は、私と新垣結衣が結婚する確率とほぼ一緒だと思われるが、どこの国の人でもウェルカムという姿勢を持ちたい、文字通りグローバル志向のコミュニティを最小の手順で作りたいというのであれば選択して損はないだろう。

コラム [コラム]あなたが持っている書籍の情報はもう相当古いかもしれない ~常に最新版のチェックを~ [Permalink]

 質問系のサイトでXOOPSの質問を見ると、たまに驚くぐらい古いバージョンのXOOPSを使っている人に遭遇する。想像するに、XOOPS関連書籍の付属CDに入っていたXOOPSをそのまま使っているとか、あるいは所持している書籍で取り上げられているバージョンとかなのだろう。
 どうしてバージョンアップしないのかと言うのは簡単だが、気持ちはよくわかる。まったく知らないジャンルのものを学習する際、持っている参考書の情報というのはまさに絶対的で、たとえば初めてパソコンを購入する人がたまたまMacの参考書を手にし、それを熟読したら、いくら量販店の店員にWindowsパソコンをすすめられたとしても、大抵はMacを購入するだろう。それはデザインとか性能とか設計思想がどうのこうのではなく、まったく情報を持っていないOSを買うことが不安だからだ。
 同じように、所持しているXOOPSの参考書で紹介されているバージョンが2.0.7だったら、2.0.16aではなく2.0.7を手に入れようとする人も多いだろう。まったく違うバージョンのXOOPSをインストールして、本に載っているものと違う画面が出たりしたら嫌だし、最新版を使えと書いてあっても、その最新版とやらがわけのわからないことになっていたらどうしようと不安に思うからだ。

 というわけで、最初に書籍から入ると、書かれている情報を超えて先に行くというのはなかなか勇気がいる。それに、いくら紹介されている本体とモジュールのバージョンが古く、セキュリティ的にはボロボロということであっても、古いプラス古いなら組み合わせ的に動くことは間違いない。
 しかし、このサイトのあちこちで書いているように、古いバージョンのXOOPSやモジュールを使っているとクラックされる可能性がある(クラックされるとどうなるかは当サイトのコラム「セキュリティアップデートをせずにサイトをクラックされるとどうなるか」にて)。
 モジュールに関していえば、本で紹介されているから、本に付いてきたCDに収録されていたから安全だ、なんていうことはまったくなくて、既にセキュリティ上の問題があって公開されていないようなモジュールが付属CDに入っているということもあり得る。更に古いモジュールの中には、何も問題がないから開発が止まっているというものだけではなく、開発する時間が取れなくなったので放置しているとか、新しいモジュールに開発を移行したので古い方は途中でやめたとか、問題を抱えながらそのままというのもある。一応、当サイトにもモジュールセキュリティ情報というのがあるが、ここの情報も既に古いかもしれない。自分が使っているものが最新版なのか、新しいモジュールに切り替えるようにというアナウンスが出ていないかどうか作者のサイトへ行ってチェックするべきだろう。
 本体に関していえば、バージョン2.0.*のものに関しては基本的に同じであり、2.0.7を2.0.16aにアップデートしたところで、まったく違う何かが飛び出してくるということはない。だが、古ければやはりクラックされる可能性は高くなる。

 本に載っている情報通りじゃないと不安だ、動いているんだから今のままでもいいだろう、新しいことをまた一から覚えたくない、余計なことをして壊したくないなどなど、気持ちはすごくわかるが、古いバージョンからのアップデートというのはチャレンジというよりも義務なので、なんとか時間を取って、勇気を持って行ってほしいと思う(なお、当然のことながらファイルのバックアップは忘れずに)。

↑このページの一番上へ

XOOPS本体のダウンロード [Permalink]

 XOOPS Cube Legacyやホダ塾ディストリビューションを紹介してきたが、画像を差し替える作業で腰に負担を掛けたくないという大人の事情により、XOOPS2.0.16a JPでサイトを構築するという方向で話しを進めていく。
 ファイルをダウンロードして、インストールし、設定するという流れはXOOPS2.0.16a JPもXOOPS Cube Legacyも変わりがないので、XOOPS Cube Legacyを使う場合であってもやり方の違いというのはさほどないが、XOOPS Cube Legacyのインストール画面や設定画面などを確認しておきたいという場合は、「XOOPS Cube Legacy 2.1 ファーストインプレッション」を参照してほしい。

 それでは、XOOPS2.0.16a JPのダウンロードを始めてみよう。まずはトップページにある、

日本サイトのメニューその2

 ここのダウンロードという所をクリックすると以下のような画面が表示される。

ダウンロード情報画面

 もしかするとここら辺からついて行けなくなってくる人もいるかもしれない。新規に導入する時は一番サイズが大きい「コアパッケージ(安定版)」というのを落とせばいいというのはなんとなく理解できる。「XOOPS 2.0.16a JP」というのはバージョン番号というのもなんとなくわかる。だが、なぜ

 tar.gz形式 [1.3MB]
 zip形式 [1.9MB]

 と名前が違うものが二つ並んでいるのだと。しかも、サイズが結構違う。ということはこれは別のファイルなのだろうか。別のファイルなのにどうして「XOOPS 2.0.16a JP」という名前の下に一緒に並べられているのだろうか。

 答えを言ってしまえば二つとも同じファイルである。どちらも収納の仕方が違うというだけで、中身は一緒なのだ。Windowsユーザなら、zip形式の方を落とす方が楽だろう。
 中身が一緒ならどちらか一方だけを置いておけばいいのでは? という質問の回答は話が長くなりそうなので割愛させていただく。

「とりあえず、『zip形式 [1.9MB]』って方を落とせばいいのね」と、ぽちっとクリックすると、また混乱の画面が登場する。「ロケーション」「物理的な場所」「好みのミラーを選択」など理屈っぽそうな言葉が並び、なんだかよくわからないが、大学とか研究会とか表示されていて、ダウンロードをしたつもりのわりにはなにも落ちてこない。

ダウンロード画面

 だが、心配する必要はまったくない。三つのダウンロードのアイコンうち、どれかをクリックすればしばらくしてXOOPSのファイルがちゃんと落ちてくる。
 ところで、ここはいったいどういう場所なのか。簡単に説明すると、オープンソースソフトウェアの作者が転送量の問題などを心配しなくてもいいように作られた場所とでも言えばいいのだろうか。
 一般的に、転送量(サーバからダウンロードされたファィルサイズ)が大きければ大きいほど、つまり、みんなで借りているサーバを独り占めしている時間が長くなればなるほど、「そんなにたくさん使うなら、他の人たちよりお金多く払ってくださいね」と言われることになり、サイトの制作者には金銭的な負担が掛かる。他のユーザに迷惑だから出て行ってくれと言われたら新しいサーバと契約しなければならない。こういうことが続くと、作者は負担しきれなくなってソフトの開発もできなくなってしまうので、オープンソースソフトウェア開発を応援してくれる団体に“転送量”を負担してもらおうというわけだ。

 さて話を戻そう。落としたファイルはそのままでは使えない。解凍という作業が必要になってくる。最近は自動インストールできるソフトが多くなってきたし、無料ブログも始めからサーバに設置されているので、そういった作業はまったくやったことがないという人も増えてきたのかもしれない。簡単ではあるが、一応、解凍作業について説明しておきたいと思う。

 圧縮されたファイルを解凍するためには、アーカイブユーティリティというソフトを使う。確かWindows XPはなにも入れなくてもZIPを解凍できたような記憶があるが、XOOPS本体はともかく、モジュールが必ずしもZIPで圧縮されているとは限らないということを考えると導入しておいて損はないだろう。ZIPを含む複数の形式のファイルを簡単に解凍できて、フリーソフトということになると、

解凍レンジ(LHA、ZIP、CAB、ARJ、TAR/GZ/Z/BZ2/TGZ/TAZ/TBZ、MS-COMPRESSに対応)
Lhaplus(Ace、arc、arj、b64、bh、bz2、cab、gz、lzh、rar、tar、taz、tbz、tgz、zipなどに対応)

 などがお勧めだ。これらのソフトをインストールして簡単な設定(関連づけと呼ばれる作業)をした後、落としたXOOPSのファイルをダブルクリックすれば解凍できると思う。

↑このページの一番上へ

XOOPSをサーバにアップロードする [Permalink]

 続いて、解凍したファイルをサーバにアップロードするわけだが、これにはFTPクライアントソフトというものを使用する。ホームページビルダーなどにも付属しているが、使いやすくてフリーである、FFFTPをお勧めしたい。

FFFTPの画面

キャプション FFFTPの画面

 もし、数百を超える大量のファイルをアップロードすると途中で止まってしまうという場合は、同じくフリーソフトであるFileZillaという選択肢もありだろう。

FileZillaの画面

キャプション FileZillaの画面

 詳しい理屈は正直よくわからないが、FFFTPで大量アップロードを試みると、途中でうんともすんとも反応がなくなるというサーバにおいて、Filezillaを使うと問題なくアップロードできることがある。FFFTPより画面が煩雑で起動が遅く、取っつきにくさはあるものの、慣れれば問題ないだろう。以下、FFFTP、FileZilla、それぞれの参考サイトのリンクである。

FFFTP Support Page.
FileZillaの利用について

 ここではFFFTPを使うということで話を進めていく。

 アップロードするのは、

アップロードするファイル一覧

 以上、htmlより下にあるフォルダ、ファイルすべてである(htmlは含まない)。よく、htmlフォルダからアップロードしたり、わかりやすいという理由でxoopsというような名前のフォルダを作ってそこにアップロードしたりする人がいるが、そうすると当然のことながら、アドレスが、

 http://あなたのサイトのドメイン/html/
 http://あなたのサイトのドメイン/xoops/

 こんな風になる。もし、http://あなたのサイトのドメイン/ に、既にトップページが存在しているというのならまったく問題ないが、XOOPSをトップページしたい、というか、もうXOOPSと心中するという意気込みならば、/html/ とか /xoops/ というのは余計なものといえるので、ルートにアップロードするようにしよう。
 ちなみにファイルのアイコンに「秀」とあるのは、私自身がPHPファイルを秀丸(エディタ)で開くように関連づけしているためであり、「秀」マークがなくてもまったく問題はない。
 もう一つ、アップロード時の注意点はレンタルサーバがPHPファイルになにかしら制限を設けてないかどうか確認するということ。サーバのスペック表やヘルプといったページに「PHPはCGIとして動作します」などという文面があったら確実に該当する。その場合、必ず

 PHPファィルは属性(パーミッション)を○○○(○○○に入る数字はおそらく755か705か700)にして下さい

 といったPHPファイルを使う上での指示が書かれてあると思うので、必ずその通りにする(なければなにもする必要はない)。一個一個変えていくのはとてつもない手間が掛かるので、アップロードする前にFFFTPで下記のように設定しておくといいだろう。

FFFTPの設定画面

キャプション オプション→環境設定→転送3→追加ボタンでアップロードするファイルの属性を入力。PHPファィルの属性を705にしたい場合は、ファィル名に*.php、属性には705と入力する

 インストールの仕方は、XUGJにあるXOOPS2.0 Basic Manualにとても詳しく書かれてあるので、ここでは省略させていただく。XOOPS Cube日本サイトに「5分でインストールできる」とあるが、確かにそれぐらいでできるので、それほど引っかかるところはないと思う。XOOPS 2.0.16a、XOOPS Cube Legacy共に、データベースのIDやパスワード、自身のアカウントとパスワードを入力する以外は、基本的に画面右下の「次へ」というボタンをただ押していくだけの作業だ。

XOOPS 2.0.16aのインストール画面XOOPS Cube Legacyのインストール画面

キャプション 左がXOOPS 2.0.16a、右がXOOPS Cube Legacyのインストール画面。見た目、手順ともに若干の違いはあるが、データベースのIDやパスワードなど入力するデータは一緒だ。

 もし問題が発生するならば、

  1. 「uploads」「cache」「templates_c」、この三つのフォルダのパーミッションを777か707にしていないため、アクセス権のチェックで止まってしまう。
  2. データベースサーバのホスト名というのがよくわからない
  3. データベースに接続できない。あるいは画面が真っ白になる。

 この三つが考えられる。パーミッションについては、

 FFFTPでサーバに接続
 ↓
 該当フォルダの上で右クリックし、「属性変更」をクリック
 ↓
 現在の属性に「777」もしくは「707」と入力してOKボタンをクリック

 で解決する。

 FFFTPの属性変更画面

キャプション FFFTPの属性変更画面。9つあるチェックは「属性変更」の数字と連動しているので、数字を入力すれば自動的にチェックされる。

 データベースのホスト名については、あらかじめ「localhost」というのが入っているが、ここは必ずlocalhostとは限らない。サーバによっては、「mysqlうんぬん.ne.jp」といった感じで、サイトのアドレスからhttp://を抜いたようなものが入る場合もある。レンタルサーバ契約時、または、データベース開設時に必ず知らされるはずなのでlocalhostなのか、それとも別のホスト名が入るのか必ず確認しておこう。

 データベースのトラブルはいくつかの要因があるので、こうすれば直ると断言できないが、とりあえず、データベースは間違いなく開設したという場合は、今一度、

 の4つを確認してほしい。特に「データベースユーザ名」と「データベース名」を逆に入力していないか見てほしい。
 それでもなお、つながらない、真っ白になるという場合は「サーバにアップロードしたXOOPSのファイルを一度全部削除して、アップロードし直してみる」というのを試してみてほしい。
 一つはっきりしているのは、XOOPSのインストール部分というのは相当枯れており、ここにバグがあるとは考えづらいということだ。よって、うまくいかないというのは、なんらかのミスか作成者の環境に原因があると考えられる。小さなミスほど、そこに考えがいかずひたすらはまるというのがよくあるパターンなので、落ち着いて対処しよう。

コラム [コラム]本体インストールまたはモジュールインストール後に出現する“Notice”について [Permalink]

 通常、インストール時にはそれほど引っかかるところはないが、なんらかの理由により現在のバージョン(2.0.16a)よりも古いXOOPSをインストールした場合、あるいはずっと以前のバージョンから現在のバージョンにアップデートした場合、インストールまたはアップデート後、トップページ(モジュールのトップページを含む)の下部に下記のような文字列が大量に出現する場合がある。

 Notice [PHP]: Only variable references should be returned by reference in file include/functions.php line 565
 Notice [PHP]: Only variable references should be returned by reference in file include/functions.php line 565
 Notice [PHP]: Only variable references should be returned by reference in file include/functions.php line 565
 Notice [PHP]: Only variable references should be returned by reference in file include/functions.php line 565
 Notice [PHP]: Only variable references should be returned by reference in file include/functions.php line 565

モジュールインストール後に管理画面下に出たNotice。

キャプション モジュールインストール後に管理画面下に出たNotice。

 Notice(→注意)というのがポイントで、どう見ても正常には思えないので「インストール時になにか間違えてしまったのでは?」と困惑する人も多いだろう。しかし、こうなることが正常動作なので安心してほしい。
 たとえはあまりよくないかもしれないが、上の文字列はPHPの文法エラーを指摘しているもので、

 注意 [ら抜き言葉]: include/functions.phpの565行目 見れる
 注意 [ら抜き言葉]: include/functions.phpの565行目 来れる
 注意 [ら抜き言葉]: include/functions.phpの565行目 食べれる
 注意 [ら抜き言葉]: include/functions.phpの565行目 着れる
 注意 [ら抜き言葉]: include/functions.phpの565行目 出れる

 イメージ的にはこのような感じになるだろうか。ら抜き言葉が実際に文法的に間違っているかという話は難しくなるので遠くに置いといて、ようは、「俺様(PHP)が決めた書き方のルールから外れている文字列があるぞ」ぐらいのものだ。ルールから外れていても意味の解釈はちゃんとしてくれるので、XOOPSは普通に動作する。
 このNoticeは、[システム管理]→[一般設定(サイト一般設定)]→[一般設定]にある[デバッグモードを有効にする]にする[オフ]にすることで消える。

↑このページの一番上へ

XOOPS Cube LegacyをUTF-8でインストールする [Permalink]

 第三の選択「ホダ塾ディストリビューション」の項目でも書いたが、様々な言語が混在していても文字化けしないという強みから、コミュニティサイト、ポータルサイト的なものはUTF-8で作るというのが時代の流れになっている。Yahoo! Japanは今年始めのリニューアルでUTF-8になっているし、gooもいつの間にかUTF-8だ。だからホダ塾ディストリビューションもデフォルトがUTF-8なのだろう。
 ではオリジナルのXOOPSはどうだろうか。
 実は2.0.16aまでのXOOPSには存在しないが、 XOOPS Cube LegacyにはちゃんとUTF-8の言語ファイルが用意されている。こう書くと「え、でもインストール時にUTF-8を選べなかったよ」という疑問を抱く人は多いだろう。これは当然のことで、UTF-8の言語ファイルはXOOPS Cube Legacyのファイルを解凍して出てくる、\Package_Legacy\extras というフォルダに隠されているのである。簡単ではあるが、この中にあるファイルを使ってXOOPS Cube LegacyをUTF-8でインストールする方法を書いておこう。

 まず、\Package_Legacy\extrasの中にあるja_utf8フォルダを開く。日本語のreadmeファイルがあるので一読しておくといいだろう(既にEUC-JPで動いているXOOPSをUTF-8に移行する方法も書かれている)。

解凍して出てきたXOOPS Cube Legacyのフォルダ

キャプション XOOPS Cube Legacyの圧縮ファイルを解凍すると出てくる3つのフォルダ。UTF-8化の肝は普段あまり出番がないextraフォルダ。

言語ファイル一覧

キャプション フォルダを開いていくと、各国の言語ファイルが詰まったフォルダが出てくる。ここにあるja_utf8フォルダを開くと……。

言語ファイル一覧

キャプション READMEファイルとhtmlフォルダが出てくる。

 その後、更にhtmlフォルダを開き、出てきた「install」「language」「modules」フォルダをそれぞれコピーして、\Package_Legacy\html 以下(XOOPSをインストールする際にアップロードするファイル群)の同名フォルダに貼りつける(上書きする)。勿論、コピー→貼りつけではなく、単にファイルの移動でも構わない。

言語ファイル一覧

キャプション \Package_Legacy\extra\extras_language\ja_utf8\htmlフォルダを開くと、「install」「language」「modules」という3つのフォルダが出てくる。

言語ファイル一覧

キャプション \Package_Legacy\extra\extras_language\htmlフォルダ内の「install」「language」「modules」フォルダをコピーし、それぞれ、\Package_Legacy\html以下の同名フォルダに貼りつけ(上書き)、または移動してやればOK。同名フォルダの“中に”貼りつけてしまう、つまり、\Package_Legacy\html\install(もともとあるフォルダ)\install(貼りつけ、移動したフォルダ)なんていうことにならないように注意。

言語ファイル一覧

キャプション 正しく貼りつけ、移動できれば、それぞれのlanguageフォルダにデフォルトでは存在しないja_utf8フォルダが収まる。画像は\Package_Legacy\html\install\languageにja_utf8フォルダが収まったところ。

 以上の操作がうまくいき、アップロードも正常に終了すれば、インストール時、言語設定のところで「ja_utf8」が選択可能になり、それを選べばすんなりとUTF-8でインストールすることができるだろう。

ja_utf8が選択されているインストール画面

キャプション デフォルトでは存在しない「ja_utf8」がちゃんと出てくる。

↑このページの一番上へ

インストール直後はなんにもない [Permalink]

 さて、インストールに成功して画面が出てきた。妙に暗色が多いデザイン、そして左側に申し訳なさそうに配置されているメインメニュー。

XOOPSの初期画面

キャプション 勢いだけで入れてしまった人間を困惑させる簡素な画面。

で?

 大抵の人はこう言いたくなるだろう。個人的には、初めてこの画面を見たとき、未来神話ジャーヴァスのファーストプレイ時と同じ気持ちになった。

円グラフ

 一見してなにができるのかよくわからないこの初期画面はブログ慣れした多くのユーザの心を不安にさせるに違いない。

 なんとか気を取り直して、XOOPSインストール時に設定した「管理者ユーザ名」と「管理者パスワード」を使って管理者としてログインをし、ユーザメニューから管理画面に入ってみる。左側に大きなアイコンがずらずらと並んでおり、「SYSTEM ADMIN」から一般設定に入り、サイト名などを入力する。一番下まで入力してユーザはやっぱりこう思うだろう。

XOOPSの管理画面

キャプション XOOPSの管理画面。英語で名前が記されたアイコンが並び、右側は真っ白。

それで……?

 ブログ慣れしたユーザの不安はこの辺でピークに達する。どこをどう操作すると自分の文章がサイトに表示されるのかさっぱりわからないのだ。これは想像以上に不安なことである。今、改装中ですとか、もうしばらく経ってから来て下さいとか一切書けず、ただ例の無機質なトップページが表示されているのみ。中にはパニックに陥って思わずXOOPS関連のファイルをすべて削除してしまう人もいるかもしれない。

コラム [コラム]php.iniの設定(重要) [Permalink]

 XOOPSのインストールが終了したら、絶対にすべきことがある。php.iniの確認だ。php.iniというのは、簡単に言えばphpの機能をONにするかOFFにするかを決める設定ファイルで、一般的なレンタルサーバなら、.htaccessに記述するという形でほとんどの所でユーザが編集できるようになっているはずだ(と思う)。
 いろいろな機能の中で絶対にOFFにしておくべきなのは、

 register_globals

 というもの。ONにしなければ動かないモジュールなどもあるようだが、register_globalsをONにしたときの危険性はさんざん説かれており、それでもなおONにしないと動かないということは、長い間バージョンアップされていない、つまり、攻撃の入り口になるようなセキュリティホールを抱えている可能性が高いと考えた方がいい。よってそのようなモジュールは使うべきではない。
 詳細な設定例についてはxoops wikiが詳しいのだが、なぜか該当ページにつながらなくなってしまっているので、引用させていただく。

xoops2 wiki-レンタルサーバーで(apacheを使用している).htaccessによる日本語環境設定の例

多くのレンタルサーバーでは、利用者により、必要とする日本語環境がさまざまなため(xoopsだけじゃないですから)借りている人が自分で環境を合わせられるようになっていることが多いです。
レンタル貸し出し側でXoopsのセットをしてくれるサービスがある場合以外は、借りている人が自分で責任持って設定しなくてはいけません。 お使いのレンタルサーバーがどういうシステムにしているかなど、詳しくは各レンタルサーバーのサポート窓口にお問い合わせください。

apacheを利用しているサーバーでは、.htaccessで借りている方が日本語環境を設定できるようになっていることが多いので参考例を書いておきます。

.htaccess での指定例です。(参考)

php_flag register_globals OFF
php_value default_charset EUC-JP
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation ON
php_value mbstring.detect_order ASCII,JIS,EUC-JP,SJIS,UTF-8
php_value mbstring.internal_encoding EUC-JP
php_value mbstring.http_input auto
php_value mbstring.http_output pass
php_value mbstring.substitute_character none
php_value output_handler none

訂正

php_flag output_buffering OFF
と書いておりましたが output_buffering は値なので
php_value output_buffering none
これは、または、既定値のままで.htaccessには書かないほうが良いかもしれません。

 構築したXOOPSサイトのどこにアクセスしても、URLが「http://xoopsを設置したアドレス/**.php?PHPSESSID=アルファベットと数字がたくさん」となってしまう場合は、以下の2点を設定しておこう。

 session.use_trans_sid(OFF運用推奨)
 session.use_only_cookies(ON運用推奨)

 なお、register_globalsと並んでON運用が危険とされているものにallow_url_fopenがあるが、こちらは現在の一般的なレンタルサーバだと編集できない可能性が高い。

コラム [コラム]XOOPSを自分のパソコンにインストールする(XSAS及びXAMPPの使い方) [Permalink]

 基本的に、XOOPSを使うためには対応するサーバを借りるしかないわけだが、借りてインストールした後、「なんかXOOPSって思っていたのと違う……」ということになって放置してしまうと、時間とお金の無駄になってしまう。また、最初はそんなに自由自在にカスタマイズできるということはないだろうから、サーバに上げてからいじるということになると、ちょっとしたミスで真っ白になってしまい、原因がわからずに放置してしまうという可能性もあり、やはり時間とお金がもったいない。
 このような無駄を防ぐためには、ローカル(自分のパソコン)でXOOPSを思う存分試用できればいいわけであり、実現するためにうってつけのパッケージがある。株式会社RYUSが無料でリリースしているWARPというものだ。実行ファイルをダブルクリックするだけでパソコン内でサーバが起動し、インストール済みのXOOPSを使用できる。既にいくつかのモジュールとデータが入っているので運用時の感覚を掴めるだろう。もちろんカスタマイズも可能である。失敗してもいくらでもやり直しがきくのは便利だ。

 http://ryus.co.jp/modules/d3downloads/index.php?cid=6(ダウンロードページ)
 株式会社RYUS(トップページ)

 使い方だが、まず、ダウンロードしたら任意の場所に解凍し、「Server_Start.bat」をダブルクリック。

WARPの起動画面

 ブラウザが起動し、上のような画面が出てくるので「START XCCP」というところをクリック。すると社内で運用されている風のXOOPSサイトにアクセスできる。設定をいじりたいときは管理者用のアカウントでログインするといいだろう。

WARPのサイト画面

 新たにモジュールをインストールしたいという場合は、解凍したモジュールファイルを WARP_XCCP\udrive\home\warp\html\xccp 内のmodulesフォルダに移動してやればいい。ちなみに xoops_trust_pathはWARP_XCCP\udrive\home\warp\html\xccp_xoops_trust_path になる。

 以下、2010年1月加筆。

 以下に記したXAMPPの最新版の使用は推奨しない。なぜならPHPのバージョンが5.3以上でXOOPSのインストールに失敗するからである。もしXAMPPを使用したい場合はPHPが5.2.*以下のXAMPPを選択しよう。

 以下、2008年1月加筆。

 2008年以降、レンタルサーバで使われるPHPのバージョンが4から5に上がっていくことが予想される。
 そうなってくると、PHPのバージョンが4.3.11のXSASの環境は古くなり、実際にXOOPSを稼働させている環境に近いとはいえなくなるので、もし最新の環境で使いたいというのならばPHPが4 or 5で、MySQLのバージョンも5↑のXAMPPというパッケージを使う必要が出てくる。これはXSASと違ってXOOPSを動かすために特化しているパッケージではないが、一つのパッケージにいくらでもXOOPSをインストールできるし、SQLiteなんかもインストールされていてより実際に稼働しているサーバに近い。

 XSASと違って日本語の説明が同梱されているわけではなく、XOOPS2というリンクをクリックするとXOOPSが起動するというXOOPSユーザ御用達の親切設計でもないので、XASAに慣れていると相当抵抗感があるかもしれないが、XOOPSを動かせるようにするまでの手順を箇条書きしていくので、もし使いたいという場合はこの通りやってみてほしい。

apache friends - xampp for windowsから最新版をダウンロード(ZIPと書かれているほう)して解凍する。なお、インストーラ版だとこの後の作業が違ってくるが、基本的にはインストールウィザードに従っていくだけ。

ルートディレクトにあるsetup_xampp.batをダブルクリック


コマンドプロンプトの黒い画面が出てきて、なにか始まり、「続行するには何かキーを押して下さい...」というような表示されるので適当なキーをクリック

xampp_start.exeをダブルクリックするとサーバ(ApacheとMySQL)が起動する


ブラウザで http://127.0.0.1/ または http://localhost/ にアクセスするとセットアップ完了、みたいな画面が日本語で出てくる(この画面からphpMyAdminなどにアクセスする)


画面左下にあるリンクからphpMyAdminにアクセスし、照合順序を「eucjpms_japanese_ci(ujis_japanese_ciでも可。名前と中身も微妙に違うがどちらもEUC-JP)」にして任意の名前の新規データベースを開設(XOOPSセットアップ時に入力するデータベースサーバのホスト名は“localhost”、データベースユーザ名は“root”、データベースパスワードは“なし=空白”、データベース名は“ここで作ったデータベースの名前”ということになる)

エクスプローラなどで \xampp\htdocs\xampp 以下に適当なフォルダを作る(ここでは仮にcubeとする)。

\xampp\htdocs\xampp\cube 以下にXOOPSのファィルを流し込む

ブラウザで http://127.0.0.1/xampp/cube/ または http://localhost/xampp/cube/ にアクセスして、XOOPSのインストールを開始する

終了。以降、サーバを停止する場合はxampp_stop.exeをダブルクリック。作成したXOOPSのサイトにアクセスする場合は必ずxampp_start.exeをダブルクリックして、サーバを起動しておく。別のXOOPSをインストールする場合は、\xampp\htdocs\xampp 以下に別のディレクトリを作り、そこにXOOPSのファイルを流し込んで新規データベースを開設すればよい。なお、XSAS同様、フォルダ内ですべてが完結しているのでUSBメモリなどに入れて持ち運ぶことが可能だ。

↑このページの一番上へ

2005年1月6日執筆 2010年1月21日加筆修正