• ベストアンサー

IIS+Activeperl データファイル等を絶対パスでしか受け付けてくれません

Windows2000serverの IIS5.0(だと思います、バージョンの見方が良く分かりません) ActivePerl5.6.1を導入した環境です。 このまえ、Windows2000serverのマシンを入れ替え、 新規にperlをインストールしなおしました。 それでwebページをすべて移動して稼動し始めたのですが、 一部動作しないCGIがあるのです。 調べてみると"./"ではじまるデータファイルやモジュールの読み込みを しているCGIがことごとく動作してませんでした。 データファイルやモジュールを c:\usr\local\bin\perl\libに移動して"./"を削除するか ファイルの指定を "C:\Inetpub\wwwroot\cgi-bin\secure\wforum\wf_log.cgi"のように フルパスで指定しないと動かないのです。 サーバ移転前はちゃんと動いてたのですけど・・・。 いったい私は何の設定を忘れてるのでしょうか。 ややこしい説明ですみませんがよろしくお願いします。

  • elthy
  • お礼率90% (405/447)
  • Perl
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • kirin_f
  • ベストアンサー率51% (44/85)
回答No.1

Perlへのパスが通ってないんだと思います。 以下のページを参考にしてみてはいかがでしょうか?

参考URL:
http://www.harukaze.net/~mishima/perl/faq/perlwin32faq/perlwin32faq6j.html#How_do_I_configure_Microsoft_IIS
elthy
質問者

お礼

Perl for ISAPIを実行できるようにしてなかったようです。 無事直りました、ありがとうございました。

