|
ファイルを解凍したら、そのままアップロードしましょう。アップロードする場所はどこでもかまいません。
(いや・・・契約しているサーバーによっては、アップロードする場所が決まっていることもあります。不安な方は、サーバー業者に聞いて見ましょう。でもたいていは大丈夫!)
ファイルを解凍すると、中に「shopv2_r」などの名前の付いたフォルダが出てきます。これをフォルダごとアップロードします。アップロードするときは、自動選択モードでOK。
全てアップロードしたら、パーミッションを変更します。「設定」ページを見ると、ずらぁぁっと、たくさん出てきますが、それを一つ一つ確認しながら設定してください。基本的には・・・
- 755にするのは「shop.cgi」と「admin.cgi」だけ。
- 777にするのは「cargo_html」「image」フォルダ以外の全てのフォルダ(Shop System Type1だけは「image」フォルダを777にします)
- それぞれのフォルダに入っている「xxx.cgi」は全て666にする。
- 後は変更不要。
一部例外はありますが、こんなところです。
さて、このパーミッションですが、どのようにして決めているのでしょうか?
これが理解できれば、どんなにたくさんファイルがあっても、恐れることなくアップロードできます。
■755のファイル---Windowsでいうところの「exe」ファイル
755に指定するファイルは、Windowsでいうところの「exe」ファイルに該当します。Word.exeとか、Excel.exeとか、そのファイルをダブルクリックすると、何らかのソフトが起動するタイプのファイルですね。
「shop.cgi」と「admin.cgi」はいわば、サーバー上の「exe」ファイルです。
ただ、Webサーバーでは見ている人はダブルクリックできませんから、リンクを使ってプログラムを起動させているのです。
さらに、Webサーバーで使われているのは、UNIXとかLinuxと言われるWindows ではないOSです。このOSでは、パーミッションを使って、そのファイルを実行可能
(プログラムとして動作できる) ファイルとするか、しないかを指定しているのです。
ということは、
755にすれば、CGIスクリプトが動くし・・・
755でなければ、ただのテキストファイルで、CGIスクリプトは動きません。
755にしなければ、「Server Error」が出てそれっきりです。
買い物かごで「プログラム」として動かすのは「shop.cgi」と「admin.cgi」の二つだけ。だから、755にするのは、この二つしかないのです。
■666のファイル---みんなが書き込みできるファイル
666は、アクセスしてきた人にデータを書き込ませるためのファイルに指定します。Windowsでは何もしなければ、メモ帳で作ったテキストファイルとか、ワードで作ったファイルを削除したり、書き換えたりできます。もしそれをさせたくなければ「読み取り専用」にしなくてはいけません。
ところが、「UNIX」や「Linux」はその反対です。
何もしなければ読むことしかできないのです。書き込むことも、削除することもできません。
そこで、アクセスしてきた人が書き込みできるようにするためにパーミッションを666にしています。
さらに曲者なのは、管理者と言えども、666にしないとファイルに書き込めないと言うこと。FTPを使ってサーバーにアクセスすれば何でもできますが、Web上からでは666じゃないファイルは読むことしかできません。
買い物かごでは、管理モードで管理者が編集するファイル
-メールデータ(「ad_data」フォルダ内のファイル)
-送料データ(「soryo」フォルダ内のファイル)
さらに、ユーザーが自動作成するファイル
-買い物履歴ファイル(「data」フォルダ内のファイル)
が、666にするファイルです。
買い物履歴ファイルは、スクリプトが勝手に作成して、勝手に666にしています。
Windowsでは、2000やXPProの「アクセス権」がパーミッションに該当します。
■777のフォルダ---みんなが書き込みできるファイルが入っているフォルダ
666のファイルが入っているフォルダは、777にする必要があります。
何もしない場合のフォルダのパーミッションは755または775です。
このままだと、このフォルダに入っているデータに、データの書き込みや保存、変更ができません。
そこで、777に変更します。
そして、「lock」フォルダ。
このフォルダには何もアップロードしません。でも777です。どうしてでしょうか?
このフォルダは、「重複処理防止用」に特別に用意されています。
たまに、アクセスカウンタの数値が急に1に戻ってしまった・・・なんてことがあるでしょう。
俗に「カウンターが壊れた」なんていいますが、これを防止するのが「lock」フォルダです。
買い物かごでは、複数の人が「まったく同時に」買い物を始めた場合、買い物履歴ファイルが重複してしまいます。 (アクセスした時間をファイル名にしているので・・・)
もちろんタイミングとしてはごくわずかの可能性しかありませんが、0とは言い切れません。そこで、「lock」フォルダで重複処理を防止しています。
具体的には、
.誰か初めて商品を購入したら、スクリプトが「lock」フォルダに「lock.tmp」というファイルを作成。履歴ファイルを作成し、必要なデータを書き終えたら、「lock.tmp」を削除します。
.この処理中に、別の人が初めての商品を購入しようとして、この「lock」フォルダに「lock.tmp」を作成しようとするけど、すでに存在するので作成できない。「lock.tmp」のパーミッションは644なので、上書き不可能です。
このファイルが存在したら1秒待つ。そして再度「lock」フォルダにアクセス。これを5回繰り返します。この間に「lock.tmp」が消えていれば、次の人が商品履歴ファイルを作成できるようになります。もし5秒過ぎてもだめだったら・・・
「混雑しています」エラーを出します。その場合、ユーザーはいったん前のページに戻って再度購入することができますが、このエラーが出ることはめったにありません。
このように使われているので、最初から「lock.tmp」をアップロードしてしまうと、買い物ができなくなってしまいます。
■設定不要のファイル---読むだけのファイル
その他のファイルは設定不要。これらのファイルは「読むだけ」ファイル/フォルダだからです。
「cargo_html」に入っているテンプレートファイルは、スクリプトが読み込むことはあっても、スクリプトが書き換えることはありません。見た目は書き換わっているようですが、実際には、「$」ではさまれた記号の場所に、スクリプトが、その時々に応じたデータを書き込んでいるだけです。
「image」フォルダ内のデータも同じです。
ただ、先に述べたように、「Shop System Type1」だけは、画像をアップロードしたり、画像を置き換える必要があるため、パーミッションが777になっています。
jcode.pl cgi-lib.pl set.pl これらのファイルもデータを呼び出すだけなので設定は不要です。
以上の点を頭に入れて、設定メニューページを見てみましょう。
|