【コラム】
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"だ。
$ 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のデータベース構造について調べてみたい。
ヘッドライン
- トレンドマイクロ、USBメモリ型ウイルス検索製品「Portable Security」発表[10:42 2/10]セキュリティ
- 【コラム】FileMaker×PHPで作る、簡単・便利なWebアプリ 第49回 結果セットの取扱いに特化したクラス、FileMaker_ResultSet(2)[10:18 2/10]プログラミング
- CSS/HTMLリファレンスマニュアル、最新ブラウザ互換情報[09:00 2/10]JavaScript / CSS / HTML
- 【レビュー】BOOK REVIEW - 現場に振り回されるだけのSE人生がイヤならチカラをつけよう[09:00 2/10]SE力
- 【レポート】暗号2010年問題に向け「いつまでに何をすべきか」 - ベリサインが説明[08:00 2/10]セキュリティ
- ルネサス、RXファミリ第3弾としてモータ制御向け「RX62T」を製品化[07:00 2/10]エレクトロニクス
- Rambus、次世代携帯機器向けメモリ「モバイルXDR」を発表[21:16 2/9]エレクトロニクス
- Intel、基幹業務システム向け次世代プロセッサ「Itanium 9300」を発表[20:47 2/9]エレクトロニクス
- MicronとNanya、42nmプロセスを採用した2GビットDDR3を開発[20:07 2/9]エレクトロニクス
- ISSCC 2010 - 日立、1Gbpsあたり消費電力1mW以下のトランシーバ回路を開発[19:52 2/9]エレクトロニクス







