「XOOPS」にECサイト機能を追加したい

前回、クチコミ情報を書き込める掲示板サイトを構築するために、オープンソースのコンテンツ管理システム(CMS)である「XOOPS」をホスティングサーバに導入した。そしてXOOPSでは、掲示板だけでなく、モジュールを追加することによってさまざまな機能をWebサイトに追加できることもあわせて紹介した。

それならば、ECサイトを構築するモジュールがあっても良いのではないかと考える向きも多いだろう。そこで今回は、XOOPSのモジュールとしてECサイトを追加できる「ZenCart On XOOPS」をホスティングサーバに導入する方法を紹介したい。ホスティング環境には、引き続きNTTPCコミュニケーションズのVPSサービス「WebARENA SuitePRO V2」を用いる。

なお、ここではデフォルトのrootユーザーでログインした場合で紹介するが、実際の運用では専用ユーザーを追加するなど、よりセキュリティに配慮したほうが好ましいことはいうまでもない。

「ZenCart On XOOPS」のダウンロード

ZenCart On XOOPS(図1)は、第4回で紹介した「WordPress On ZenCart」と同じ「S-page」から提供されているモジュールだ。無償でダウンロードおよび利用することが可能だが、ダウンロードの前に、ECサイトのように会員登録してから、モジュールをカートに入れて注文手続きをする必要がある。一般的なダウンロードサイトとは勝手が異なるので注意していただきたい。ちなみに、ダウンロードする際のファイル名は「zox_jp.zip」となる。

【図1】「ZenCart On XOOPS」のWebサイト

ホスティングサーバにアップロード

このときダウンロードされたモジュール(zox_jp.zip)は、Webブラウザが動作しているPCに保存されている。ホスティングサーバに保存するためには、FTPクライアントを用いてモジュールをアップロードしなければならない。FTPに関する設定は第4回で紹介しているので、そちらを参照していただきたい。

XOOPSモジュールとして登録

ホスティングサーバにモジュールをアップロードしただけですぐXOOPSモジュールになるわけではない。それをXOOPSのディレクトリにコピーし、アクセス権限を適切に変更してからでなければ、ZenCart On XOOPSをXOOPSモジュールとして登録することはできない。

そこで、ZenCart On XOOPSをXOOPSモジュールにするための手順を以下に述べる。ただし、モジュールの登録は、事前にテスト用のXOOPSをサーバに構築して、うまく登録できるかを確認しておいていただきたい。くれぐれも顧客のWebサイトへのアクセスでトラブルを起こさないように対処すべきである。

1. SSH端末でホスティングサーバにログインし、モジュールをアップロードしたディレクトリに移動する。

# cd モジュールをアップロードしたディレクトリ

2. FTPクライアントでアップロードしたモジュールを展開する。このときzox_jpというディレクトリが作成され、その中にモジュールのファイルが展開される。

# unzip -q zox_jp.zip

3. 展開されたファイルのうち、zox_jp/modules/zoxディレクトリ以下のすべてをXOOPSのmodulesディレクトリにコピーする。

# cp -R zox_jp/modules/zox XOOPSのmodulesディレクトリ(/var/www/html/xoops/modules/)など

4. XOOPSのmodulesディレクトリにコピーされたファイルのアクセス権限を図2のように変更する。

なお、図2にはzox/admin/backupというディレクトリが記されているが、実際に存在するのはzox/admin/backupsであり、こちらが正しいのではないかと推測される。

【図2】アクセス権限の変更(付属ドキュメントreadme_jp.txtより)

ちなみに、図2の設定を、XOOPSのmodulesディレクトリが/var/www/html/xoops/modules/である場合で実行するコマンドを以下に列挙する。

chmod 777 /var/www/html/xoops/modules/zox/admin/backups
chmod 777 /var/www/html/xoops/modules/zox/admin/images/graphs
chmod 777 /var/www/html/xoops/modules/zox/cache
chmod 777 /var/www/html/xoops/modules/zox/media
chmod 777 /var/www/html/xoops/modules/zox/pub
chmod 777 -R /var/www/html/xoops/modules/zox/images
chmod 444 /var/www/html/xoops/modules/zox/includes/configure.php
chmod 777 /var/www/html/xoops/modules/zox/includes/languages/english/html_includes
chmod 666 -R /var/www/html/xoops/modules/zox/includes/languages/english/html_includes/*
chmod 777 /var/www/html/xoops/modules/zox/includes/languages/japanese/html_includes
chmod 666 -R /var/www/html/xoops/modules/zox/includes/languages/japanese/html_includes/*

それから、図2はzox_p/docs/readme_jp.txtという付属ドキュメントに記されているが、文字コードがEUCになっているため、SSH端末のソフトウェア(「TeraTerm Pro」など)で閲覧する場合は、事前に文字コードをEUCに設定しておく必要がある。

5. zox_jp/commonディレクトリ以下のすべてをXOOPSのcommonディレクトリにコピーする。

# cp -R zox_jp/common/* XOOPSのcommonディレクトリ(/var/www/html/xoops/commonなど)

これはブロック表示のために用いるものだが、実際に表示させるには、アクセスした顧客のWebブラウザでJavaScriptが実行可能でなければならない。

XOOPSモジュールのインストール

上記のコピーおよび設定が完了したら、XOOPSの管理者ユーザーでログインし、管理者メニュー→システム管理(「SYSTEM ADMIN」というアイコン) → モジュール管理の順にクリックする。図3のようにアイコンが表示されるはずだ。うまく表示されなければ、付属キュメントおよび上記を再度確認していただきたい。

あとの手順は、第4回のWordPress On ZenCartのときと同じだ。インストールが完了すると、図4のようにモジュールのアイコンが画面上部に表示される。ホームページに戻ると図5のようにデフォルトでZenCartの画面が表示される。

【図3】XOOPSモジュールとして登録されたZenCart On XOOPS

【図4】インストール完了後

【図5】ホームページの表示

「NOTICE」を非表示にするには
ホームページ画面にNOTICEというPHPからのメッセージが多数表示されることがある。それを防ぐには、「システム管理」→「一般設定」→「一般設定[編集]」の順にクリックし、デバッグモードをオフにしていただきたい(図6)。

【図6】デバッグモードをオフにする

デモデータの適用

デモデータは、zox_jp/modules/zox/sql/mysql_demo.sqlに保存されているSQLを実行すると適用される。そのためには、「管理画面」→「追加設定・ツール」→「SQLパッチのインストール」からこのファイルに保存されているSQL自身をコピー・ペーストし、「送信」をクリックする。

これを行う場合は、事前にデータベースのバックアップを取得しておき、トラブルが起きてしまってもすぐに対応できるようにしておいていただきたい。

ブロックの表示

ブロックを表示させるには、管理者メニュー→システム管理→ブロック管理の順にクリックし、CSS/AJAX_noneを左に表示させるようにしたあと、ZenCart On XOOPSのブロックを表示するように設定する(図7)。

ブロックをECサイトと共に表示した例を図8に示す。これでECサイトらしくなったのではないだろうか。

【図7】ブロック表示の設定例

【図8】ブロックと共にECサイトを表示(デモデータ適用後)

これまで、本連載ではブログ、ECサイト、掲示板など、ホスティングサーバ環境でさまざまなWebサイトを構築する方法を紹介してきた。本稿で最終回となるが、これが読者にとって「自前」のWebサイトを情報発信の手段として活用するきっかけとなるならば、筆者にとってこれほど有難いことはない。