CGIファイルのパス指定について

このQ&Aのポイント
  • CGIファイルのパス指定について疑問があります。
  • 指定されたフォルダやパーミッションについても確認したいです。
  • XAMPPの場合、どのようにパスを記載すれば良いか教えてください。
回答を見る
  • ベストアンサー

cgiファイルのパス指定について

http://www.kent-web.com/count/mgcount.html ここを見ながら今CGIカウンターの設置に挑戦しております。 環境はwindows7 32bit xammp v3.2.1をインストールしております。 一応簡単なCGIチェック動作はしており、動作する事は確認出来ております。 で、質問なのですが、 このような指示が上記サイトに記入してあったのですが、 public_html / index.html ... ここにカウンタを設置するものとする | | +-- mgcount / mgcount.cgi [705] ... カウンタ本体 | check.cgi [705] ... チェック用プログラム | init.cgi [604] ... 設定ファイル | +-- data / mpcount.dat [606] | +-- gif / 0.gif 1.gif .... 9.gif これってmgcountというフォルダとdataというフォルダとgifというフォルダは必要なのですよね? それとwindowsなのでパーミッションは関係ないですよね? それと、 #!/usr/local/bin/perl(プロバイダで定められたPerlへのパスを指定します) とありますが、わたしのxammpはc/xammp/perl/bin にperl.exeがあるので この場合のパスはどのように記載したら宜しいでしょうか? 宜しくお願いします。

  • CGI
  • 回答数3
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.3

とりあーえず、他の人から回答を得られていないところだけ担当しよう。 > それとwindowsなのでパーミッションは関係ないですよね? 「読み込み権限」という意味では関係がある。Linuxでは755とかの昔ながらのパーミッションやSELinuxによって読み込み権限が制御されるが、Windows(Windows NT系+NTFS)ではファイルやフォルダを右クリックしてプロパティを見た時のセキュリティタブがパーミッションの代わりとなる。Windows方式のアクセス制御は「パーミッション」の変わりに「ACL」という言葉を使うのが一般的だ。これを、CGIを動かすApacheがCGIを読み込めるようにしてやる必要がある。ローカルで開発をしている時はxampはあなたの権限で動くだろうし、本番環境では(おそらくデフォルトでは)LocalSystemアカウントの権限で動作する事であろう。Apacheを動かす時にapacheユーザーを作ってそちらでサービスを開始している、という場合にはCGIファイルに対してapacheユーザーの読み取り権限、ログ(カウンターのカウント)に対して書き込み権限を付与してあげる必要があるな。 動いている時には気にしなくていい事だが、いざ動かないという時にチェックするポイントの一つにはなるだろう。

RIOT1970
質問者

お礼

ACL ググったら出てきました。 初めて聞く言葉でした。 勉強になります。ありがとうございます。

その他の回答 (2)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

その書き方じゃさっぱり分からない /    ルート(public_html) |-- index.html ... ここにカウンタを設置するものとする |-- mgcount / |   |-- mgcount.cgi [705] ... カウンタ本体 |   |-- check.cgi [705] ... チェック用プログラム |   |-- init.cgi [604] ... 設定ファイル |-- data/ |   |-- mpcount.dat [606] |-- gif/ |   |-- 0.gif 1.gif .... 9.gif じゃないのかな??? >それとwindowsなのでパーミッションは関係ないですよね?   ローカルでは関係ないが >この場合のパスはどのように記載したら宜しいでしょうか?   Windowsは、そんなもの気にしません。実際に設置するサーバーにあわせましょう。  私は、apacheなのですが、C:にウェブを置くのは?? D:\public_html D:\usr\local\bin にperl  とかがよいかと

RIOT1970
質問者

お礼

表、分かりずらくてスイマセン…

回答No.1