関連するQ&A

  • ファイル書込時にPermission denied

    QRコードを生成してファイルに保存するプログラムを作っています。 ファイルハンドルをオープン時にエラーがでます。 open OUTFILE, '>', 'C:\inetpub\wwwroot\test.jpg' or die "$!"; # ここでエラーがでます。 binmode OUTFILE; print OUTFILE $qrimg->plot->jpeg; close OUTFILE; エラーメッセージは 「指定された CGI アプリケーションは、正しく動作しませんでした。HTTP ヘッダーの完全なセットが返されませんでした。返されたヘッダーは "Permission denied at C:\inetpub\wwwroot\cgi-bin\qr.cgi line 24. " です。」 です。 環境は Windows 7 / IIS 7.5 / ActivePerl 5.14.2 です。

    • ベストアンサー
    • Perl
  • ActivePerlでWindows上のパスを記述する書き方

    ActivePerlをWindowsで動かすとき、ファイルのパスを指定するのに "C:\\work\\perl"のように、フォルダとフォルダの区切りには「\\」を使います。 これを UNIX上でPerl CGIを動かすときのように「/」に換えて、"C:/work/perl"としても問題なく動いているようです。 ActivePerlで"C:/work/perl"と書くことは、問題ないのでしょうか?それとも推奨されない行為でしょうか?]

    • ベストアンサー
    • Perl
  • IISの「wwwroot」について

    WinNT ServerでIISをデフォルトでインストールしますと「wwwroot」の位置がC\Inetpub\wwwrootになってしまいますが、インストール後に「wwwroot」の位置をD\やE\などに移動することは可能なのでしょうか?Win2000 Serverでしたら可能なようなことはWebにて書いてあったのですが・・・。

  • WindowsXP(Apache2.x+ActivePerl)

    Apache1.x系からApache2.x系に切り替えたのですがなぜかCGIが動きません・・・ FileがあるはずなのにFileがないといってくるんですが、どこがおかしいんでしょうか? -------------------------------------------------- (OS 2)指定されたファイルが見つかりません。 : Failed to read cgi file ./cgi-bin/count_txt.cgi for testing (OS 2)指定されたファイルが見つかりません。 : don't know how to spawn cmd child process: C:/Server/web/public_html/index.html -------------------------------------------------- とでてきます・・・ /cgi-bin/count_txt.cgiは -------------------------------------------------- http://www.01nni.com/free-b_4.htmlのtextカウンターです・・・ 設定は1行目を#!C:/Server/Perl/bin/perl.exeに変更しました・・・ -------------------------------------------------- 説明のとおりHTMLにはSSIで埋め込みますので -------------------------------------------------- <!--#exec cmd="./cgi-bin/count_txt.cgi"-->入力してあります。 -------------------------------------------------- ちなみにほかのSSIは動作しています・・・ なにか原因がわかりましたらアドバイスお願いします<m(__)m>

    • 締切済み
    • CGI
  • activeperl5.6が起動できない

    activeperl5.6が動きません。 activeperlをインストールして、apacheのhttpd.confの中身を本を参考に編集しました。 sampleのhello.plというファイルを自分の環境ではc:\www\cgi-binというフォルダーの中にいれ、 ScriptAlias /cgi-bin/ "C:/www/cgi-bin" <Directory "C:/www/cgi-bin"> AllowOverride None Options None AddHandler cgi-script .cgi .pl でcgiの実行を許可して AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl で拡張子とperlを関連付けています。 browserからたとえばhttp://localhost/hello.plを入力すると 実行が許可されていないとブラウザーで表示されます。 Forbidden You don't have permission to access /test.pl on this server. Apache/1.3.39 Server at localhost Port 80 アパッチのエラーログを見ると、 [error] [client 127.0.0.1] couldn't spawn child process: c:/

    • ベストアンサー
    • CGI
  • PHP5、IISで2つのサイトでPHPを有効にしたい

    php-5.2.6-Win32をWIN2003上で動かしています。WEBサーバはIIS6です。 c:\inetpub\wwwroot1 と c:\inetpub\wwwroot2 のサイトがあり両方でPHPを動作させたいのですが、 php.iniのdoc_rootをどのように設定すればいいのでしょうか? 是非宜しくお願いします。

    • ベストアンサー
    • PHP
  • IIS の管理コンソールというのは

    IIS の管理コンソールというのは、wwwサビースプロパティのことでしょうか すみません初心者のもので、wwwサビースプロパティは C:\inetpub\wwwroot\cgi-bin 仮想ディレクトリのエイリアス/cgi-bin 読取り・実行権限にチェックが入っています CGIプログラムはcgi-binの中です しかし動かないどうしてでしょうか

  • ActivePerlとApacheを自分のPCにインストールしたのですが・・・。

    お願いします。 ActivePerlとApacheを自分のPCにインストールし、 CGIのテストを試みました。 Apacheのインストールは上手くいったのですが、ActivePerl がどうもうまく動きません。 Perlのインストール後、環境変数を Path→「C:\Perl\bin\;C:\Perl\bin;C:\Perl\bin\」に変更、 htdocsフォルダ内にメモ帳で記述したhello.cgiを保存後、 ブラウザにh t tp://localhost/hello.cgiと入力しても ファイルが見つかりませんと返されます。 ちなみにhello.cgiの中身は #!C:/Perl/bin/perl print "Content-Type: text/html\n\n"; print "<html>\n"; print "<body>\n"; print "<h1>Hello World!</h1>\n"; print "</body>\n"; print "</html>\n"; exit; です。使用マシンはWIN XPで ActivePerlのバージョンは5.8.8,Apacheは2.2.4です。 何か助言がございましたらよろしくお願いします。

    • ベストアンサー
    • Perl
  • perlパス

    Windows2000機でWebServerを建てたのですが、CGIが認識しません。 WEBサーバーのクライアントソフトはApacheで 普通にHTMLは見れています。 perlをインストールした場所は C:\usr\local で VerはActivePerl 5.8.8.822 for Windows (x86)です。 場所は↑なのでCGIファイルのperlのパスはそのままいじらず、 perlのパスは#!/usr/local/bin/perl です。 一応#!C:/~以下   もやりましたがだめで、 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]にインストールしてあります。

専門家に質問してみよう