投稿日:2005年06月02日 作成鷹の巣

No.19120 IIS6.0でCGIを動かそうとすると、401,5エラーが出てしまいます。



IIS6.0でCGIを動かそうとすると、401,5エラーが出てしまいます。

No.19120 投稿時間:2005年06月02日(Thu) 22:54 投稿者名:sada URL:

初歩的な質問で申し訳ありませんが、
IIS6.0で、CGIを動かそうとすると、401,5エラーが出てしまいます。

webサービス拡張も許可してますし、ホームディレクトリの構成の所もちゃんと設定してるはずなんですが、(C:\Perl\bin\perl.exe "%s" %s にCGIをもっててます。)
勿論、Perlも入れてます。

サーバー機のプロキシ挿して見てるんですが、それが原因でしょうか?多分違うと思うのですが…

何か、考えられる設定ミス等ありましたら、教えていただけると本当にたすかります。
お手隙な時間に返信よろしくお願いします。


アクセス許可を変更します。

No.19129 投稿時間:2005年06月05日(Sun) 00:32 投稿者名:Don URL:


1.
【ホームディレクトリ】タブの【実行アクセス許可】を、
【スクリプトおよび実行可能ファイル】にしないと動作しないものもあります。


2.
フォルダの【セキュリティ】タブの一覧に、
【IISプロセスアカウントの起動】と【インターネットゲストアカウント】の
2つが必要です。
また、【インターネットゲストアカウント】に、
読み取り以上の許可が必要なものもあります。
CGIによりますが、【変更】まで許可しないと動作しないものもあります。


『フォルダの【セキュリティ】タブの一覧に』と『インターネットゲストアカウント』とは。

No.19137 投稿時間:2005年06月05日(Sun) 21:00 投稿者名:sada URL:

Donさん レスありがとうございます。

> 1.
> 【ホームディレクトリ】タブの【実行アクセス許可】を、
> 【スクリプトおよび実行可能ファイル】にしないと動作しないものもあります。
はい。それはやってるんですが、動きません。違う原因なのでしょうか?

> 2.
> フォルダの【セキュリティ】タブの一覧に、
> 【IISプロセスアカウントの起動】と【インターネットゲストアカウント】の
> 2つが必要です。
> また、【インターネットゲストアカウント】に、
> 読み取り以上の許可が必要なものもあります。
> CGIによりますが、【変更】まで許可しないと動作しないものもあります。
情けない質問で申し訳無いのですが、『フォルダの【セキュリティ】タブの一覧に』と『インターネットゲストアカウント』とはどこの事をさしてるのでしょうか?探してみたのですが、場所がわかりませんです…スミマセンです。
本当に初心者で申し訳ありません。

また、お手隙な時間にレス頂けるとありがたいです。


エクスプローラでフォルダを右クリックします。

No.19140 投稿時間:2005年06月06日(Mon) 02:15 投稿者名:Don URL:

> どこの事をさしてるのでしょうか?探してみたのですが、場所がわかりません
失礼。ちょっと言葉が足りませんでしたね。


『フォルダの【セキュリティ】タブの一覧』は以下の場所にあります。

エクスプローラー等で、
該当フォルダを右クリック、
プロパティ、
の手順で表示される画面内に【セキュリティ】タブがあり、
その【セキュリティ】タブの画面内に、
【グループ名またはユーザー名】という項目の箇所があります。
そのすぐ下にアカウントが一覧表示されています。
ここの事です。

その一覧表示の中に、
【IISプロセスアカウントの起動】と
【インターネットゲストアカウント】の2つのアカウントがあると思います。
もし無ければ追加します。


説明が分かりづらいかも知れませんが、
その時はまた聞いて下さい。


IIS_WPGとは違うものですよね?

No.19147 投稿時間:2005年06月06日(Mon) 18:02 投稿者名:sada URL:

