none
「IIS の@INC ERRORについて」教えて下さい。 RRS feed

  • 質問

  • 質問するカテゴリーが間違っているかもしれませんが、よろしくお願いします。

    wiin8に、IISとActivePerl64をインストールしました。
    「Default Web Site」を「C:\wabs」に設定。

    tst.cgi
    #!/usr/local/bin/perl
    print "Content-Type: text/html", "\n\n";
    print "<HTML>\n";
    print "<BODY>\n";
    print "こんにちは!<BR>\n";
    print "</BODY>\n";
    print "</HTML>\n";
    で、無事に動いてると確認したのですが、

    C:\wabs\lib\jcode.pl を設置して、
    require './lib/jcode.pl';

    として、実行すると、」ERROR = Can't locate ./lib/jcode.pl in @INC (@INC・・・・
    と、 パスが通っていないようなメッセージが出て、解決策が解らず困っています。

    解決策を教えてください。よろしくお願いします。

    • 移動 チャブーンMVP 2013年5月20日 3:35 IIS上で動作するソフトウェアが対象のため
    2013年5月19日 5:47

回答

  • チャブーンです。

    この質問ですが、最初にご投稿いただいたフォーラム(Windows Server 2008 全般)よりIISフォーラムの方が適切な答えが得られるように思いますので、移動させていただきますね。

    答えの方ですが、perlをIIS上で動かす場合、スクリプトのパスは絶対パスで記述する必要があるようです(古いIISだけかもですが)。ひとまず切り分けとして、絶対パスでjcode.plを指定してみてはどうでしょうか。このときディレクトリのセパレータは「\\」とする必要があります。たとえば「C:\wabs\lib\jcode.pl」なら「require 'C:\\wabs\\lib\\jcode.pl';」となるでしょう。



    • 回答としてマーク ken-mg 2013年5月20日 2:39
    • 回答としてマークされていない ken-mg 2013年5月20日 2:39
    • 回答としてマーク ken-mg 2013年5月20日 2:39
    • 編集済み チャブーンMVP 2013年5月20日 6:55 移動したため、コメントを変更
    2013年5月20日 2:11

すべての返信

  • チャブーンです。

    この質問ですが、最初にご投稿いただいたフォーラム(Windows Server 2008 全般)よりIISフォーラムの方が適切な答えが得られるように思いますので、移動させていただきますね。

    答えの方ですが、perlをIIS上で動かす場合、スクリプトのパスは絶対パスで記述する必要があるようです(古いIISだけかもですが)。ひとまず切り分けとして、絶対パスでjcode.plを指定してみてはどうでしょうか。このときディレクトリのセパレータは「\\」とする必要があります。たとえば「C:\wabs\lib\jcode.pl」なら「require 'C:\\wabs\\lib\\jcode.pl';」となるでしょう。



    • 回答としてマーク ken-mg 2013年5月20日 2:39
    • 回答としてマークされていない ken-mg 2013年5月20日 2:39
    • 回答としてマーク ken-mg 2013年5月20日 2:39
    • 編集済み チャブーンMVP 2013年5月20日 6:55 移動したため、コメントを変更
    2013年5月20日 2:11
  • ありがとうございます。

    >パスは絶対パスで記述する必要があるようです。
    >ディレクトリのセパレータは「\\」とする必要があります。

    解決です。
    スクリプトを移動するたびに、パスを書き換えなくてはならず、不便ですうね。

    これまで、「AN HTTPD」を使っていたのですが、WIN8では、起動するたびに設定が初期値にもどり、
    今回「IIS」を使ってみることにしましたが、難解ですね。

    でも、お教えいただき、解決しましたので、「IIS」を利用してみようと思います。
    ありがとうございました。

    2013年5月20日 2:46
  • チャブーンです。

    解決してよかったです。IIS上のperlの相対パスですが、スクリプト実行時のカレントディレクトを変更することで、使えるようになるようです。chdirを設定することになるのですが、方法については、したの情報が参考になりそうです。

    http://www.kent-web.com/support/old/66/0386.html
    (回答の「5216」番を見てください)
    http://www.psl.ne.jp/blog/?p=76

    あと、別の話しになりますが、Windows 8はクライアントOSのため、IISのようなサーバソフトウェアを「運用環境(サービスとして正式な提供を行う環境)」で利用することはライセンスに抵触する可能性があります。EULA(使用許諾契約書)を確認いただくことと、できうればWindows Server OSのIISを利用されることをお奨めします。

    2013年5月20日 3:34