• 締切済み

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エラーになり原因を調べるとその箇所を示します。 最初の配置のままで、何も変えてない状態でも同じ箇所を示していました。どのようにすればうまく行くでしょうか?

みんなの回答

  • 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