Donさん 何度もありがとうございます。助かりますです。
> 『フォルダの【セキュリティ】タブの一覧』は以下の場所にあります。
>
> エクスプローラー等で、
> 該当フォルダを右クリック、
> プロパティ、
> の手順で表示される画面内に【セキュリティ】タブがあり、
> その【セキュリティ】タブの画面内に、
> 【グループ名またはユーザー名】という項目の箇所があります。
> そのすぐ下にアカウントが一覧表示されています。
> ここの事です。
あ、なるほど。ここだったんですね。一生懸命フォルダ探してしまいました。

> その一覧表示の中に、
> 【IISプロセスアカウントの起動】と
> 【インターネットゲストアカウント】の2つのアカウントがあると思います。
> もし無ければ追加します。
今、バーチャルホスト(言葉あってるかな…)をしてるのでInetpudフォルダ内に複数のフォルダがあるのですが、
最初からあるwwwrootフォルダには、【インターネットゲストアカウント】はあったのですが、私の作ったフォルダにはありませんでした。
【インターネットゲストアカウント】を追加しようと思い、wwwrootの所から名前をコピーして追加しようと思ったのですが、見つかりませんと言われてしまいました。

とりあえず、wwwrootフォルダにデータを全部写して、ローカルパスも変更して【インターネットゲストアカウント】を変更まで許可したのですが、それでも出来ませんでした。
【IISプロセスアカウントの起動】というのは検索したのですが、見つかりませんでした…
これって、作らなくてはいけないって事でしょうか?
IIS_WPGとは違うものですよね?

日経BPの本等買ってみたのですが、載ってませんでした…

本当に何度もすみません。


エラー画面の内容に変化がありますか?

No.19150 投稿時間:2005年06月07日(Tue) 01:32 投稿者名:Don URL:

> 最初からあるwwwrootフォルダには、【インターネットゲストアカウント】はあったのですが、
> 私の作ったフォルダにはありませんでした。
そうですね。
wwwrootフォルダにはWebサーバとして動作するの必要なアカウントのアクセス許可が、
デフォルトで登録してありますが、
それ以外のフォルダの場合はそのフォルダに対して、
自分でアカウントを追加し、アクセス許可の設定をする必要があります。

アカウントの追加方法は、
【セキュリティ】タブの画面内で、
【追加】-【詳細設定】-【今すぐ検索】の手順を踏むと、
画面下部の【検索結果】に一覧表示されます。

検索結果には
【インターネットゲストアカウント】という名前では表示されません。
【インターネットゲストアカウント】は【IUSR_○○○】
【IISプロセスアカウントの起動】は【IWAM_○○○】
という表記で検索結果に表示されます。
○○○はお使いのコンピュータ名です。


【IISプロセスアカウントの起動】アカウントは、
【IIS_WPG】グループに含まれるので、
【IISプロセスアカウントの起動】の代わりに【IIS_WPG】でも可能です。

【IISプロセスアカウントの起動】や【IIS_WPG】は、
追加するとデフォルトで実行までのアクセス許可になっていますので、
そのまま変更はしなくても大丈夫です。
今後、使うCGIによって変更の必要があるのは、
【インターネットゲストアカウント】だけです。



ここまでやった段階で、まだエラー画面が表示されるかも知れません。
ただ、エラー画面が以前とは変わっていると思います。
次は、そのエラー画面の内容を記入してみて下さい。


とりあえず401.5エラー画面は消えました。

No.19166 投稿時間:2005年06月07日(Tue) 23:07 投稿者名:sada URL:

Donさん 何度もありがとうございます。 本当に助かります。

教わった通りにやった所、

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.

と、普通にCGIのエラー画面が出てしまいました。(ちなみに、CGIはKEN Webさんの、一番シンプルな掲示板で試してます。)
私のCGIの設定が間違ってるのか、パールがちゃんと入ってないのか?
つまらない質問ばかりで申し訳ないです。

とりあえず401.5エラー画面は消えました。ありがとうございます。

お手隙な時にご教授お願いします。本当に助かります。


ここまでの段階はそれでOKです。

No.19177 投稿時間:2005年06月08日(Wed) 18:15 投稿者名:Don URL:

