マイコミジャーナル

知りたい!を刺激する総合専門サイト


  1. エンタープライズ

  2. SE力
  3. コラム
  4. Yet Another 仕事のツール

【コラム】

Yet Another 仕事のツール

53 osCommerceでショップを構築(1) - 導入

2005/02/08

鶴田展之

まずはお知らせ。前回紹介したmysqlbenchが、日本MySQLユーザ会のサイトからダウンロード可能になっている。今のところステータスは「要検証」とのことなので、皆さんも是非どんどんテストに参加して、問題点を洗い出して頂ければ、と思う。

今回からは、またまたMySQLとPHPを使ったオンラインショップのアプリケーション、「osCommerce」を取り上げていきたい。osCommerceはXOOPSと並んで最も広く普及しているLAMPアプリケーションのひとつであり、既に導入してショップを開設している人も多いだろう。しかし、単純に用意された機能だけを使うのでは、オープンソースの使いこなしとしては十分ではない。せっかくデータ構造もソースコードも公開されているのだから、ニーズに合わせたカスタマイズを行ってみよう、というのが今回からしばらくの趣旨である。正直、どんなカスタマイズをしていくかについてのイメージはあるものの、具体的な方法については筆者もまだ詳しく決めていない。漠然とした目標だけ挙げておくと、

「この商品を買った人は別のこの商品も買っています」

という、よく見かける推売システムの機能を付加してみたいと考えている。つまり、MySQLデータベースに蓄積される実際の注文データから、なんとかして顧客の購買傾向を読み取ってシステムに反映しよう、という試みだ。

そこで、まずはLAMP環境が既に整っていることを前提に、素のosCommerceを導入してみる。日本語化された最新のパッケージ「oscommerce-2.2ms1j」をダウンロードし、圧縮ファイルを展開すると、中に「catalog」、「admin」というディレクトリがある。「catalog」には一般に公開するサイトのスクリプト、「admin」にはショップ運営者側の管理用スクリプトがまとめられているので、両方をWebサーバの任意の公開ディレクトリに設置する。

データベースの準備も必要だ。適当な名前でデータベースをひとつ作成し、適切なユーザに権限を与えておこう。以下の例ではshopデータベースを作成し、localhostのshopadmユーザに全権を与えている。shopadmユーザのパスワードは"shoppass"だ。

$ mysqladmin -uroot -ppassword create shop
$ mysql -uroot -ppassword shop
> grant all on shop.* to shopadm@localhost identified by 'shoppass';

ところで、1点だけ注意が必要なことがある。PHPにはHTTPのPOSTメソッドやGETメソッドによって送られてくるユーザデータ、つまりHTMLフォームやURLのクエリ文字列によって渡されるデータをグローバル変数として自動的に展開する「register_globals」の機能があるが、この機能はセキュリティ上の弱点になりやすいことから、PHP 4.2.0以降でデフォルト「Off」に設定されるようになっている。しかし、osCommerceはregister_globalsがOffだと正しく動作しないため、php.iniもしくは.htaccessで、このパラメータをOnに設定しておかなければならない。なお、「register_globals」パラメータをOnに設定したからといって、即それがセキュリティホールになるわけではなく、あくまでも危険なスクリプトを生みやすくなる、ということだ。ここではosCommerceの開発者を信頼して、設定をOnに変更することにする。

ここまで準備できたら、WebブラウザからosCommerceの「catalog/install/」ディレクトリを開き、表示されるインストーラに従って導入作業を行う。

パーミッションのチェックやデータベースへの接続確認など、インストーラが親切に全て指示してくれるので、特に難しいことはないだろう。インストールが完了したら、「catalog」サイト、「admin」サイトそれぞれを開いて、画面の流れ、どこでどのような設定ができるかを確認しておこう。なお、管理サイトにログインするためのアカウントは、ユーザ/パスワード共に「admin」である。パスワードは、管理メニューの「ユーザ管理」から直ちに変更しておこう。

次回はosCommerceのデータベース構造について調べてみたい。


特別企画


注目サイト