ファイル指定ができない!?ファイルが見つからない・・・

このQ&Aのポイント
  • IIS+ActivePerlでのCGI実行時に外部ファイルが見つからない問題が発生しています。
  • Unix系サーバでは正常に動作するが、IIS環境ではログファイルやjcode.plなどの外部ファイルが見つかりません。
  • ActivePerlの設定やファイルの指定方法に問題がある可能性があります。どなたか解決策を教えてください。
回答を見る
  • ベストアンサー

ファイル指定ができない!?ファイルが見つからない・・・。

こんばんわ。 現在、IIS+ActivePerl(最新)という環境でCGIを動かそうと考えています。 Unix系サーバで実行した場合は問題なく動くのですが、IIS環境で動かすと、外部のファイルつまり掲示板のログファイルやjcode.plなどが見つかりませんと表示され動作してくれません。 私のCGIがだめなのかと思ってKentさんのCGIやいろんな人のいろんなCGIでテストしましたが、駄目でした。 ActivePerlの設定がまずいのかとおもいきや、単純なもの(外部ファイルを使わないもの)はきれいに動きました。 ファイルが見つからないとかCan't location~と出るのでIIS+Active~には問題ないと思うんですが・・・。 ファイルの指定方法がまずいのでしょうか? どうしたもんでしょう・・・誰か思い当たるどんなことでも結構です・・・教えてください。 お願いいたします・・・。

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

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

  • ベストアンサー
回答No.1

CGIではない、普通のHTMLは正常に表示されているの でしょうか?ちゃんとドキュメントルートの下に ファイルを置いていますか? またIISでPerlを使用したCGIを動作させる場合には、 参考URLにあるような設定が別途必要になります。 こちらは大丈夫でしょうか?

参考URL:
http://ash.jp/tips/iis.htm
zenon55
質問者

お礼

こんばんは。 この書き込みを削除しにきたら、唯一貴殿より書き込みをいただいておりました。 教えていただきましたサイト、参考になりました。 有難うございます。 書き込んだ後も引き続きいろいろ調べておりました。 kent-webさんのCGIにヒントがありました。 IIS対策というコメントがついたコードがあったのです。。。 # IIS対策 if ($ENV{'SERVER_SOFTWARE'} =~ /IIS/i) { local($chdir) = $0; $chdir =~ s/[^\\]*$//; chdir($chdir); } ↑です。 フォルダ指定の方法がUnix系と異なるのでこういう処理が必要なのだと思います。 せっかくの書き込み申し訳ありません。 有難うございました。