> CGI Error
> The specified CGI application misbehaved by not returning a complete set of HTTP headers.
> と、普通にCGIのエラー画面が出てしまいました。
これでOKです。いや、OKというと語弊がありますが、
このエラー画面が出るということは、
IISのCGIに関する部分の設定と、
フォルダのアクセス許可の設定の両方とも、
正しく設定されているという事です。
ですので、ここまでの段階はOKです。


次は、お使いのcgiファイル内の記述を変更します。
恐らく jcode.pl のパス指定が間違っていると思います。


一番シンプルなASKA BBSというのを使用させて頂きました。

No.19188 投稿時間:2005年06月09日(Thu) 18:10 投稿者名:sada URL:

Donさん 本当に何度もありがとうございます。

今、とりあえずテストでKentWebさんのBBSでCGI稼動テストをしたのですが、やはり動きませんでした。
とりあえず一番シンプルなASKA BBSというのを使用させて頂きました。

>次は、お使いのcgiファイル内の記述を変更します。
>恐らく jcode.pl のパス指定が間違っていると思います。
なるほど。パスですか。
今は、配布されてる初期の状態なんですが、(require './jcode.pl';)
Kent Webさんの、プログラムの修正の所には特にjcode.plの事は書いて無かったのですが、
この記述を書き直すという事でしょうか?
と、いうよりも、配布された状態の時のままで全然修正は加えて無いのですが…

あと、今、プロバイダのプロキシをさして見てるのですが(nifty)
それが原因と、いう事は無いのでしょうか?

何度もすみませんです…申し訳ありませんがご教授お願いします。


フルパスで書いてみて下さい。

No.19191 投稿時間:2005年06月10日(Fri) 01:11 投稿者名:Don URL:

> 配布されてる初期の状態なんですが、(require './jcode.pl';)
> この記述を書き直すという事でしょうか?
そうですね。この部分をフルパスで書いてみて下さい。

例)
require 'c:\Intpub\wwwroot\aska\jcode.pl';
上記の『\』は全角ですが、実際は全て半角で書いて下さい。


> プロバイダのプロキシをさして見てるのですが(nifty)
> それが原因と、いう事は無いのでしょうか?
多少 キャッシュ絡みの事がありますが、
さほど問題ないでしょう。


フルパスで書いてみたのですが、何故か出来ませんでした。

No.19212 投稿時間:2005年06月12日(Sun) 22:49 投稿者名:sada URL:

Donさん何度も助かりますです。ありがとうございます。

> > 配布されてる初期の状態なんですが、(require './jcode.pl';)
> > この記述を書き直すという事でしょうか?
> そうですね。この部分をフルパスで書いてみて下さい。
>
> 例)
> require 'c:\Intpub\wwwroot\aska\jcode.pl';
> 上記の『\』は全角ですが、実際は全て半角で書いて下さい。
フルパスで書いてみたのですが、何故か出来ませんでした。
色々やってみたのですが、最初を、『#!C:\Perl\bin\perl』に変更して
フォルダの中身だけ、wwwrootのフォルダに直接突っ込んでみたら、
パスを変更しなくても表示が出来ました。
って、事は、CGIのその他の記述が間違ってるという事でしょうか?

何度もスミマセン。もっと勉強しなくてはですね…


エラー内容を書いてみて下さい。

No.19216 投稿時間:2005年06月13日(Mon) 19:59 投稿者名:Don URL:

> フルパスで書いてみたのですが、何故か出来ませんでした。

どのようなエラー表示がされているか、それを書いてみて下さい。
前回と同じエラーなのか、それとも違うエラーなのか、など。


> 色々やってみたのですが、最初を、『#!C:\Perl\bin\perl』に変更して
> フォルダの中身だけ、wwwrootのフォルダに直接突っ込んでみたら、
> パスを変更しなくても表示が出来ました。

#!/usr/local/bin/perl の行はWindowsでは使用しませんので、
この部分を変更しても動作に反映されません。


動きました。

