• 締切済み

cgiの改造 ディレクトリの移動

始めまして、よろしくお願いします。 初心者のため見当違いのこと書く事もあるかもしれませんが、 そんなときは初心者向けにご指摘ください。 ネットショップでショッピングカートを利用しているのですが、 cgi-bin/カートの名前      +-- shop.cgi      |      +-- order.cgi      |      +-- step1.html      |      +--その他諸々 と、いう形で正常に動いていました。 しかし今回サーバーの変更によりcgi-bin内のhtmlファイルが読み取れなくなりました。 その為、 /htdocs/indx.html   |   +-- step1.html | +-- step2.html | +--その他諸々 /cgi-bin/カートの名前      +-- shop.cgi      |      +-- order.cgi      |      +--その他諸々 と配置換えをしたいのですが、実際やってみて shop.cgi内の $html1 = 'step1.html'; の所を $html1 = '../../../htdocs/step1.html'; に替えてみましたがうまく行きません。 500エラーになり原因を調べるとその箇所を示します。 最初の配置のままで、何も変えてない状態でも同じ箇所を示していました。どのようにすればうまく行くでしょうか?

  • CGI
  • 回答数1
  • ありがとう数1

みんなの回答

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

/htdocs/step1.htm /cgi-bin/cart_name/shop.cgi ルートからのパスが上記構成なら、相対パスの階層がずれてるようですけど ↓ $html1 = '../../htdocs/step1.html'; ## 相対パス2階層戻る $html1 = '/htdocs/step1.html'; ### 絶対パス、こっちも使えると思うけど? サーバーの変更内容も、詳しく記述されると、より詳しい回答も得られるでしょう。

koto-tool
質問者

お礼

サーバー側より/htdocs以下にcgiを設定する方法の連絡を頂き、自己解決できました。 お忙しい中時間を割いていただきありがとうございました。

koto-tool
質問者

補足

素人なもので申し訳ございません。 >$html1 = '../../htdocs/step1.html'; ## 相対パス2階層戻る >$html1 = '/htdocs/step1.html'; ### 絶対パス、 階層の数え方が分からず色々試してました。 最初二階層と思って、おっしゃるように設定してたのですが反応しないので間違ってると思い三にしてみました。絶対パスも試みましたが無理でした。 サーバーの変更と言いますか以前借りていたサーバーが障害が多かったので新しいサーバーに変わりました。 現在のサーバーでは htmはhtdocs以下に置き cgiはcgi-bin以下に置くとされています。 以前借りていたサーバーもcgiはcgi-bin以下にと記述がありましたが、同ファイル内にあるhtmは読めていましたのでそのまま使えてました。 カートの中に商品は入ってますのでcgiの作動(action)はしています。 逆にcgi専用ディレクトリ内のhtmファイルを表示できるようにできるプログラムとかは無いものでしょうか?