>これってmgcountというフォルダとdataというフォルダとgifというフォルダは必要なのですよね? YES ただしパスを自分でいじれるならその限りではない。 >それとwindowsなのでパーミッションは関係ないですよね? NO なんのこっちゃ。 >この場合のパスはどのように記載したら宜しいでしょうか? 「Perlへのパス」が分からないんですか? 「C:/xammp/perl/bin/perl.exe」なんでしょ?(本文でコロンが抜けてるのはどうでもいいのでスルーします)

RIOT1970
質問者

お礼

すみませんでした。質問の仕方が悪かったです。 もうちょと煮詰めて質問すれば良かったです。

関連するQ&A

  • CGIが上手く設置できません

    質問させていただきます。 CGIがうまく設置できなくて困ってます。 PCはMacでFTPソフトはFetchです。 KENTWEBのClipMailを設置したいです。 http://www.kent-web.com/data/index.html サーバーの方はCGIを設置OKで、Perlのパスは下記のようになる様です。 http://www.cpi.ad.jp/support/faq_func/faq_func_cgi/support-187.html KENTWEBの説明に書いてあるようにCGIファイルをテキストエディットで開いて 各項目を変更しました。 ※でもsendmailのパスはサーバーサイトに書いていなかったので 取り急ぎ空欄で設定しました。 http://www.kent-web.com/data/clipmail.html その後、Fetchのテキスト形式でアップロードしました。 ※public_html直下にはアップロードしませんでした。上げたのは3階層中です。 あらかじめ、サーバー側がCGIファイルを入れるフォルダ(cgi-binフォルダ)がありましたが その中に入れなくても良い様なので、別階層にいれました。←public_html直下でなく3階層中。 http://www.cpi.ad.jp/support/faq_func/faq_func_cgi/support-186.html その後、アクセス権を設定しました。 init.cgiは644で、それ以外は755 確認するとエラー画面が表示されました。 このような流れなのですが、何が良くなかったのでしょうか… アドバイスよろしくお願いします!

    • ベストアンサー
    • CGI
  • CGIファイル内の CGI呼出しのパスについて

    CGI 内からの .cgi ファイルの呼出しのパスについて質問があります。 動作環境は linux - apache - perl です perl の cgi ファイル内で次のように、同じ /cgi-bin ディレクトリ内の reset.cgi をコールしています。 ========== #!/usr/bin/perl (省略) if($form[0] =~ /reset/){ `reset.cgi`; } ========== バッククォートで実行していますが、これでは動作せず、 ./reset.cgi と ピリオド,スラッシュを前に付けると動作します。 少し調べた結果、カレントディレクトリのパスが通っていないのかと考え、 /etc/profile の PATHに下記のように ピリオド を追加してリブートしたところ、 export PATH=$PATH:. ホームディレクトリなどで作成した シェルスクリプトは ./ なしで動くようになりましたが、 /cgi-bin ディレクトリ内の前述のような呼出しは動作しませんでした。 後は httpd.conf などの編集が必要なのかもしれませんが、 良く分かりませんでした。 申し訳ありませんが、教えて頂けると助かります。 よろしく御願い致します。

    • ベストアンサー
    • CGI
  • Perlのパス

    レンタルサーバーのCGIの説明で、「1.perl のパスは、/usr/bin/perl です。2.プログラムの先頭の記述は必ず、#!/usr/bin/perl となります。」って書いてあるんですけど、これを使用する場合、 http://www.kent-web.com/data/cart.html たぶん、admin.cgi , cart.cgi , order.cgi を エディタ で開いて以下の箇所をあたまの部分、#!/usr/bin/perl を変えればいいんですかね?それで1.の/usr/bin/perl は何処に書くのかな?それとも説明 の前置きですかね?「1.perl のパスは、」という意味はリンクがこうなるよ!って意味ですかね? ただま、KENT WEBみながら苦戦してます。 シロウトですいません。

    • ベストアンサー
    • Perl
  • KENTの夢カウンタ設置法について教えてください

    こんにちは。 HPのカウンタをCGIで付けたいな、と思いKENTから夢カウンタを借りてきて組み立て中です…が、CGIについてはてんで初心者なので、分からないことだらけで困っています。 KENTの『夢カウンタの設置法』というページから、以下の点について詳しく教えてください。 #!/usr/local/bin/perl (プロバイダで定められたPerlへのパスを指定します) →プロバイダで定められたPerlへのパスって何なのでしょうか?また、何をどのように設置するのでしょうか??そもそも、どうやって調べるんですか??HPのスペースはcoolonlineを借りてます。 よろしくお願いします…

    • 締切済み
    • CGI
  • cgiのディレクトリについて。

    フリーの買い物カートcgiの設置(ディレクトリ)についての質問です。 こちらに質問したのは、kentwebでも質問できますが、こちらの方がcgi利用の方がたくさんいるのと、画像付きで乗るので質問しましました。 まず、kentweb Aの画像ですがダウンロードした、データには ディレクトリ説明のmartフォルダがありません。 あと、ディレクトリの階層にはレンタルサーバーに問い合わせしたのですが ちょっと違い、cg-binにcgiデータを入れて欲しいということでした。 check.cgiではNGだらけでした。 まず、先頭の記述はあってますし、パーミッションもあってます。 ファイル転送はMacからアスキーで転送してますが、その時UTF-8またはShift_JISなのかわかりません。 ダウンロードしたlibやdataフォルダにはcgiやperlデータがございます。 これを部分的に取り出して、cgi-binに入れるのか? それともパブリックフォルダに入れるのかわかりません。 おそらく、init.cgiURLやサーバーのパスの..にするか絶対パスにした方が いいのか?どうやら、このあたりのディレクトリの間違いだと思うのですが、 どの辺りを直せばいいのでしょうか?

  • 掲示板のCGIを設置したいのですが・・・。

    自分のサイトにabicorpという掲示板CGIを設置したいのですが、 エラーが出てしまいうまくいきません。 パーミッションも変更しましたがなぜかできません。 #!/usr/local/bin/perl perlパスは↑です。 public_html (ホームページディレクトリ)  |-- abicorp    |-- abicorp    |-- kboard.cgi (本体?)    |-- coustom.cgi (設定)    |-- ... .cgi (ほかいくつかCGIファイルがあります)    |-- gif アイコン画像 ↑のような感じです どうしたらいいでしょうか?

    • ベストアンサー
    • CGI
  • CGIのパス(Apache winで)

    初歩的な質問ですみません。 環境 windows2000 サーバー Apache/1.3.20 ActivePerl-5.6.1.626 をインストールが完了して、CGIを動作させようとしています。 ApacheでのHTML動作はできています。 CGIプログラムの一行目に #!/usr/local/bin/perl と記載されています。 その文字列を #!c:/bin/perl.exe に変更して現在動作させています。 しかし、ISPのHPスペースのperlへのパスは #!/usr/local/bin/perl なので、転送前に一行目を変更しています。 変更しなくても良いように ApacheでのCGIのパスを #!/usr/local/bin/perl で動作する方法を どなたか教えていただけないでしょうか? ちなみに Perlは[c:\bin]にインストールしてあります。 Apacheは[g:\apache]にインストールしてあります。

  • CGIカウンターの画像が表示されません

    まず、環境はwindows7 32bit xampp v3.2.1 xampp上のコントロールパネル→Admin→CGIのステータスは「開始」となっている。 apacheのv-host.conf上の変更点 <VirtualHost *:80> DocumentRoot "C:/www1" ServerName localhost <Directory "C:/www1"> Options ExecCGI Indexes FollowSymLinks MultiViews AddOutputFilter INCLUDES .html AddType text/html .shtml Order allow,deny Allow from all AddHandler image/gif .gif        AddHandler image/jpeg .jpeg .jpg .jpe  AddHandler image/png .png         AddHandler text/html .html .htm     Require all granted </Directory> </VirtualHost> とした。 http://www.kent-web.com/count/daycount.html 上記のサイトのDAY COUNTERをwindows7 cドライブ直下に以下の様に設定した。 www1/ +- index.html ... ここにカウンタを設置するものとする | |         累計カウント : <img src="daycount.cgi?gif"> |          昨日カウント : <img src="daycount.cgi?yes"> |          本日カウント : <img src="daycount.cgi?today"> | |          と記述 | +--daycount / daycount.cgi [705] | init.cgi [604] | check.cgi [705] | conv.cgi [705] | | .htaccess(AddType application/x-httpd-cgi .cgiと記述) | | +-- lib / gifcat.pl [604] | magick.pl [604] | +-- data / daycount.dat [606] | today.dat [606] | yes.dat [606] | +-- gif1 / 0.gif ... 9.gif | +-- gif2 / 0.gif ... 9.gif なお、daycount.cgi    check.cgi    conv.cgi    は一行目を#!"C:\xampp\perl\bin\perl.exe"とした。 色々サイトを見てcgi-binフォルダに画像ファイルを入れると画像が見れなくなる事とか apacheではCGIの入ったフォルダに.htaccess(AddType application/x-httpd-cgi .cgiと記述) を入れてやらないと動作しないとかの情報を元に上記の様な設定になったのですが上手くいかないようです。 一応画像もアップしておきました。なにかしらの参考になりましたら… この設定でどこかおかしい所が有ればご指摘願います。

    • ベストアンサー
    • CGI
  • パールスクリプトを呼び出すときのパスの指定について

    わたしはあるインターネットのスクールに通っていたのですが パスについて頭が混乱しています。 CGIのコースのアクセスカウンターの授業で ディレクトリ構造が /usr/home/www/s1000000/cgi-bin/counter.pl となっているパールスクリプトをhtmlファイルのimgタグで呼び出すとき <img src="/usr/home/www/s1000000/cgi-bin/counter.pl?NAME=username&KETA=4">(その1) と記述したらうまく動作せず、 <img src="/~s1000000/cgi-bin/counter.pl?NAME=username&KETA=4">(その2) と訂正され、解決しました。 サーバのローカルルールでホームディレクトリのファイルは/~で呼びだせるように なっているようなのですが、それならば(その1)と(その2)は 同じことだと思うのです。 パスの相対指定はわかるのですが、絶対指定やurl指定がわかりません。 (その1)は絶対指定で(その2)はurl指定ということなのですか? (その1)と(その2)の違いは何ですか? なぜ(その1)では動作しないのですか? パスの根本的なところを知りたいです。 どなたか教えていただければ幸いです。

    • ベストアンサー
    • CGI
  • cgiなんですが....

    http://www.kent-web.com/data/mart.html cgiの買い物かごシステムなのですが、下記のディレクトリ構成例のpublic_htmlってなんでしょうか?自分のレンタルサーバーではトップページ を表示するにはftpソフトでつなぐとhttpdocsってホルダにindex.htmlをいれますが、そこにpublic_html って書いていれれば、いいのですかね?cgiつくりにダウンロードしたものはmart.cgi,mart_order.cgi ,mart_admin.cgi mart_init.cgi ,mart.dat ,mart_raw.txt mart.html なんですが、public_html っていうのがみあたりません。 public_html のフォルダの中にホームディレクトリ?がある構成に見えるし、なんでしょう?mart / mart.cgi [755] mart_order.cgi [755] mart_admin.cgi [755]mart_init.cgi [644] jcode.pl [644]mart.dat [666] mart_raw.txt [644]cgiのフォルダにpalのパスかえたり、してパーミッション設定してあげれば、良いのでしょうか?絵では下のような説明になっています。 【ディレクトリ構成例】 public_html / (ホームディレクトリ) | +-- mart / mart.cgi [755] mart_order.cgi [755] mart_admin.cgi [755] mart_init.cgi [644] jcode.pl [644] mart.dat [666] mart_raw.txt [644]

    • ベストアンサー
    • CGI

専門家に質問してみよう