- ベストアンサー
ショッピングカートのCGI設定できず…初心者が頑張って作成中
- biglobeのサーバーを借りてネットショップを開くためにルミーズカートをダウンロードしたが、設定の仕方が分からず、ストアの登録ができない
- データベースファイル用ディレクトリの指定でdbフォルダが作成できず、どうすれば作れるのか分からない
- アクセス制御ディレクトリprivateの中にdbフォルダを作成したが、相対パスの指定に迷っている
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
public_html の外はあなたには、ファイルやディレクトリを作る権限が無いのではないか思います。 これはどうしようもないことなので仕方ないですね。 $dbhome= "../../private/db"; ですけれども、main.cgi と同じところに private って言うディレクトリがあるんですよね? そうだとしたら $dbhome= "./private/db"; になります。".." (ドットが2つ)というのは親ディレクトリ、"." (ドットが1つ)はカレント(自分自身)のディレクトリです。main.cgiからみて自分と同じ場所なら、ドット1つの "./private/db" と言うようになります。 あと、private/db のディレクトリにも忘れずに権限を設定してくださいね。 動かないときは後は権限の設定があっているかどうかです。マニュアル通りに一致していても動かないときは、権限設定を変えてみてください。この 755 とかの数字が与える権限をさしています。 この 755 は8進数で表されていて、さらにこれをビット(2進数)に分解すると 755 => 111 101 101 になり、2進数の1のとき許可、0のとき禁止という意味です。 1つの要素は左から読み込み許可(r)、書き込み許可(w)、実行許可(x)となっているので 7 => 111 => r=1, w=1, x=1 つまり読み込み・書き込み・実行の全てを許可、と言う意味です。 755 のそれぞれについては、一番右端の数字が自分自身(あなた)、 真ん中の数字はグループ(Biglobe内の全てのユーザー)、 右端は全てのユーザー(インターネットでアクセスしてきた全ての人)に与える権利です。 つまり755 は左から順に、 7 => 111 あなた自身は読んだり書いたり実行もできる、 5 => 101 ほかのBIGLOBEユーザーは読んだり実行したりはできるけど書き込みはできない 5 => 101 インターネットでアクセスしてきた全ての人にもBIGLOBEユーザーと同じ権利を与える という設定なのです。あと、実行の権利と言うのは、Windows ではexeファイルやbatファイルが実行できると決まっていますが Webサーバーは Linux や Unix というOSで動いていて、実行できるかどうかを拡張子(.exeとか.batとか.txt等)で識別するという仕組みがないので、この数字で実行できるかどうかを指定するのです。 これが理解できると、CGI設置はそれほど難しくありません。 ディレクトリにファイルを作れるようにするにはディレクトリの書き込み権利が必要なので、必然的に755や644になります。CGIファイルは実行するCGIの本体なので755です。HTMLファイルみたいに読むだけのものは、644(110 100 100、実行権を与えない)、plファイルはCGIの一部ですが直接実行しないので644です。 あともう一点は、CGIファイルの先頭1行目に#!/usr/bin/perl みたいのが書かれていると思います。 これはCGIファイルをどのプログラムが実行するのかという指定なので、BIGLOBEのサーバー設定にあうように変更してください。先頭の#や!の間とか!以降に空白を入れないでくださいね。 これを忘れるといくら権限とか配置をうまくやっても実行できないですから注意しましょう。
お礼
アドバイスいただいた内容に添ってカートが動くよう設定してみます。 私はCGIの基礎をもっと勉強しないとダメですよね…。 今回はとても親切で分かりやすい回答をいただき、ありがとうございました。 おかげ様で、頑張れそうです。