関連するQ&A

  • cgi-bin配下のファイルに読込許可を!

    最近、Apache2を使い始めたばかりで設定がよくわかりません。 Apacheの設定ファイルで、httpd.confというファイルがありますが、その中で、 ScriptAlias /cgi-bin/ "C:/Apache2/htdocs/cgi-bin/" <Directory "C:/Apache2/htdocs/cgi-bin"> AllowOverride None Options All Order allow,deny Allow from all </Directory> と記述して"C:/Apache2/htdocs/cgi-bin"配下にあるファイルに CGIが動作するように許可しました。 しかし、これだと逆に"C:/Apache2/htdocs/cgi-bin"配下にある HTMLファイル(.htm等)が読み込めなくなってしまいます。 cgi-bin配下にあるhtmlファイルも表示できるように許可を 出したいのですが、どのように設定すればよろしいのでしょうか?

  • CGI cgi-bin 動かない エラー403

    初めて質問します。教えてください。 今HPをホームページビルダー11で作成しPC用に公開していますが、今回携帯用(主要3社)を新たに作成しました。 サーバーは、canonet(独自CGI)です。 そこで一つのアドレス(http//www2.×××.××.jp)で、キャリアを判別して自動振り分けしようと、ネット上のhttp://www.01nni.com/(携帯、PC振り分けCGI)をダウンロードしてアップロードしましたが、CGIが動きません!! /htdocs/cgi-binの中にindex.cgiといれました。 エラーはHTTP403です。 CGI超初心者です。 どうすれば、動きますか?詳しくご指導ください。

    • 締切済み
    • CGI
  • CGIディレクトリ設置図の読み方について

    windows7 32bit apache2.2.25とActive perlwwwでサーバを構築している 超初心者です。 以下の様なCGIファイル位置の設定があったとします。 | +-- light / light.cgi [705] | admin.cgi [705] | regist.cgi [705] | captcha.cgi [705] | init.cgi [604] | +-- lib / Jcode.pm 他 | | | +-- Jcode / *.* | +-- Crypt / *.* | +-- GD / *.* | +-- bin / *.ttf | *.png | +-- data / log.cgi [606] | | pastno.dat [606] | | tmpnum.dat [606] | | | +-- past [707] / | | | +-- log [707] / | +-- tmpl / *.html | +-- css / bbs.css これは、/は例えばlightというフォルダにlight.cgi、admin.cgi、regist.cgi、 init.cgiを入れなさい、という解釈でよろしいのでしょうか? それと+と/ *.*はどう解釈すればよいのでしょうか? 超初心者的な質問なのかもしれませんが、宜しくお願いします。

    • ベストアンサー
    • CGI
  • xamppでcgiが動かない

    Mac OS10.6.8でXAMPPをインストールした後 htdocs/test/というフォルダを作って http://test/ となるような環境を作りました。 httpd-vhosts.confファイルには <VirtualHost *:80> DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/test" ServerName test </VirtualHost> <Directory "/Applications/XAMPP/xamppfiles/htdocs/test"> Options Indexes FollowSymLinks MultiViews Includes ExecCGI AddType text/html .shtml .html AddHandler server-parsed .shtml .html AddHandler cgi-script .cgi .pl AllowOverride All Order allow,deny Allow from all </Directory> このように記述しております。 http://test/test.cgiにアクセスしたら Error message: Premature end of script headers: test.cgi このように言われてしまいました。 これは何が原因なのでしょうか? パスが間違っているのかな?と思ったのですが、XAMPPを使った場合 test.cgiファイルのパスはどうすればいいのでしょうか? よろしければ教えて下さい。 ※ とりあえず usr/bin/perl としました。

  • SESULinux で CGI をするには?

    http://oshiete1.goo.ne.jp/qa3578211.html で質問していた、初心者です。再び、お願いいたします。 LAN の 中だけで Web サーバ を実行しています。 SUSELinux 10.1 OSS の ・・・/htdocs/cgi-bin というディレクトリで *.cgi が動くようになりました。 ところが、このディレクトリに、置いた *.html ファイルを別のコンピュータから見ようとすると、Internal Server Error となってしまいます。 Apache の error_log では、 (8)Exec format error: exec of '/srv/・・・/*.html' failed そして、 Premature end of script headers: *.html となっています。 この *.html を htdocs というデレクトリに置くと、OK なのですが...。 また、*.cgi ファイルに open(FILE, '>>aaa.txt') or die "$!"; print FILE ("200,$year年$mon月$day日 $hour時$min分\n"); close(FILE) と書くと、WindowsXP, Apache, ActivPerl では、 自動的に、aaa.txt というファイルができて、 そのファイルに 「200,日付時間」 が 書き込まれたのですが、 SUSELinux 10.1 OSS の ・・・/htdocs/cgi-bin では、 だめでした。これが、できると、大助かりです。 どうか、よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • cgi での画像について

    いつも、アドバイスありがとうございます。 cgiのショッピングカートで、 「管理者画面」から、商品画像をUPできるのですが、 当方のサーバーは、 htmlとcgi-binに別れているために、 gif画像を、cgi-binに置いても、読み込むことが出来ません。 gif画像を、htmlの方に置けば、cgi上では、 画像が表示されるのですが、 管理者画面からのUPができません。 ・WEB上でhtmlに画像をUPする方法はあるんでしょうか? ・毎回FFFTPツールで、UPするのだけは、避けたいんですが。。。 何かいい方法がありましたら、ご教授願います。 使用cgi http://www.i-say.net/cgi/sample_view.php3?id=3338&url=http://wb-i.net/ Super Multi Shop Ver 5.00

    • ベストアンサー
    • 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
  • cgi-binにアクセスできない

    apache初心者です。 Turbolinux6.0+apache1.3.12でHTTPサーバを試しているのですが、 cgi-binにあるファイルを見ようとするとHTTP 403エラーが出て表示できません。 属性とグループを色々変えてみたんですが、だめでした。 access.confで関係ありそうな所は <Directory /> Options None AllowOverride None order allow,deny allow from all </Directory> <Directory /home/httpd/html> Options Indexes Includes FollowSymLinks AllowOverride None order allow,deny allow from all </Directory> <Directory /home/httpd/cgi-bin> AllowOverride None Options FollowSymlinks ExecCGI order allow,deny allow from all </Directory> としていますが、なぜcgi-binの中身が見えないのかわかりません。 よろしくおねがいします。

  • CGIの使い方について教えてください

    CGIの使い方について教えてください。 自分が運営しているホームページに掲示板を作成したいので、以下のCGIを使うことにななりました。ですが、初心者のためうまく出来ません。詳しい方、教えてください。 http://www.kent-web.com/bbs/joyful.html? joyful.cgi を エディタ で開いて以下の箇所を修正します。 #!/usr/local/bin/perl  (プロバイダで定められたPerlへのパスを指定します) と説明されていますが、Perlの意味が解りません。これは一体なんでしょう? 設定のやり方等を詳しく教えてください。

  • ニフティのCGIエラーの原因

    私はCGIに対してはまったくの初心者なのですが、今KENT-WEBからのCGIスプリクトでショッピングカートの設置をしています。FFFTPで転送後、どうしてもエラーが出てしまうのです。 しっかりアスキーモードで転送しているし、CGI-BINフォルダに設置しています。Perl確認済みです。あとJcode.plも、転送しています。 あとはどこに原因があるか本当に分からず、困っています。 どうしたらエラーがなくなるのか、CGIの知識がある方、どうか教えてください。よろしくお願いします。

    • 締切済み
    • CGI

専門家に質問してみよう