No.19219 投稿時間:2005年06月15日(Wed) 21:36 投稿者名:sada URL:

Donさん いつもありがとうございます。返信遅れてすみません。

動きました。多分、私のパスの書き方が間違ってたか、書く場所が足りなかっただけだと思います。
本当に助かりました。ありがとうございます。

根本的にCGIの勉強不足だと思うので、もっと勉強したいと思います。
本当に助かりました。


あと、もし解ったらで構わないのですが、申し訳無いのですが迷惑ついでにお聞きしたいのですが、
IISでsendmailを使う方法はありますでしょうか?

鷹の巣さんの方で紹介されてる、sendまね~るを使うのが一番なんでしょうか?
一応設定してみたのですが、

もし、他に何か、違う方法や、何かあったら、ご教授頂けるとありがたいのですが、


なにはともあれ、Donさん。本当にありがとうございます。


動きましたか。それは何よりです。

No.19220 投稿時間:2005年06月16日(Thu) 01:50 投稿者名:Don URL:

> 動きました。多分、私のパスの書き方が間違ってたか、
> 書く場所が足りなかっただけだと思います。
そうですか。動いて何よりです。


> IISでsendmailを使う方法はありますでしょうか?
はい。使えます。
ただ、sadaさんの現在の環境によってお勧めする方法は多少異なります。


【1.】
お使いのサーバに既にメールサーバが構築されていて、
そのメールサーバソフトがsendmailの場合。


【2.】
別のメールサーバソフトで構築されている場合。


【3.】
メールサーバが構築されおらず、今後も構築する予定が無い場合。


1の場合以外は、【sendまね~る】を使うのが良いと思います。
【sendまね~る】以外にも機能的に優れたソフトはありますが、
解説しているサイトの多い【sendまね~る】で動作の感じを覚えて、
それから別のソフトを使うとスムーズにいくと思います。


コマンドプロントでの送信テストまでは上手くいったのですが。

No.19222 投稿時間:2005年06月16日(Thu) 23:38 投稿者名:sada URL:

> > 動きました。多分、私のパスの書き方が間違ってたか、
> > 書く場所が足りなかっただけだと思います。
> そうですか。動いて何よりです。
>
>
> > IISでsendmailを使う方法はありますでしょうか?
> はい。使えます。
> ただ、sadaさんの現在の環境によってお勧めする方法は多少異なります。
はい。ありがとうございます。完全にDonさんのおかげです。ありがとうございます。


> 【2.】
> 別のメールサーバソフトで構築されている場合。
これだと思うのですが、今、鷹の巣さんでも薦めている『ArGoSoftMailServer』のフリーウェアを使っているでので、


> 1の場合以外は、【sendまね~る】を使うのが良いと思います。
> 【sendまね~る】以外にも機能的に優れたソフトはありますが、
> 解説しているサイトの多い【sendまね~る】で動作の感じを覚えて、
> それから別のソフトを使うとスムーズにいくと思います。
それで、sendまね~ると使おうと思ってたのですが、インストールも終わり、
コマンドプロント直接送信テストも成功したのですが、設置が上手く行きませんでした。
パスもフルパスで書いたんですが、やはり動きませんでした。

しかし、よく読んでみると、『商業利用は出来ない。』と書いてあって、
ショッピングカートを使うので、ダメみたいですね…無駄な努力でした。(努力って程のものでもありませんが…)


それで、『Blatj』を使ってみようと思いまして、Kent Webさんに『自宅マシンメール送信計画』というのがあったので参考にしてるのですが、やはり上手く行きませんでした。
インストールと、コマンドプロントでの送信テストまでは上手くいったのですが。

一応、これも、セキュリティーのタブをいじってみたのですが、関係無いんですかね?

Kent Webさんの、『postmail』を使わせて頂いて、書いてある通りにしたと思うのですが…


出来れば、お手隙な時にご教示を、また頂けるとありがたいです。


順を追って確認してみて下さい。

No.19223 投稿時間:2005年06月17日(Fri) 02:18 投稿者名:Don URL:

> 『Blatj』を使ってみようと思いまして、
> Kent Webさんに『自宅マシンメール送信計画』
> というのがあったので参考にしてるのですが、
> やはり上手く行きませんでした。

そうですか。
コマンドプロンプトでの送信が成功したのなら、
あとはそれほど難しくありません。これまでの繰り返しみたいな感じです。

何らかのエラー画面が表示されたと思いますが、
そのエラー内容を書いてみて下さい。

エラー画面の内容は結構重要です。エラー画面の内容によって、
ファイルやフォルダが存在しないのか、
アクセス許可設定が違うのか、
cgiファイル内の編集方法が違うのか等、
原因を調査するのに役立ちます。



CGIやその他の動作がうまくいかない場合の確認作業の手順としては、

【1.】IISの設定を確認
【2.】フォルダやファイルのアクセス許可の確認
【3.】cgiファイル内の記述内容の確認

こんな感じで確認をしていくと割とスムーズにいきます。

例えば 1~3 の全ての設定が違っていた場合、
2 や 3 の設定を先に直したとしても 1 の設定を直さない限り、
エラー画面の内容に変化はありません。

それに対し、1 から順に設定を直していきますと、
・1 を直すと 2 のエラー画面に変化し、
・2 を直すと 3 のエラー画面に変化し、
・3 を直すと 正常な動作結果の画面が表示される

こんな感じになります。
まぁ、全てがこれでうまくいくとは限りませんが、大抵はうまくいきます。



それで今回のPostMailの件は、
恐らく【1.】の設定が違うような気がします。

IISのデフォルトの設定が、
cgiファイルをperl.exeではなくperlis.dllに関連付けられていませんか?
普通はこれで問題ありませんし、デフォルトの設定を変更する必要もありません。
ただ、動かないcgiファイルに関しては個別にperl.exeに変更して下さい。

バーチャルホストやバーチャルドメイン等で、
Webサイトを複数構築している場合も同様です。
個別に変更するのが面倒ならば、
IISのデフォルトをperl.exeに変更しても良いと思います。



> セキュリティーのタブをいじってみたのですが、関係無いんですかね?

セキュリティータブの設定も必要ですね。
『Blatj』が置いてあるフォルダに、
『インターネットゲストアカウント』と『IIS_WPG』を追加し、
実行までを許可します。
できればもう少し細かく設定した方が多少安全になりますが、
とりあえず今は動く方が先決ですしね。



それでもうまくいかない場合は、
【1.】~【3.】を確認後、
PostMailのチェックモードを実行し、その結果も書いてみて下さい。
実際のフォルダ構造は伏せて結構です。


送信完了画面に移ってくれないのです。

No.19230 投稿時間:2005年06月19日(Sun) 01:40 投稿者名:sada URL:

Donさん。本当に何度もありがとうございます。


> 何らかのエラー画面が表示されたと思いますが、
> そのエラー内容を書いてみて下さい。
はい。エラーというよりも、一応動いてる様なのですが、
最初の入力画面に入力して、次に確認画面が現れるのですが、
『確認して送信』のボタンを押してもボタンは押せるのですが、
送信完了画面に移ってくれないのです。
勿論、メールの受信を確認してみても、受信できませんでした。


> IISのデフォルトの設定が、
> cgiファイルをperl.exeではなくperlis.dllに関連付けられていませんか?
> 普通はこれで問題ありませんし、デフォルトの設定を変更する必要もありません。
> ただ、動かないcgiファイルに関しては個別にperl.exeに変更して下さい。
>
> バーチャルホストやバーチャルドメイン等で、
> Webサイトを複数構築している場合も同様です。
> 個別に変更するのが面倒ならば、
> IISのデフォルトをperl.exeに変更しても良いと思います。
これは、IISのホームディレクトリタブの『構成』の所の事でいいのでしょうか?
『構成』の所のcgiは『C:\Perl\bin\perl.exe "%s" %s』で設定はしててるのですが