関連するQ&A

  • IIS7とActivePerlを導入しましたが、エラーに。教えてください

    OSはvistaです。IIS7とActivePerl5.8.8を導入しました。 http://www.winpc.info/vista/tips/ を参照にhttp://localhost/test.cgiの実行では成功しました。 それで、過去(XPとIIS6)で動いていた。CGIを動かしてみると、失敗になり、上記の「test.cgi」に、 require 'jcode.pl'; を追加してテストすると、エラーになります。 ActivePerl5 では、「require」は使えないのでしょうか。 また、IIS7の設定やその他に問題があるのでしょうか。 宜しくお願いします。

  • Jcode.pmについて

    自分のサイトでCGIを動かすために ActivePerl 5.8.6.811をインストールしようとしています。 ActivePerl 5.8.6.811にはJcode.pmは最初から入っていますか? Windowsを知らない友人からJcode.pmをインストールしろと言われましたが、 よく分かりません。 「環境」 OS:Windows XP Pro Webサーバ:IIS

    • ベストアンサー
    • Perl
  • jcode.plファイルが閲覧できるのですが

    http://△☆.sakura.ne.jp/cgi/jcode.pl 上記のURLでアクセスすると、jcode.plファイルが表示されます。 http://△☆.sakura.ne.jp/cgi にアクセスした時は、Forbiddenが表示され アクセスが拒否されるようになっています。 さくらインターネットのファイルマネージャーで 設定したのですが、なぜかjcode.plだけは閲覧できてしまいます。 これは他の方も同じなのでしょうか。 パーミッションを755にしても644にしても同じでした。

    • ベストアンサー
    • CGI
  • jcode.pl のパーミッション

    投票のCGIを設置しました。 jcode.pl のパーミッションが 644 とありましたのでそれでちゃんと動いてます。 この jcode.pl のパーミッションは、644( or 755)以外はだめなのでしょうか? このままだと外からアクセスできるので、600 にしたいのですが・・。 今のところ特に問題もなく動作してはいるようです。 ご回答よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGIでjcode.plを読み込めなくなりました

    さんざん検索をかけて色々試したのですが、どうしても解決できず どなたかご存知のかた、教えてください。よろしくお願い致します。 つい昨日までちゃんと動いていたCGIが突然 「jcode.plがありません」 と訴えてきました。 4月にサーバーを乗換え丸2ヶ月、問題なく動いていたのに 突然です。何がなんだか分かりません。 もちろん、このCGIに関わるファイルは一切いじっておりません。 自分なりに検討した結果 引っかかっているのは以下のコード # 漢字コード変換ライブラリを読み込む if (-f "jcode.pl") { require "jcode.pl"; } else { &errexit("jcode.plがありません。\n"); } -略- &jcode'convert(*tmp, $kcode_cgi); このふたつです。jcode.plを読み込めない為にもれなく後出の呪文が効かないんだろうなという事は推測しているのですが。 このためフルパスでも試しましたが変化なし。 この読み込みをしなければ、CGIは取りあえず表示します。 なので、日本語変換プログラム以外は正常に動作しているようです。 どなたか同じような経験の有る方いらっしゃいませんか? アドバイスよろしくお願い致します。

    • ベストアンサー
    • CGI
  • jcode.plアップロード不要の場合の設定変更

    CGI設置にあたり、設定変更で悩んでいます。 jcode.plがサーバーにプリインストールされているためアップロードは不要で、require 'jcode.pl'; と記載するようにとのことです。 require "./jcode.pl"; となっているものについては問題なかったのですが、 $jcode = './jcode.pl'; 中略 require $jcode; と記述されているものを、どのように書き換えたらよいのか分かりません。 ご教授のほど、どうぞよろしくお願い致します。

    • 締切済み
    • CGI
  • ディレクトリ内の複数のテキストファイルの文字列を、一括置換する方法について

    ディレクトリ内にある複数のcgiファイルの文字列を一括で置換する方法について教えてください。 置換前文字列 jcode.pl ↓ 置換後文字列 ../../jcode.pl 対象ファイル 以下のように、/cgiディレクトリ内に複数のcgiファイルがあります。 /web └/cgi --└ 01.cgi --└ 02.cgi --└ 03.cgi --└ 04.cgi --└ 05.cgi ただし、所有者とパーミッションを変更せずにしたいのです。 sedコマンドを試しましたが、オプションについてよくわからないため、上手く行きませんでした。 (所有者がrootに変更となったり、また、別ファイル名で保存しないと、上手く行きませんでした。) どなたか、ご指南宜しくお願い致します。

  • 'cgi-lib.pl'などのファイルの位置は?

    Perlの基本的な質問ですが、cgi-lib.plやjcode.plは どのディレクトリに入れれば自然でしょうか? 私はLinuxとWindowsの両方にPerl5.6を入れておりまして、今までは相対パスによって、スクリプトの近くに置いていましたが、ディレクトリ(フォルダ)が変わるごとに設定しなおしで面倒になってきました。 WEBでもレンタルサーバーなど利用したことは無いんですが、このような基本ライブラリは、require 'cgi-lib.pl';で呼び出して?いると思いますが、 しかるべき位置にこのファイルが無いとだめだと思います。ご教授ください。

    • ベストアンサー
    • Perl
  • フォームメール@PerlとActivePerlのモジュール

    Apacheで稼動しているメールフォームを、IISへ移動する事になりました。 現在IISがなくテストできない為、モジュールの代替案をご享受ください。 use NET::SMTP; → パッケージlibnetをインストールすればいい? use Jcode; → jcode.plを用意する? use CGI; → ??? 宜しくお願いいたします。

  • SSIで表示させるときの各ファイルのパス

    SSIで日記をトップページに表示させようとしています。 CGIは./cgi-bin/day/に保存してます。 トップでSSI表示(<!--#exec cmd="cgi-bin/day/day.cgi" -->)させるためには各ファイルもそこからのパスが必要ですよね。 (require './cgi-bin/day/jcode.pl';) しかし、こうすると記事を入力するときにエラーが出てしまいます。 (./cgi-bin/day/day.cgiから見るとjcode.plは./cgi-bin/day/cgi-bin/day/の場所になってしまう。その他datファイルも同じ) これを解消する何か良い方法は無いでしょうか? 例えば、「cgi-bin/day/」の位置に指定ファイルが無ければ「./」の位置を探すとか、SSI表示部分は切り離して別ファイルにするとか… 良い方法があったら教えてください。

    • ベストアンサー
    • CGI

専門家に質問してみよう