> セキュリティータブの設定も必要ですね。
> 『Blatj』が置いてあるフォルダに、
> 『インターネットゲストアカウント』と『IIS_WPG』を追加し、
> 実行までを許可します。
> できればもう少し細かく設定した方が多少安全になりますが、
> とりあえず今は動く方が先決ですしね。
はい。設定しましたです。

> それでもうまくいかない場合は、
> 【1.】~【3.】を確認後、
> PostMailのチェックモードを実行し、その結果も書いてみて下さい。
> 実際のフォルダ構造は伏せて結構です。
チェックモード
メールソフトパス:OK
jcode.plバージョンチェック:バージョンOK (v2.13)
テンプレート ( C:\Inetpub\test2\postmail\tmp_conf.html ) :パスOK!
テンプレート ( C:\Inetpub\test2\postmail\tmp_err1.html ) :パスOK!
テンプレート ( C:\Inetpub\test2\postmail\tmp_err2.html ) :パスOK!
テンプレート ( C:\Inetpub\test2\postmail\tmp_thx.html ) :パスOK!
バージョン : postmail v3.11
でした。

なんか、CGIの記述か、もしくはHTML記述が間違ってるのでしょうか?


アクセス許可を更に変更してみて下さい。

No.19232 投稿時間:2005年06月20日(Mon) 17:32 投稿者名:Don URL:

> 『確認して送信』のボタンを押してもボタンは押せるのですが、
> 送信完了画面に移ってくれないのです。
そうですか。困りましたね。
CGIとBlatjの連携がうまくいってないようですね。

Blatjがtempファイルのようなものを使う場合は、
もう少し上のアクセス許可が必要です。
フォルダのアクセス許可の設定で、
『インターネットゲストアカウント』を『変更』まで許可してみて下さい。

KentWebさんのサイトで解説してある例でいうと、
C:\www\mail\
この『mail』フォルダを『変更』まで許可して下さい。


やはりCGIの設定がおかしいのでしょうか?

No.19253 投稿時間:2005年06月23日(Thu) 20:05 投稿者名:sada URL:

Donさん返信ありがとうございます。 レス遅れてスミマセン。

> > 『確認して送信』のボタンを押してもボタンは押せるのですが、
> > 送信完了画面に移ってくれないのです。
> そうですか。困りましたね。
> CGIとBlatjの連携がうまくいってないようですね。
やはり、そーなのでしょうか?
あまりCGIそのものはいじってないんですが、

> Blatjがtempファイルのようなものを使う場合は、
> もう少し上のアクセス許可が必要です。
> フォルダのアクセス許可の設定で、
> 『インターネットゲストアカウント』を『変更』まで許可してみて下さい。
>
> KentWebさんのサイトで解説してある例でいうと、
> C:\www\mail\
> この『mail』フォルダを『変更』まで許可して下さい。
一応、変更まで許可しているんですが…

送信完了のページもしくは、送信エラーのページに行かないって事は、
やはりCGIの設定がおかしいのでしょうか?

度々のつまらない質問ですみません。
お時間のある時にご教示お願いします。


すいません。分かりません。

No.19254 投稿時間:2005年06月23日(Thu) 22:01 投稿者名:Don URL:


そうですか。出来ませんでしたか。

【1.】IISの設定
【2.】フォルダやファイルのアクセス許可
【3.】cgiファイル内の記述内容

この3つの設定ミス、設定漏れ等が本当にないのに出来ない場合は、
これ以上は、私の知識ではちょっとムリですね。
途中で投げ出すようで大変失礼なのですが、
私の知識では、出来ない原因が分かりません。申し訳ない。


是非、皆さんのお力添えをお願いします。


長々とありがとうございました

No.19310 投稿時間:2005年06月28日(Tue) 18:28 投稿者名:sada URL:

Donさん 何度もありがとうございました。
本当に助かりましたです。

私も色々やってみます。

もし原因が解明できたらココにまた書き込ませて頂きます。

長々とありがとうございました。


目次掲示板過去ログ目次▲頁先頭