中田さんへ。すみません、NTのことは知りませんでした。早速ぼろが出てしまった。
今調べたら、Perl for Win32の未実装関数にflock()はありませんでした。
いつも、利用させて頂いております。
最近、一つ気になることが有ります。
それは、仲間とデータのやり取りの時です。
ローカルで、テストをしている時は問題は無かったのですが、外部からアクセスさせ(当然、認証機能をかけていますが。)、ファイルのアクセスが10回目前後になると、エラーを起こします。
そのときの状況は、画面が流れてしまうので、内容はわかりません。
しかしエラー復帰後は、通信は駄目ですので、PCの再起動となります。
何回か再インストールや設定を変えて試したりしましたが、結果は同じでした。
何か有りましたら、アドバイスをお願いします。
>西岡さん
単にその機能が欲しいだけならWinGate(http://www.wingate.com/)や
SuperRAS(http://www.gakushuin.ac.jp/~96043069/superras/)を利用してみては
どうでしょうか。WinGateはyahooで検索すれば日本語版も見つけられます。SuperRAS
の方は開発が完全に止まってしまっているようですが。
あ、もしかするとSuperRASは手動だったかもしれません。今は、昨日に不満を感じて
WinGateの自動接続機能も殺して手動で接続しているので。
なお、外部だけへ接続させるには、(ネスケの場合)プロキシの「例外」にAn HTTPd
のIPアドレスとポートを書くだけで良いのでしょう(未確認です)。IEの場合は、どう
もIEはいまいちなので最近立ち上げていないので調べていませんが(Win95とWinNT版の
間でも設定方法が違うらしい)。
しかし、SuperRASのような(RWATCHみたいなのでない)ダイヤル方式のプログラム
を書いてみたいものです。
中田 昭雄様
AN-HTTPをいつも有り難く使わせていただいております。
Proxy関連の機能追加要望をまた1つ書かせていただきますので、ご検討いただければ
幸いです。
要望:
AN-HTTPのProxyの接続オプションとして、
1.LAN上のPCから外部へのproxy接続要求を受けたときに、ダイヤルアップ接続
をチェックし、未接続のときにダイヤルアップ接続を自動実行する、しないの選択オプション。
2.上記1の設定で「実行する」の場合に、実行されるダイヤルアップ接続を予め選択
しておくためのダイヤルアップ接続選択オプション。
3.上記1の設定で「実行する」の場合に、所定の無通信時間経過後にダイヤルアップ
接続を自動終了する、しないの設定オプション。
4.上記3の設定で「自動終了する」の場合に、無通信時間(1〜???分)を設定す
るオプション。
5.上記1の設定で「実行する」の場合に、リダイヤル回数を設定するオプション。
等の機能があるとありがたいです。
機能追加予定(ToDo)ページにはまだ挙がっていないようでしたが、もしもToDoページやこ
の掲示板の過去ログを見落としていましたら申しわけありません。
鈴木良平さんへ追記。
メールでの質問と答えを配るのか、という意味でしたか?
だとしたら、それはやっていません。
えむけいさん、
0.9beta9g での動作と、1.02での動作と再確認してみます。
Proxyはいずれも基本的には素通りになっているはずなのですが(User-Agent:以外は)。。。
渡辺さん、
いろいろお答えいただいて感謝しています。
flock() は WindowsNT では使えたのではなかったでしょうか(?)。
やまさん、
EXEの方は、単に出すなら、
-------------------------------------
#include <stdio.h>
void main(void)
{
printf("Content-type: text/plain\n\n");
printf("朝寒や腕を回せば背骨鳴り\n");
....
printf("太陽もわが身にあらじ秋にわか\n");
}
-------------------------------------
くらいでとりあえず(そっけなく)出ますが。
symlink の方は 渡辺さんの言われるとおりです。
みやびさん、
相対パスはもちろん使えます。
HTMLファイルの中の URLの(仮想パス)の相対パスは abc.html, ./abc.html, sub/abc.html, ./sub/abc.html, ../images/abc.gif など。
CGIのスクリプト中のローカルパスでも同様ですが、カレントディレクトリに迷いがある場合は絶対パスの方が安心でしょう。
(ISAPI(PerlIS)と perl.exe でカレントは変わります)
鈴木さん、
過分の評価をいただきましてどうもありがとうございます。
「メール投稿」とは? MLはありませんが。。。
最近すっかりでしゃばってしまっています。ごめんなさい。
研究がうまく行かず、学校にいる時間が長くなっているので。いいわけですね。
Windowsでは、symlink()、flock()の両関数は使えません。minibbs2でしたら、
#◆ファイルロックを利用する 1:symlink式 2:open式 0:no
$lock = 1;
という行があるので、これを2か0にしてください。とりあえず動かすなら0で。
QCのソフトで、C言語です。
EXEにしたものをUPして
クリックして読んでもらおうかな、
と思ったんですが、駄目ですか(~_~メ)
それから
localでテストしてみる、何でも出来ますか。
レスキューさんのminibbsUが、symlinkがちがう、
ところから始まって、悪循環です。
どうかたこれだけでいいですから助けて下さい。
yama
先ほどの書きこみの Stalkerlab's Mailers ですが、やはりフリーウェアのようです。
Mail.exeとCGIMail.exeの2種類がありますが、Mail.exeはUNIXのSendmailと同じ機能のようです。なので、sendmailを使うプログラムの該当部を直せばいいと思います。
具体例として、Web裏技のwebform.cgiだったら、
#■SENDMAILの設定
$sendmail = '/usr/lib/sendmail';
のところを、
$sendmail = 'c:\tools\mail.exe';
にすればいいんじゃないでしょうか(パスは適当)。
さらに、CGImail.exeのほうは、上記webform.cgiと同じことをやってくれるみたいです。本来Unixで動かすCGIのローカルのテストではなくて、実際にWindows上のANHttpdで配信するホームページでメール送信に使うなら、とても便利そうです。
使い方は、'<form method=POST action="/cgi-bin/CGIMail.exe">'(またパスは適当)てな感じで、楽チンです。
わかりにくい書き方してしまってごめんなさい。お詫びにWindows用のSendmailプログラムのHomePageを探してきました。WindMailは見つかりませんでした。
・Sendmail for Windows(シェア$49)
http://www.demobuilder.com/sendmail.htm
・SendM@il(これもシェア?)
http://www.deadsys.com/sw/sm.html
どれも英語ページなので内容はよくわかんないのですが、とりあえず30日の試用ができることは間違いありません。
・Stalkerlab's Mailers(たぶんフリー!)
http://www.stalkerlab.ch/SMailers/index.html
使い方を調べるまで手が回りません。またまたごめんなさい。
久々の質問です。
\httpd以下にAnHttpdをインストールしてある場合の相対パスの指定方法はどうなります?
相対パスって使えませんか?
本日AnHTTPd 初めて使用させていただきました。 全体を把握していませんが、PWSとかAPACHEなどより数段上。
メール投稿は、配信していただけるのでしょうか? 勉強になります。
>渡辺さん
何もしらない男さんのレスに関して、どの件になるのか探し出すのにかなり時間が
掛かってしまいました。投稿日時も出しておいて頂ければ助かりましたね。
テレホタイムであれば時間を気にすることもなかったのですが。専用線ではないの
で。
しかし、書かれてあったURLへは飛べませんでした。WinGateが原因である可能性
も大ですが。
と、その下にあるのがヘッダでしたか(^_^;)。
何の記述だろうかと疑問に思っていました。もう少し書いて頂ければ。
P.S.
ここへ来る人はかなり馴れている方ばかりだろうと思いますが、CGIが動かず2時
間も悩んでしまいました。
単にセミコロンが1個抜けていただけですが。
Perlでチェックしようかなと思いつつ、立ち上げるのを面倒くさがってしまった
所為です(^_^;)。
ということで、普通の人なら知っている「CGIが動かなかったらPerlを直接立ち上
げて」というアドバイスでした。
24年も経たエンジニアながら、お馬鹿な時間でした(^_^;)。
面倒くさがりやになってしまったのは歳の所為か?(^_^;)
>渡辺さん
Windmailがあるサーバに接続できません。
他にWindmailがとれる場所はないですか?
>何も知らない男 さん
http://www.st.rim.or.jp/~nakata/gbook/gbook.15.htm
pattomanX patt@patt.gr.jp 1998/08/12 10:33
過去ログを見逃していました。すみません。
RFC2068を読む限りでは、要求がHTTP/1.0ならHTTP/1.0 302に書き換えなくてはならないような気もしますが、proxy経由じゃないときや0.9b9gまではHTTP/1.1を返しているはずなのにその場合はちゃんとリダイレクトするのが不思議です。
ただ「プロキシ経由のときHTTP1.1を〜」をチェックすると、こんどは多くのページで画像が読めないなどまともにアクセスできなくなります。
どうも、また質問です。
Sendmailは使えないのでしょうか?
中田さん。
御指摘のとうりヘッダに誤りがありました。
”Content-type: text/plain\n\n”となってました。
どうもありがとうございました。
何もしらない男さん、
GETで大丈夫だとしたら、POSTの時に "Content-type: text/html\n\n" が正常に出ていないのではないか、とまずは思います。
それが正常なら、フォームがどうなっているか、でしょうか。。。?
フォームのある HTML とスクリプトを送ってもらった方がいいかもしれません。
どちらも短いものでしたら、ここに出してもらってもいいですが。
増田さん、
これはちょっとわかりません。
httpd.log に "GET /dir1/img.gif HTTP/1.0" 404 ... と出ているということでしょうか?
doc.htmlの先頭から<img src="img.gif">までの間に、METAタグ、BASEタグ、スクリプト、SSI、CGI はないでしょうか?
もっともこれらがあったからといって IE で OK で Netscape でだめとは考えにくいですけど。
やまさん、
.exe と .cgi は同じようなものではありません。
AN HTTPD では .exe の拡張子を .cgi に変えても動作するようにしている、ということでこれは特殊ケースです。
人がみたら .exe に見えるようにするなら .exe のままにしておくのがよいでしょう(という話とは違うか。。。?)。
「朝寒や...」の部分については、渡辺さんの言われるとおり "Content-type: text/plain\n\n" などが必要ですが、どうもそれだけの話ではなさそうで。
これを出すプログラムは、いったいどうやって作りました?
VBでも C でも C++ でもなさそうですし。あるいは、何かファイルを読み込んでそれを出すようなプログラムですか?
また質問です。
GETではうまくいっていても
フォームのメソッドをPOSTにし実行すると
ダウンロードになってしまうのはなぜでしょう?
お願いします。
</body></html>の前に</pre>を忘れました。
はずしているかもしれませんが、
cgiでブラウザに文書を表示させるには、出力の先頭にContent-typeというのをつけなければいけません。具体的には、
・html文のとき
Content-type: text/html\n\n
・普通のtextのとき
Content-type: text/plain\n\n
"\n"は、改行コードです。C言語やperlなどでは"\n"と表現します。htmlとplainの違いは、端的に言えばhtmlでは
がついたとこでしか改行されないってことでしょうか。
もし、問題のcgiが、すでにコンパイルされた実行ファイルで、新たにソースの書き換え、コンパイルができないのでしたら、ssiを使うとよいと思います。
------test.shtml
<html><body>
<pre><!--#exec cmd="cginame.exe">
</html></body>
------
こんなファイルをcginame.exeと同じフォルダにおいて表示してみてはいかがでしょう?ANHttpdのほうでちょっと設定がいるかもしれませんが。
ANHTTPD 1.02 を Windows95 で使用しております。
Internet ではなく、職場の LAN(外部とは接続していません)上で、
使用しています。
ディレクトリ構成は以下の通りになっています。
document_root\dir1\dir2\doc.html
document_root\dir1\dir2\img.gif
この doc.html 内で、
<img src=”img.gif”>
として画像を貼り付けています。
この doc.html を、InternetExplorer から読んだときは
何も問題はないのですが、
Netscape から読んだときは、
正しく画像が表示されません。
Logファイルを見ると、
document_root\dir1\dir2\img.gif
ではなく、
document_root\dir1\img.gif
として読もうとして、404エラーになってしまっていました。
なぜこのようにディレクトリを間違ってしまうのでしょうか?
皆目検討がつかず、閉口しております。
何卒、ご助言を賜りたくよろしくお願いいたします。
Error 500
CGI Error - can't find Content-Type
CGI Output Message:
チコ937.c.......................................................
. .
. 朝寒や腕を回せば背骨鳴り .
. .
. 秋円空明るい雲と暗い雲 .
. .
. 待ちわびて花細うなる澤桔梗 .
. .
. 秋の山稜線袖を整わせ .
. .
. 太陽もわが身にあらじ秋にわか .
. .
. atto=(._.)= Thu September 7 '95 .
. .
.4;山の精 .
..............................................................
errorの部分で内容にするのにはどうすればよいのでしょうか。
あっちこっちともうしわけありません。
またみょうな質問をしてしまいました。
どうも生噛りでドンドン先に進む悪い癖があります。
なにとぞお手柔らかに御叱正を(^_-)
nakata先生ありがとう。
exeとcgiは同じようなものだったのですね。
そのexeなどで、ひとが見たらもとのexeにしておく
方法はありませんか。
ご教授願います。
えむけいさん、
それは私も確認しています。
下記参照。
>中田昭雄 nakata@st.rim.or.jp 1998/09/26 16:12
たぶん AN HTTPD で正しく(?) HTTP/1.0 302 と返せばそのチェックなしにいくのだろうと思いました。
HTTPのバージョンの扱いについては AN HTTPD もいずれ 1.1 対応にしていくつもりなのですが、IE4の動作がそれでいいのかどうかちょっとわからないでいます。
なぜだかわかりませんが、インターネットオプションの詳細設定の「プロキシ接続でHTTP 1.1を使用」をチェックしたらIE4でも正常にリダイレクトできるようになりました。
それにしてもどうして私のところばかりほかでは再現しない謎の現象が起きるんだろう……。
やまさん、
*.exe を使う場合は、
GETメソッドでかつ /cgi-bin(以下)以外に *.exe を置くなら ? をつける必要があります。
POSTメソッドか、GET でも /cgi-bin(以下)に置くなら、そのままで動作するはずです。
以上の仕様は、自己解凍形式の *.exe をダウンロードにするためです。
*.exe を *.cgi に拡張子を変更して実行させる場合は、Options/General の
check .cgi if script/exe( 「EXE形式の.cgiを実行する」)
のところにチェックを入れてください。
たかきさん、
なるほど Win3.1 で編集することもあるのですね。
次のバージョンで .html と .htm を同一視するかどうかはオプションにしたいと思います。
何もしらない男さん、
また疑問が出たらどうぞ。
蜂谷さん、
たしかにそうでした。
とりあえずは、Last Update の前に、改行かコメント(<!-- -->)を入れれば正常に動作します。
もちろん、次のバージョンで、そのまま実行できるように直します。
いつもとんでもない質問をしてすみません。
こんどは・・・
五六行ほどの文字を表現する*.exeなのですが
それをそのままブラウザに表現する方法ってありますか。
どなたか.cgiのあとに?実行すればいいみたいな事を
いう人がいたと思いますが(^_-)
たかきです。
>中田昭雄 nakata@st.rim.or.jp 1998/09/26 07:01
>また、たかきさんの言われていた *.html->*.htm の話は、たしかに 0.9b9g とそれ以前
>ではそうなっていました。
>意図してそうしたわけではありませんでしたが、それに依存したドキュメントツリーになっ
>ている方もいらっしゃるでしょうから、これはもとに戻しましょう。
>できればオプションの方がいいかもしれませんが。
1.02で試した問題なく動いています。ありがとうございました。
オプションで設定できると*.htmlと*.htmを使い分けが出来るので楽ですね。
>ぴゅあ takasuka@tky2.3web.ne.jp 1998/09/24 19:50
> たぶん呼び出し元は.../*.htmlまで記述しているんでしょうね。
> 普通のUNIXサーバでは*.htmlと*.htmは区別されます。
> 正確なファイル名を記述するのが正しいと思いますが如何なものでしょうか。
はい、ソースは *.htmlを要求するように記述しております。ファイル名は*.htmです。
テスト終了後、UNIXサーバに転送して使うことを前提としています。
UnixサーバにFTPした後、Telnet状態から ln -s *.htm *.html の操作をしています。
ソースの開発?は、Windows3.1Jマシンでも行うこと、拡張子は3文字までということ、
Explorerよりはファイルマネージャ[Winfile](拡張子が3文字まで)の方が使いやすいこと、
最終的にUNIXサーバで使用するなどの理由でファイル名
に *.htm を使用しています。
>中田さん
いわれたとうりやったらできました。
やっとこれでCGIを動かすまでにいたりました。
これもアドバイスをくれたみなさんのおかげです。
これからバリバリCGIを勉強していきたいです。
また疑問がでるかもしれません。
そしたらまたお願いします。
下の書き込み「同じ行」と「file」を強調したかったのですが、
タグがそのまま表示されてしまってますね。正しくは、
エラー発生条件:
1.SSIと同じ行で<A HREF="">等ダブルクォーテーション文字列を使用している。
2.その文字列にfileという文字列が含まれている。
です。
中田さん、初めまして。
ローカルでのテストに使わせていただいています。
SSIでflastmod使用時にエラーが発生する場合がありますので、報告させていただきます。
AN HTTPのバージョンは1.02です。
エラー発生条件:
1.SSIと<B>同じ行</B>で<A HREF="">等ダブルクォーテーション文字列を使用している。
2.その文字列に<B>file</B>という文字列が含まれている。
サンプルhtmlファイル:
<A HREF="profile.html">プロフィール</A> Last Update:<!--#flastmod file="profile.html"-->
サンプル実行結果:
プロフィール Last Update:[an error occurred while processing this directive: file not found]
渡辺さん、サンプルありがとうございます。
<PRE></PRE> で見やすさは増すかもしれません。
こういうときは Content-type: の中身は見ないのかもしれませんね。
えむけいさん、ご指摘のところ直しました。
何も知らない男さん、
そのエラーは、\bin\perl を実行できないということです。
perl.exe は C:\www\perl\bin にあるのでしたっけ?
つまり perl.exe をフルパスで書くと C:\www\perl\bin\perl.exe でしょうか。
だとしたら、
Options/Generalの
(1)parse #! line をチェックしていたら はずす
(2)ExecProg for .pl, .cgi のところに C:\www\perl\bin\perl.exe と入れる
これでいけると思います。
再起動させて、もう一度実行したところ、今度は、
Error 500
CGI Error - can't exec "\bin\perl C:\www\~noguchan\public_html\cgi-bin\test.cgi ", errorcode = 2, No such file or directory
とでました。
これはいったいどういうことなんでしょう?
フォントによっては半角アンダーバー("_")が見にくいかもしれません。
全角で書けば、"print $_;"です...全角でも見にくくなるのかな?
ちょっと昔に、cgiでイメージファイルを出力させる話がありましたが、サンプルを。
------
print "Content-type: image/jpeg\n\n";
open(IMG,"imagefile.jpg");
binmode IMG; binmode STDOUT;
while(<IMG>){ print $_; }
close(IMG);
------
ポイントはbinmode関数で、入力側のIMG(ファイルハンドル名。任意)と出力側のSTDOUT(標準出力。固定)双方をバイナリモードにします。
イメージファイルはgifでもいいです。その際、1行目のContent-typeは"image/gif"にすべきだと思いますが、なぜか"image/jpeg"のままでも表示できました(netscape 4.06)。
何も知らない男さん、
Can't rename のエラーは、一度 CGI が中途半端になるといつまでも出続けます。
そのCGIがファイルをオープンしたままになっているので他のCGIが使えなくなってしまうためです。
一度 PC を再起動してやりなおしてみてください。
なお、「サーバ、perlをたちあげて」というのはどういう意味でしょうか?
perl はサーバが起動しますから、perl をたちあげておく必要はないはずだと思いますが。
渡辺さん、ぴゅあさんありがとうございます。
おかげでエクスプローラの表示の件は解決しました。
その後、test.cgiとし実行しましたが、やはり
Error 500
Can't rename - can't rename 1.x to stdout.x
がでてきます。
サーバ、perlをたちあげてやっているのですが、
これはどういったことなんでしょう?
IEで見ると、この下のタグが入ったPerlの発言のところから先が読めなくなってしまっています。
>何もしらない男さん
Win95またはWinNT4.0だとすれば(Win98は判りません)、エクスプローラを立ち上げて
「表示」メニューの「オプション」を選べば「オプション」ダイアログが出てくると思い
ます。
このダイアログが表示されたとき「表示」タブが表示されているので、そこの「ファイル
の表示」グループの枠の下に3つか4つのチェックボックスがあると思います。その中
の「登録されていファイルの拡張子は表示しない」というチェックを外せば良いのですが
(デフォルトではチェックが入っています)。
これにより、エクスプローラの右側にはtest.txtなどのように表示されるようになりま
す。
また、エクスプローラの表示形式を「詳細」にすれば(一番右のボタンを押す)、ファイル
の種類として確認できるようになります(.txtはテキスト文書,.cgiはCGIファイルと表
示される)。
それから既にtest.txtなどのように格納されてしまったファイルは、そのファイル名の
ところで右クリックメニューを出して「名前の変更」を選べば変更することができます(私
は一度選択(青く反転)してから再度クリックしていますが)。反転表示の右端でカーソル
が点滅している状態になりますので一度カーソルキーを押してから(マウスでもできますが
やり易い方を)拡張子だけを.cgiに直すことでファイル名を変更することができます。この
とき「本当に変更しても良いのか?」と聞いてくると思いますが、気にせず「はい」と答え
てください。
このあと、.cgiファイルをメモ帳に関連付けておくと良いでしょう。test.cgiをダブル
クリックすると関連付けするアプリケーションを聞いてくるのでnotepadを選べば次回から
はそのファイルをダブルクリックするだけでnotepadが呼び出されるようになります。また、
この後、上書き保存を選べば(×で閉じて保存しますか?で「はい」と答えても良い)、
test.cgiのまま保存してくれます。
新しいソースコードファイルを保存する場合は、確かに「全てのファイル」を選択して
も.txtが付加されて、test.cgi.txtのようになってしまいますので、先のファイル名の変
更を行うのが一番簡単な方法でしょう。
拡張子を.exeにした場合は、通常のUNIXサーバはダウンロード動作すると思いますが、
AnHTTPdでは実行しようとするようです。ネスケ v4.06では異常終了してしまいました。
いずれにしても、Perlで記述したCGIは拡張子を.cgiか.plにしてください。拡張子を.exe
のようにするのは、C言語などで実行形式のCGIを作った場合だけです(となっている筈)。
どうも、またまた質問ですぅ。
エクスプローラを起動→[表示]→[オプション]とはあるのですが、
その中に[表示]というものがないので、
「登録されているファイルの拡張子は表示しない」のチェックがはずせません。
また、 メモ帳で保存するとき、ダイアログを「全てのファイル」にして保存しても
やはりTXTという拡張子がついてしまうので、ワードパッドで保存したところ
うまくいきました。でもEXEと拡張子をつけて実行すると、
Error 500
Can't rename - can't rename 1.x to stdout.x
とでます。
これは名前がよくないのでしょうか?
すみません。割り込みです。
エクスプローラを起動→[表示]→[オプション]→[表示]
で、「登録されているファイルの拡張子は表示しない」のチェックをはずしてください。
それから、メモ帳で保存するとき、ダイアログの「ファイルの種類」欄が「テキストのみ」になっていると、保存したファイルにかってに拡張子.txtがついてしまうので、「全てのファイル」にして保存してください。
たまたま何も知らない男さんの書きこみ直後にここを訪れたので割り込んでしまいました。
>ぴゅあさんへ
どうやら原因は自分がプログラムをメモ帳で書いていたため
拡張子の一番最後にTXTがついていしまうためのようです。
このためダウンロードされてしまうようです。
これに対処するにはどうしたらいいのでしょう?
すいません。お願いします。
すぎうらです。
なかたさんどうもありがとうございました。
ちゃんと表示されました。
今日、日本語版をインストールしたので、気づきませんでした。
日本語版になってとても使いやすくなりました。
これからもがんばってください。
それでは。
すぎうらさん、
オプションの 表示/インデックス で、「.www_browsable があるディレクトリのみ表示」のチェックをはずせばできます。
ただし、こうすると index.html がないディレクトリではすべて一覧を出してしまいます。もちろん、ローカルテスト用なら全く問題ないとは思いますが。
こんにちは、中田さん。
以前にお世話になったすぎうらです。
また質問なのですが、URLの最後をディレクトリで終わらせたときに、
(ex http://......../~sugiura/test/)
index.htmlがなかった場合はそのディレクトリの一覧を表示させることは
できないのでしょうか?
よろしくお願いいたします。
IE4+proxy で 302 が有効にならないのは、
IE4の設定で 「HTTP/1.1を使用」になっていて「プロクシ接続でHTTP/1.1を使用」になっていない時起きるようです。
HTTP/1.1 302 に対して、IE4 が上のような状態だと自動リダイレクトしないようです。
本来は AN HTTPD は HTTP/1.1 に対応していないので、HTTP/1.1 302 は HTTP/1.0 302 に書き換えるべきなのかもしれませんが。
ばばっちさん、
DOCUMENT_NAME が (none) になってしまうのはバグです。申し訳ないです。
明日予定の 1.02 で直しますが、これと同じ根の問題('/' と '\'の問題)もありそうなので見直します。
また、たかきさんの言われていた *.html->*.htm の話は、たしかに 0.9b9g とそれ以前ではそうなっていました。
意図してそうしたわけではありませんでしたが、それに依存したドキュメントツリーになっている方もいらっしゃるでしょうから、これはもとに戻しましょう。
できればオプションの方がいいかもしれませんが。
>何もしらない男さん
CGIのソースそのものがそのまま表示されてしまうということでしょうか?
Optionの色々な設定を変えて試してみましたが再現できませんでした。
もしや、拡張子が間違っているのではないかと試してみましたが、
ネスケ v4.06では(何故か?)ダウンロード動作になり、
IE v3.02では「コマンドまたはファイル名が違います.」となりました(これも不可解ですが)。
一般に特定の拡張子(.cgi,.pl)以外はファイルの内容がそのまま表示されると思います
(.exe, .lzhなどはダウンロードの対象となる)。An HTTPdでどのように扱われるのかは
判りませんが。
確認するとすれば、拡張子が.cgiであること、Option/GeneralのGeneralの設定内容だと
思いますが。
あと、cgi-bin以外の場所にソースが格納されている場合も確認しましたが、
ドキュメントルート,public_htmlの下にあっても実行されました。cgi-binの下でなくても
実行できても良いのかな?という気もしますが(/cgi-binの設定の意味がない?)。
という訳で、再現できず、原因不明です。
>中田さん
ローカルアドレスにサーバの方のIPアドレスが表示されてしまうのはブラウザの方の
プロキシを切っていない所為でした(^_^;)。
>中田さん:
なるほど、確かにすべての .html に対して allow SSI しています。
そういうことでしたか。有り難うございます。
はじめまして、ばばっちと申します。
さて、不躾で申し訳ないですが、環境変数「DOCUMENT_NAME」を取るCGIプログラムを、
SSIで呼び出して実行させると全て「no name」が返されます。
Version 1.00 に変えたころから起こりはじめました。
どんな原因が考えられるのでしょうか? 是非教えてください。お願いします。
ぴゅあさん
私も1年前となるとちょっと記憶がありません。
が、いずれにしろ、いろいろやっていただくのは大歓迎です。
説明書きも、UNIXなどでサーバを使った経験のある人が Windows でやるときのヒント程度でしかない、と思っています。
わかってはいるのですが、なかなかちゃんとしたドキュメントが書けないままになっています。
というわけで、よろしくお願いします。
何も知らない男さん、
そのままスクリプトのソースが表示される、ということでしょうか??
昔そういう話があったような気もしますが、ちょっと思い出せません。
その Perlスクリプトのファイル名は formtest-1.perl.cgi ですか?
Raphaelさん、
IMG src="test.cgi" は、壊れた画像マーク(というのか?)になるのでしょうか?
UNIX と違って Windows では標準入出力に バイナリ/テキストモードがありデフォルトがテキストモード、というのがまず思い浮かびます。
Windows用に適切な CGI であればうまくいくと思いますが。
スーパー工房管理人さん、
どうもありがとうございます。
とりあえず、(プライベートの時間)=(AN HTTPD のための時間)ということになっています。
喜田さん、
「今回」と「以前」の設定上の違いは何でしょうか?
いただいた情報を元に考えてみますが、ちょっと難しい話なのかもしれません。。。
YMUさん、
確かに 1024 バイトを越えたところでゴミは出ますね。
これも処置しますが、当面の対策は1行を('\n'までで)1023バイト以下にする、ということになります。
SSIを *.html にも許可しておくと、すべての html を一応SSIがないか見ますので同じことになると思います。
>ぴゅあさんへ
どうも、毎度アドバイスありがとうございます。
えっとErrorはでないのですが、実行しても
環境変数が代入されず、そのままプログラムのとうり表示
されちゃうんです。ほんとそのままで。
これはなにがいけないのでしょう?
書こうと思って、抜けていました(^_^;)。
>Raphaelさん
IMGタグはイメージファイルしか扱えなかったような?
通常、Aタグで呼び出させるかFORMタグから起動させる形を取ると思いましたが
どうでしょう。
フレームから直接呼び出す方法は....
ちょっとブランクが開いてしまいましたので、今は忘れていますが。
ちょっと調べれば解るだろう<自分 (^_^;)
またもや、懲りずにレスです。(^^ゞ
最近、ICQのアドバイザ役も暇になってしまった所為もあるのでしょうか(^_^;)。
>何も知らない男さん
一応、そのまま実行してみましたが、問題なく表示されました。
注:GETで実行されるのでNULL stringとなる項目はあります。
或いは「Error 404」或いは「Error 500」が出ているのでしょうか。
もしそうだとすれば、前者はCGIソースが見つかっていません(パスの設定ミスなど)。
後者の場合は、Perlのパス設定が正しく行われていないためにPerlが呼び出せていません。
全く表示されないのか、もう少し状況を詳しく知らせて頂ければ。
ただ、何故かリモートホストはAn HTTPdを立ち上げているクライアントではなく、
サーバのアドレスが出ますね。不思議....
サーバ側ではAn HTTPdを立ち上げていません(当然、クライアント側のAn HTTPdを呼び出している)。
>中田さん
もう1年近く経つので覚えていませんが、もしかするとリンクを張らせて頂くことをメール
してあったかも知れません。今月でプロバイダの契約が切れてしまうので、プロバイダを
変える(URL,メールアドレス共に変わる)かも知れませんが、時間的に来月になりそうなので
その際には、ご連絡を差し上げようと思います(リンク許可)。
また、ボリューム的にはそれほど必要なさそうですが、私のサイトでAn HTTPdを取り上げさせて
頂こうと思いますので、もし宜しければよろしくお願いいたします。
ちょっとヘルプ用sample.htmlの説明では馴れていない方には説明が簡単すぎて
理解し辛い部分もあるとも思われます。
まだ、掲示板は設計中なので設置の時期は分かりませんが、様々なアプリケーション
(ソフト全般)に付いての情報交換の場となるようなものを計画しています。
ものによっては、関係者(作者など)のところへ集まった情報を整理して伝える予定にも
してありますが。
to 中田昭雄様
お答え誠にありがとうございました。
この間の質問の件ですが、OSの動作が不安定になっているだけでした。
どうもお騒がせいたしました。
ところで、
<IMG src="test.cgi">としたとき、test.cgiは実行されますか?
> 中田昭雄様
当HPへのリンクはご自由に。
サポート大変ですね。
プライベートな時間がなくなってしまいませんか?
労作業、心から敬意を表します。
ぴゅあさん。どうもアドバイスありがとうございます。
前回のツリーの問題はすべてずれによるものです。
ぴゅあさんのおかげで前回のエラー404はでなくなりました。
さて、今やってるのはフォームから入力した名前、住所、などのデータを
GETメソッドでとってそれを関連変数として表示するものです。
以下がそのソースです。Perlでつくってます。
#!/perl/bin/perl.exe
# Filename: formtest-1.perl.cgi
# (c) 1995 William E. Weinman
print "Content-type: text/plain\n\n";
print "HTTP_USER_AGENT = $ENV{'HTTP_USER_AGENT'}\n";
print "REQUEST_METHOD = $ENV{'REQUEST_METHOD'}\n";
print "SCRIPT_NAME = $ENV{'SCRIPT_NAME'}\n";
print "QUERY_STRING = $ENV{'QUERY_STRING'}\n";
print "REMOTE_HOST = $ENV{'REMOTE_HOST'}\n";
print "REMOTE_ADDR = $ENV{'REMOTE_ADDR'}\n";
print "CONTENT_TYPE = $ENV{'CONTENT_TYPE'}\n";
print "CONTENT_LENGTH = $ENV('CONTENT_LENGTH'}\n";
実行しても=の右のところに入れたデータが表示されません。
どうしてでしょう?
長くなりましたが、どなたかアドバイスできたらお願いします。
kernel を巻き込んで落ちる件です。今回は、OSごとは落ちなくなったようですが、
アドレス : 015f:bff7b9e6 です。いきなり、このメッセージが出るわけではなく、
この直前に、runtime error が出ます(今度出たら、書き留めておきます)。
その後、アイコンのトレイにあるアイコンをクリックすると、落ちます。
以前は、このメッセージでOKしてしまうと、OSごと落ちました。
環境
wsock32.dll ver2.2 (98/04/28 19:33:24)
VB SP3導入。
1.01でゴミが出る件、追加報告を書いておきます。
うちでは parse SSI output は初めから外した状態でしたが、ゴミが付着していました。
また、SSIでなく、通常のhtmlファイルの出力でもゴミが出ることがあります。
1行が1024バイトを超える行について、その行の1024バイト目と1025バイト目
(正確ではないかもしれません)の間にゴミが挟まります。
Ver.1.01 のバグの応急対策
(1)SSIのゴミは、parse SSI Output(SSI出力の検査)のチェックをはずしてください。
(2)302のリダイレクションのエラーは日本語表示の時のみ起こるようです。とりあえず 英語表示 にしてください。
いずれも、ちゃんと直しますが、Ver.1.02 として今週末に出したいと思っています。
なお、えむけいさんの IE4 + Proxy の 302 エラーについてはまだわかっていません。
ぴゅあさん、
もろもろありがとうございます。
接続していないとき待たされる件は、(下の喜田さん宛てのところにある通り)リモートホストの取得をしないようにセットしていただければ、と思います。
たかきさん、
0.9b9g でも、/ で終わる URL に対して index.html をさがし、なければ次に index.htm をさがす、というふうにしていたつもりでしたが。。。
ただ、それとは別に エラー404 になるケースがあるという報告もあるので、ちょっと調べ直してみます。
Raphael さんへ追記
コマンドラインにそのまま打ち込んで動きますよね?
Raphael さん、
jperl に拡張子もつけて jperl.exe となるようにしてもらえますか?
違う話かもしれませんが。
のりのりさん、
通りすがり猫さんの言われるとおり Perl(とWinoldapp)を強制終了すればいいのだと思います。(Win95/98なら CTRL-ALT-DEL で)
ただ、単純な無限ループはブラウザの中止ボタンでプロセスを終了させるようにはしたつもりなので、それがうまくはたらいていないのかもしれません。
よろしければ、おかしくなるCGIをメールで送っていただけませんか?
よこをさん、
いや私も確認したわけではないです。
一応 minibbs2 を見て、素朴な cp の使い方だったので、それなら COPY /Y でいいだろうと思ったわけです。
cp との違いは、COPY だと 「一つのファイルをコピーしました」 というようなメッセージを標準出力に出すので、それがいけないのかもしれませんね。
だとしたら、$cp = 'COPY /Y' で、system("$cp ...."); のところを system("$cp .... > NUL"); とでもすればいいのかも(これも未確認ですが)。
スーパー工房管理人さん、
行き届いた説明ありがとうございます。特にNTのサービスの説明はいままではあまりなかったところです。
よろしければ、こちらからもリンクさせていただきたいと思いますが、よろしいですか?
喜田さん、
LANのアドレスをとりにいくのは、
(1)起動時
(2)リクエストが来た時
の2通りありますが、それぞれ
(1)Appearance/Index の Startup の Get Hostname (「ホスト名/アドレスの取得」)のチェックをはずす。
(2)Options/General の Get REMOTE_HOST(「リモートホストを取得」)を Never にする。
で、止めることができるはずです。
Kernel32.dll もろとも落ちるのはそれとは別の話でしょうが、落ちる時のアドレスを教えてもらえますか?
(0137:xxxxxx とか)
>たかきさん
たぶん呼び出し元は.../*.htmlまで記述しているんでしょうね。
普通のUNIXサーバでは*.htmlと*.htmは区別されます。
正確なファイル名を記述するのが正しいと思いますが如何なものでしょうか。
また、でしゃばってしまいました。ごめんなさい。
もっと詳しい方が答えてくれるだろうと思いつつ、ついつい答えてしまうσ(^_^;)。
>何もしらない男さん
まだ、本格的に動かしていない(昔のバージョンでは動かしたことはあるのですが記憶
が....)ので、細かなところまでは答えられませんが。
ツリーは書き間違えただけなのだろうとは思いますが、書いた通りであるとすれば、
test.cgiがcgi-binの下に入っていませんね。
それと、public_htmlとcgi-binはドキュメントルートディレクトリの直下に作るのが
正しい筈です。そうでなければ、オプションでドキュメントルートディレクトリ、または
public_html,cgi-binのパスに~noguchanを含める必要があります。
たぶん、public_htmlのバスに対して/~noguchanを指定してあるのでしょう。だとすれ
ばhttp://127.0.0.1/~nogucgan/に対して/www/public_html/が参照されます。
また、cgi-binのパスに対して/cgi-binのままであるとすると、http://127.0.0.1/cgi-bin/
で/www/cgi-bin/が参照される筈です(こっちはうろ覚えです)。また、左にある
チェックボックスをチェックしないと機能しないでしょう。この辺は以前CGIをインタネ上で動
かすときにやっていましたが、何分時間が経ってしまいましたので。まだ、CGIの実行は
再開していません。
これでどうでしょうか。
また、#!perl/bin/perlという部分は、parse #! lineにチェックしないと無視される
と思います(逆だったかな?(^_^;))。
perl.exeがAnHTTPdと同じ場所にないなら、ExecProgにPerlのフルパスを指定しないと
いけないんだと思います。
あ。ツリーは半角スペースを使ったんですね。だから、つめられて表示されてしまったんだと思います。
|-www
| |-public_html
| |-cgi-bin
| |-test.cgi
|-perl
| |-perl.exe
が正しい構造となります。
ExecProcは、.../perl/perl.exeと記述すれば良いのだと思います。
>Raphaelさん
エラーの詳細は判りませんが、上記のディレクトリ構造が参考になるのかも知れません。
ごめんなさい。憶測が多くて。
★自分の書き込みに対して
ダイヤルアップ接続していない場合は非常に長い時間待たされるというだけで動作は
するようです。今のところ問題は解決しているようです。お騒がせしました。
普段はICQのアドバイザみたいなことをやっているのですが、ついつい性分で手を出
してしまいました。m(__)m
はじめまして、高木です。
以前のVer. 0.9b9g では問題が無かったのですが、Ver. 1.01にしたら読めないものが
現れました。
ファイルとして、*.htmlが無い場合に *.htm を読み替えていたようですが、
Ver. 1.01でも可能にする方法はないでしょうか。
index.htmについては可能なようです。
はじめまして。ごく最近 httpd を知りさっそく導入をさせていただきました。
驚くほどに簡単にwebサーバが出来、驚いている次第です。
ところで、すでに同じような質問が出ているようなのですが、
perlスクリプトを実行しようとすると次のようなメッセージが出ます。
CGI エラー - 以下のコマンドラインを実行できません : "c:\usr\local\bin\jperl C:\www\hello.pl ", errorcode = 32, Broken pipeこれは、そのまま表示されたメッセージをペーストしたものですが、
どうも、はじめまして、CGI始めたばかりでなにも知りません。
よろしければアドバイスお願いします。
先日、httpdで自分の作ったCGIをテストしようとして
とりあえず、フォームからのデータをGETメソッドでとって
環境変数として表示するプログラムを作ったのですが、いざ動かそうとすると
ファイルが見つからないか、動きませんとでてきます。
.htaccessも書きました。
以下は私のツリー構造です。
html内のACTIONのところには
”http://127.0.0.1/~noguchan/public_html/cgi-bin/test.cgi”
と書いあります。
CGIはメモ帳で書きました。
またこの場合のCGIスクリプトが実行できるパスは#!perl/bin/perlでいいのでしょうか?
+www<ドキュメントルート・ディレクトリ
|
+−〜noguchan
| |
| +−public_html
| |
| +−cgi-bin
| |
| +−test.cgi<これが動かそうとするCGI
+−perl
|
+−bin
|
+−perl.exe<Perlのある場所
長くなりましたがお願いします。
>のりのり氏
無限ループしてるんでしょうかね
タスクマネージャから,Perlのプロセス殺してみたらどうなりますか?
はじめまして。
お世話になっております。
まったくの初心者なので うまく表現できないのですが…。
えーと、9/17に「まるこ」さんが書かれたのと多分同じようなことが起こっています。
まず、あるCGIを動かそうとすると ループ?状態になってしまうので中止します。
で、その後an httpdを落としてもインターネットに接続できません。
(xxxxを探していますの状態のままです)
どーにもならないのでマシン自体を再起動しようとすると
「perlを終了して下さい」というメッセージが出ます。
結局シャットダウンするしかないので毎回そうしていますが…。
シャットダウン以外に方法があったら教えて下さい。
ちなみに他のCGIはきちんと動作していました。
よろしくお願いします。
お騒がせしております。中田さん。<(_ _)>
$cp = 'COPY /Y';と変えたのですが、変わりませんでした。
相変わらず、2回目以降のアクセスはデータ不正ではじかれてしまいます。
中田さんのところでは、$cp = 'COPY /Y';としたらうまくうごいたのですか?
だとしたら、私のなんらかの設定が違うのでしょうか...?
勝手に紹介文とセットアップ法の概要を書かせていただきました。以下の場所です。
http://sl.hunet.ne.jp/ のメニュー「チャレンジクラブ」から「WinNT武装化計画」とたどって「AN HTTPDをセットアップ」にあります。
どうもありがとうございました。
1.01 早速使わせていただきました。
Windows98 で、使ったのですが、かなりの確率で kernel32.dll を巻き込んで落ちました。
再現としては、httpd を立ち上げた状態でブラウザを起動するとアウトという感じです。
IE、ネスケ共にです。最近、Win98 を入れたので詳しく調べてないのですが、
LAN のアドレスを取りに行ってしまっています。(Win95 では PPP が乗っ取りましたが(^^;;)
War-ftpd も LAN のアドレスを取りに行っているので、Win98 で仕様が変わったのかな。
中田さん、ありがとうございます。MN128-SOHO FAQ 見てみます。
再び書き込みさせて頂きます。
WinNT側で立ち上げた場合に付いて解決したようです。
WinGateでWWW Proxy Serverを起動している場合は、ダイヤルアップ接続していないといけないようです。
WWW Proxy Serverを停止させた場合は、ダイヤルアップ接続の必要はないようです。
理由は不明です。
それほど詳しくないので。
確か、最初に使わせて頂いたのは1年くらい前。ずっと御無沙汰でした。
ダウンロードは何度かしていたのですが、また使ってみようと思いつつ。
今回、v1.01が公開されたのを機会に久しぶりに立ち上げてみました。
しかし、当時と違って、現在はLAN環境。どうもうまく動いてくれないようです。
環境はサーバ側:WinNT4.0 Server+WinGate2.1+SuperRAS、クライアント側:Win95(共にネスケ)です。
LANはピア・ツー・ピアです。
エラーはどこから出ているのか「Browser Error/Your Browser sent a malformed request」でした。
Win95側,WinNT側どちらから見ても同じでした。
試しにWin95側で立ち上げた場合はWin95,WinNT側共に見る事ができました。
WinGateが邪魔をしているのかも知れません。もう少し調べてみます。
えむけいさん、
新田さんのと同じ現象かまだわかりませんが、調べてみます。
鏡さん、
MN128-SOHO で WWWサーバを置くときの設定については、MN128-SOHO FAQ の AutoNAT のところなどをご覧になってください。
新田さん、
自動的に飛ぶはずなのですが、正常に機能していないようですね。サーバが出すヘッダが(日本語がらみで)おかしいのかもしれません。
調べてみます。
渡辺治久さん、
トレイでなくタスクバー上で動かすオプションはありますが、それでも最初からウィンドウを開いておくオプションはありませんね。
追加を考えます。
よこおさん、
minibbs2 では、system("$cp ..."); を使っていて、デフォルトでは、$cp = 'cp'; ですね。
$cp = 'COPY /Y';
でいけるかと思います。
あるいは Cygnus の GNU for Win32 には cp.exe がありますから、それを使うなら $cp = 'cp'; のままでいいわけです。
渡辺 祐さん、YMU さん、
SSIのごみについては、確かに改行コードで終わらないときに出るようです。
他のいくつかの問題とあわせて対策をとります。
新田博城さんの情報に追加。
私の環境でもリダイレクト関連がおかしいです。IE4でproxy経由のアクセスを設定してgooの検索結果を「新しいウィンドウを開く」で表示しようとすると、100%「Object Moved」という画面になります。NN4では今のところ発生していません。IE4でもproxyを経由しなければ大丈夫のようです。
どうしようもないので0.9b9gに戻しました。
なお、「/」が二重になるエラーは、Windows98を再インストールしたら発生しなくなりました。謎です。
中田さん、すばらしいソフトをありがとうございます。
ちょっとわからないことがあるのですが。
インストールとローカルでの確認は出来たのですが、プロバイダから割り当てられた
アドレス+ローカルドキュメント\ でやっても、見ることが出来ません。
ISDNを使用しており、TAルータ(MN128-SOHO DSU)のDNS昨日をONにしています。
ですので、マシンのアドレスは192.168.0.3で、プロバイダから割り当てられた
アドレスは210.156.242.50になっております。この場合、外から見る場合は、
どのようにURLを指定したらいいのでしょうか。教えてください。
まずはAnHTTPDに感謝。そして中田さんに感謝です。
今回はエラーメッセージについて教えてください。
Error 302 リダイレクション
というエラーが表示されます。これは何が原因なんでしょうか?
これ以外にページにはこのドキュメントはここにあります。
と表示され、「ここに」がリンク先アドレスになっています。
当然クリックするとリンク先にとんで、正常にそのページを表示します。
なにが悪いのでしょうか?
お世話になっております.
httpdの実行速度がタスクトレイでアイコン状態とタスクトレイのアイコンをクリックして
ウィンドウを開いた状態では2倍位違うようです.
速度優先のため起動時からウィンドウを開いた状態にするオプションがあればいいな,と
思いますがいかがなものでしょうか.
中田さん、いつも、大変お世話になっております。
この度は、正式版発表ということでおめでとうございます。
いつも、わけのわからない質問の私ですが今日もそうかもしれません。/(-_-)\
WEB裏技で落としてきた簡易BBSのminibbs2 Vr 1.31を設置しようとしたのですが、
管理者パスワードを入力し、1回目の投稿を行うと2回目からはデータエラーで掲示板の
中身も見れず、もちろん投稿も出来ないという状態になります。
WEB裏技の方で確認したところ、
UNIXの cp コマンドはWINでは何で代用していますか?
それはcpと全く同じ仕様で処理されるものでしょうか?
と聞かれました。
anhttpdのVrは0.9gです。
どなたか、minibbs2を設置された方でうまくいった方はいらっしゃるのでしょうか?
下の件、#exec cmdでも発生します。perlスクリプトだけでなく普通のシェルコマンド(catなど)でも同様です。
1.00バグへの素早い対応、有り難うございます。
さて、下の渡辺さんのコメントにあるSSIのゴミですが、
私のところでも確認されました。
SSI出力の中で、改行コードで終了していないものに限って、
1〜十数バイトほどのゴミが後ろに付着するようです。
(私のところでは、#include以外ではこの症状は確認できていません)
確認が取れましたら、対策をお願いしたいのですが…
たびたびで申し訳ないです。
ANHTTPいつも重宝しています。正式版公開おめでとうございます。さっそくダウンロードしました(1.01)。
ところで、1.01になってから、SSIの出力にゴミがつくような気がします。具体的には、出力文字数が少ないときに環境変数SCRIPT_NAMEの値の後ろのほうがくっついて出力されてるみたいです。perl scriptに限りません。
もしかしたらこちらの勘違いかもしれないのですが、確認してくださいますか。
ps このコメント集への中田さんのきっちりした対応には頭が下がります。見習いたいです。
nishii さん
どうも。ご覧の通りで、先ほど 1.01 になりました。
External Proxy の件は了解しました。比較的容易ですので、早めにとりいれます。
TigerCat さん
どうもありがとうございます。
なるほど面白い用途があるのですね。
1.00 は 0.99 の次ということですが、ついでに beta をとってしまいました。
TEA さん、YMU さん、ならびにメールでご指摘いただいた方々へ、
1.00 のバグのご指摘ありがとうございます。
すべて確認できました(凡ミスでした)ので、急遽 1.01 に入れかえました。
お世話になります、西井です。
1.00正式版のリリースおめでとうございます。
かなり久しぶりの書き込みとなりましたが、
こまめに AN httpd のアップデートをチェックしておりました。
さて、Options/Proxy.Cache 項目についてリクエストがあります。
現在は http、ftp proxy が利用可能ですが、External Proxy を
http、ftp 用にそれぞれ設けていただくことは可能でしょうか?
はじめまして。いつもローカルでのテストに重宝させていただいています。
ところで、Ver. 0.9b9g までは、index.htm が index.html と同様
ディレクトリのトップページと判断されていましたが、
Ver. 1.00 から index.htm はトップページとは判断されなくなったようですね。
これは仕様なのでしょうか?
また、SSIで #include の動作がおかしくなっています。
(存在するファイルを指定しているのに file not found と出る)
設定その他は全くいじっていませんが、この症状はVer. 1.00を導入してから発現しています。
この症状が当方以外でも再現されるようでしたら、対策をお願いしたいのですが…
すぎうらです。
なかたさん、Aliasの設定を変えたらいけました。
どうもありがとうございました。
中田様
ご指摘ありがとうございます。
cgi-libの方の処理の問題とは思いもしませんでした。
中田様、お世話になりっぱなしです。ありがとうございます。
Ver1.00 リリースおめでとうございます。
なお一層のご活躍を期待しております。
で、
日ごろ私はSEをやっておりますので、本番サーバは結局Sunとか
シリコンとかのワークステーションで、Apacheやら、CERNやら、
NetscapeなどのWebサーバソフトを稼動させています。
何が言いたいかと申しますと、それに至るまでの、おエラ様との
打ち合わせで、ANHttpdのような簡潔明瞭なサーバを使って
プレゼンテーションを行うと、Internetの原理をさっぱり理解されて
いないおエラ様でも、理解と興味を示してくれるということです。
要は、あんたの会社のホームページがCGIを使うとこんなに変わって
設定はだいたいこんなことをやって、セキュリティの問題はこうだ、とか、
あんたの部署のイントラネットサーバでこんな仕掛けをすると、
こんな面白いことができるんだよ、ユーザ認証はこんな感じだよ。
てな事の説明が非常にやりやすく、ユーザもとっつきやすいのです。
今回、Ver1.00で表示が日本語になり、効果300%以上だと思います。
日本のインターネット常識向上の一環ともなると思います。
本番サーバの構築は我々がhttpd.confだのaccess.confだのを
ガリガリ書いて動かし、ユーザはANHttpdのデモで、我々の作業に
理解を示すと。いやぁ調子いいですよ〜。ありがとうございます。
いつも使わせて頂いております(^^)
最新のVer1.00に換えてみたところPerlCGIが正常動作しなくなりました。
前のバージョンになおしたところ正常動作いたしました。
確認していただけないでしょうか?
私は自宅(PC9821)と研究室(DOS/V)で使っているのですが、
どちらとも同じ現象が起きています。
具体的には、『minibbs』『minichat』などで、
bbsへの書き込み、chatへの入室ができません。
(エラーメッセージなどはありません)
post methodあたりの問題でしょうか?
白嶺さん、
Error 500 Can't find Content-Type で、Output Message: 以下 は、(j)perl が出しているメッセージです。
文法エラーがあればここに出ます。
(j)perl -c は、コマンドライン(MS-DOSプロンプト)で実行できます。
早速のご回答、ありがとうございました。
取りあえずテストはできるようになりました。
Error 500
CGI Error - can't find Content-Type
Illegal division by zero at ... line **.
という、我ながら呆れたエラーは出ますが。何分にも初心者ですので・・・
また質問で恐れ入りますが、AN HTTP で perl の文法テストなどをするにはどうしたらいいでしょうか。
宜しくお願いいたします。
さーかさん、
確かにそうですね。
(明日くらいに出す予定の) Ver.1.00 では直っています。
白嶺さん、
この Error 500 のメッセージは私が適当に作ったものなので、解説があるとすればここです。
この場合は jperl がみつからないので実行できない、というエラーなので、
Options/General の ExecProg for .pl, .cgi のところを jperl.exe のフルパスで記述して下さい。
現在 jperl になっていると思うので、そこを C:\Perl\bin\jperl.exe とかにするわけです。
すぎうらさん、
AN HTTPD の設定は変えていないでしょうか?
ドキュメントルートかエイリアス関係の設定などが考えられると思います。
中田様
>そうですね。おっしゃる通りで、AN HTTPD の Port を変えてもらって、
>http://host.domain:port/
>でアクセスしてもらえばいいと思います。
早々のご回答をありがとうございました。
早速やってみたいと思います。
中田さん こんばんわ
An httpdに http://hoge.hoge/../ でアクセスすると稲妻マークのまま
止まらなくなっちゃいます。
そんなアドレスにアクセスする人はいないでしょうけど、
これで攻撃受けるとつらひので対策をお願いします。m(__)m
昨日、AN HTTPDをダウンロードして使わせていただきました。
こんなに手軽に、自機をサーバ化できるとは思いませんでした。
使いこなすまでには、まだまだ遠い道のりですが。
早速で恐れ入りますが、お訊きしたいことがあります。
とある自作CGI(完成品ではありません)をローカルで走らせてみたところ、以下のようなエラーメッセージが表示されました。
Error 500
CGI Error - can't exec "jperl ローカルCGIファイル ", errorcode = 2, No such file or directory
こういったエラーメッセージの種別などが調べられる、できれば日本語のサイトをご存知でしたら、お教えいただきたいのですが。
突然で不躾ですが、宜しくお願いいたします。
すぎうらといいます。
中田さん、先日はいろいろと教えてくださって、
どうもありがとうございました。
今は学校のパソコンにAN HTTPDをインストールさせてもらっています。
今日Win98をインストールしてHPを見てみたのですが、
SSIがうまく作動せず、
<!--#exec cmd="./count/pcount.pl"-->
となっている部分が、
Can't open perl script ".\count\pcount.pl": No such file or directory
といったメッセージがHPに出てしまいました。
昨日までは問題なくちゃんと表示されていたのです。
ファイルの中身やディレクトリの位置関係などはまったく変わっておりません。
これはどういうことが原因なのでしょうか??
よろしくお願いいたします。
やまさん、
ローカルテストで localhost を使っていたとすれば、それはもちろん使えません。
それぞれのPCで自分自身を指すのが localhost(127.0.0.1)ですから。
ダイヤルアップ接続したあと AN HTTPD を起動するとそのときのホスト名(IPアドレス)が表示されます(あるいは winipcfg.exe でも確認できます)。
そのホスト名(IPアドレス)でないと他からはアクセスできません。
minibbs の $reload は、"http://localhost"を除いた相対 URL にしておくのがよいでしょう。
。。。という話ではないかな? どうもやまさんの話は理解するのが難しい。。。
よこおさん、
これはとりあえずちょっとわかりません。 minibbs.cgi は本当に書き換わっていないでしょうか?
私も少し調べてみて、何かわかったら、確認すべきところなどを書くことにします。
magata さん、
そうですね。おっしゃる通りで、AN HTTPD の Port を変えてもらって、
http://host.domain:port/
でアクセスしてもらえばいいと思います。
mhさん、
複数選択の場合は、(POSTの時は)標準入力に
name=value1&name=value2&name=value3
という具合に はいるはずです。
cgi-lib.pl の ReadParse などでは、NAMEが同じなのでうまくいかないのではないかと。
標準入力を読み込んで自分でばらすのがいいのではないかと思います。
Takaku さん、
どうもありがとうございます。
ローカル特有の問題もありますので、何かありましたらおたずね下さい。
でも
書き込みが出来ませんようで(-_-;)
http://localhost/httpd-docs/minibbs.cgi
中田さん、認証の回答ありがとうございました。
ようやく認証のところの設定方法が理解できたような気がします。
PerlISは私自身にCGIの知識が無いため対応されられるように改造できそうに
ないのであきらめました。(^-^;)
しかし、今日新たに大きな問題が起きてしまいどうにもならなくなってしまいました。
FREEのCGI掲示板のminibbsというCGIを組込んで動かしていたのですが、
急にエラーメッセージを出すようになってしまいました。
コマンドまたはファイル名が違います.というメッセージが20行くらい
続いて
HTTP/1.0 200 Document follows
MIME-Version: 1.0
Server: AnWeb/0.9b9g
Date: Friday, 18-Sep-98 09:32:54 GMT
Connection: Keep-Alive
Pragma: no-cache
Last-Modified: Friday, 18-Sep-98 09:32:54 GMT
コマンドまたはファイル名が違います.
コマンドまたはファイル名が違います.
Set-Cookie: http://私のPCのIPアドレス/~fhc/cgi-bin/bbs2/minibbs.cgi=name:よこお,email:,pwd:y; expires=Sunday, 18-Oct-98 09:32:56 GMT
Content-type: text/html
と出力するようになりました。でも、エラーは出ますが投稿はされるのです。
もう1台のテスト機の方で同じCGIが動いているのでCGI自体のエラーでは
無いはずなのです。
状況をうまく伝えられませんが、ここはどーなってるの?とかありましたら
言ってください。
お願いします。
いつもどうも・・・
httpdで自分がサーバになる事が出来るわけですね。
そのときのURLというのはlocalでtestをしたときの
アドレスでよいわけですか。またそのときは
電話回線はつないでおかないといけないわけですよね。
ほんとに初歩の初歩で申し訳ありません。
よろしく。
http://localhost/httpd-docs/minibbs.cgi
中田様、はじめまして。
An-httpd、面白そうなので、是非使ってみたいと思っています。
一つ教えていただきたいのですが、
現在、Windows-NT4.0WSで、WWWサーバをたちあげているのですが、
NTのサービスとhttpdのサービスは両立するのでしょうか?
httpdの方にportの指定を付けてやれば良いのかなと思いますが、
これで同じドメインネームが使えるようになるのでしょうか?
貴ホームページの中を一通り見たつもりですが、
よく分かりませんでした。
教えていただければ幸いです。
中田様、ご無沙汰しております。
度々申し訳ありませんが、質問があります。
POSTを用いてCGIを起動する際に渡されるFORMの値なのですが、
同じNAMEのチェックボックスを複数選択した際には
どのようにCGIに渡されているのでしょうか。
どうもチェックボックスのVALUE値が、
HTML中で一番最初に用意されているものだけしか
CGIプログラムに渡ってくれないのです。
お忙しいとは思いますが、よろしくお願いします。
こんないいHTTPDを知りませんでした!
今まで英語の文献とにらめっこしていた僕にとって(しかも英語のためSSIが使える
のかなどがはっきりしない)とても役に立ちました。
めんどくさかったので今までは強引にローカルではなくサーバで動作を確認
していました…。^^;
しかもこれがフリーとは!
これからはこれをCGI開発に役立て、世のため人のためとなりたいと思います!
よこおさん、
認証については、確かに /~fhc/sec と入れるのは違和感があるかもしれませんが、この仕様でいいかなと思っています。
PerlIS(ISAPI)では、
(1)パイプ入出力
(2)外部コマンドの実行
(3)ディレクトリの変更
(4)$ARGV
などは動きません(使えません)からちょっと制限がきついかもしれません。
ほとんどの場合、PerlISで動くように手を入れることは可能です。
過去のログなどをご覧になってみてください。
まるこさん、
httpd を入れて NextFTPが動かなくなる、ということはないとは思うのですが、
でも、それ以外に考えられない、ということのようですから、、、
まずは
(1)NextFTPが動かなくなるのは、httpdを起動させているときか、起動させていなくても同じか。
(2)NextFTPが動かないというのはどのように動かなくなるのか。たとえば、起動しない、接続できない、ファイル転送ができない、など。
の2点を教えてください。
ありがとうございます。中田さん、認証のところでの間違いがわかりました。
中田さんの指摘された通り、/fhc/secを/~fhc/secとしたらうまく行きました。
まさか、~が入るとは思いもしませんでした。(^^ゞ
あと、PerlISを組込んだらWEB裏技で入手した掲示板MinibbsとかCGIカウンタ
等が動かなくなってしまったのでuse perlIS dll for extのチェックをはずして
元に戻しました。ヘルプにも書いてましたがPerlISの制限事項として
CGIは動きにくくなっているのでしょうか?
はじめまして。まること申します。
大変、初心者の質問で申し訳ないのですが、httpdを入れて、nextFTPなどのソフトが動かなくなるということはあるのでしょうか?
今まで問題なく使えていて、何か新しく入れたものといえば、httpdしかなくて。(T_T)
変な質問で申し訳ありません。
yan さん、
Win98 上の NC4.05 の POSTメソッドで何かあるのでしょうか。。。
ちょっとわからないので、そうなったところで httpd を強制終了し、そのあたりの httpd.log, errors.log をメールで送っていただけますか?
それと、手元で再現できないかやってみたいので その minibbs.cgi もお願いします。
Connected to で止まっているなら(IEではOKなのですし) minibbs.cgi 自体は関係ないとは思いますが、念のため、です。
よこおさん、
基本認証については /path を単に / としてやってみてください。
すべてのアクセスに対してユーザ認証がおこなわれるはずですから。
また、/path を /fhc/sec とした場合、URL は http://xxx.xxx.xxx.xxx/fhc/sec という形でないといけないわけですが、そうなっているでしょうか?
ホスト名(アドレス)のあとすぐに "/" そして "fhc" が続くという意味ですが。
お応えありがとうございました。うまく行きました。
またいろいろ、試してみたいと思っています。
御面倒をおかけしております。
>稲妻のアイコン上にマウスポインタをもっていくと、止まっているところが表示されます。
>その表示は何でしょうか?
connected 127.0.0.1です。
>念のため、 AN HTTPD のバージョンの詳細もお知らせ下さい。
0.9 beta 9gです。
現在も状況は変わっておりません。どうぞご教授下さい。
おはようございます。中田さん。<(_ _)>
PerlIS(Perl for ISAPI)をダウンロードしてきました。明日にでも
やってみます。
IP Address の Allow は *.*.*.* としました。
AuthName Path Username/Group のところは、
ABCDE:/path:username/group名としてあるのが1行だけです。
/path のところは、HTMLファイルが置いてあるところが、/fhcというところ
なのですが、制限したいディレクトリは/fhc/secというところなのです。
なので、/secとしたり/fhc/secとしたりしていますがうまくいきません。
中田さん、
ついにVer1.00ですか。楽しみです・・・。
APOPとログファイル自動更新の点も実現の日を楽しみにしています。
やまさん、
動き出したのですね(?)
OPTION でイメージ の質問は別にかまいませんが、残念ながら私はわかりません。
(どこかでそれをやっているページがあったらそのソースを見る、とか。。。)
よしひろさん、
念のため、AccessControl の一番上のチェックは(入れてあるなら)はずしておいてください。
AccessControl をしていなくても、index.html がないと、そのエラーメッセージが出ます。
Options/General の設定は、
DocumentRoot:[a:\www ]
[v][/~test ] -> DocRoot\[test\public_html ]
として下さい。
これで、http://127.0.0.1/~test/ で index.html が表示されると思います。
また、www フォルダの中に index.html がなければ、http://127.0.0.1/ では Error 403 になります。
http://127.0.0.1/readme.html で readme.html は表示されるはずです。
よこおさん、
Perl CGI は PerlIS の方が速いと思います。PerlIS(Perl for ISAPI)は ActiveState にあります。(ホームページにリンクがあります)
アクセス制御については、
IP Address の Allow は *.*.*.* と入れておいてください。
AuthName Path Username/Group のところは、
ABCDE:/path:username
という形の1行だけでしょうか?
/path のところは / から始める必要があります。(ドキュメントルートを / とする仮想絶対パスです)
西岡さん、
ログファイルの更新は次の次、APOPはその後くらいを考えます。
ちょっと今、次のバージョンを 1.00 として出そうと準備中ですが、少々てまどっています。
今度は出ました。再三ご心配をおかけしてすみません。
記録の出入力のエラーが出ました。
内容にOPTIONでイメージを入れたいときはどんな記述になるのでしょうか。
以下はそのひっかかった部分のようです。こんな質問をしてよろしかったですか?
print "<tr><td>イメージImages:</td><td colspan=16><SELECT name=\"image\" size=1>\n";
print "<OPTION selected value=\"\" checked>なし\n";
print "<OPTION value=\"bk01.gif\" WIDTH=60 HEIGHT=60>(1)ありがと><img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\ bk02.gif\" WIDTH=60 HEIGHT=60>(2)こんにちは><img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk03.gif\" WIDTH=60 HEIGHT=60>(3)驚く<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk04.gif\" WIDTH=60 HEIGHT=60>(4)困った<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk05.gif\" WIDTH=60 HEIGHT=60>(5)ごめんなさい<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk06.gif\" WIDTH=60 HEIGHT=60>(6)笑う<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk07.gif\" WIDTH=60 HEIGHT=60>(7)おこる<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk08.gif\" WIDTH=60 HEIGHT=60>(8)うとうと<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk09.gif\" WIDTH=60 HEIGHT=60>(9)冷や汗<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk10.gif\" WIDTH=60 HEIGHT=60>(10)しらける<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk11.gif\" WIDTH=60 HEIGHT=60>(11)熟睡<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk12.gif\" WIDTH=60 HEIGHT=60>(12)てれる<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk13.gif\" WIDTH=60 HEIGHT=60>(13)自慢する<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
print "<OPTION value=\"bk14.gif\" WIDTH=60 HEIGHT=60>(14)泣く<img src=\"http://www1.cplaza.or.jp/auth/kingdom/bbs/sdata/datal1.no1/$imgs\">\n":
どうしたのかなあ
パスも間違っていないようだけど
nagashimaのあとのminibbsは認識してくれないし
目下動いているものを移動しても試すことも出来ないでいます。
すいません。初歩的なことなんですが、
自宅のパソコンでCGIのテストをしたいと思い。サーバをダウンロードしました。
問題はアクセスできないんです。
http://127.0.0.1/といれても localhostで試してみても、
http://127.0.0.1/~test/ なんていろいろためしてみても
Error 403
You are not allowed to get Index of this directory
と表示されて自分のホームページを見ることができません。
アクセスコントロールの設定が悪いんでしょうか?
後の欄は、サポートのホームページを見ながらやったのですが・・
とりあえず、wwwというフォルダを作ってその中に解凍しました。
大体設定はa:\www\・・・となっています。
そして、wwwのなかに、testフォルダを作って、そのなかにpublic_html
フォルダを作って、index.htmlファイルをおいています。
簡単なミスかもしれませんが、わからなくなってしまいました。
なお、IE4の 設定も直してみなした。
すいませんお願いします。
中田さん、いつも、迅速な回答ありがとうございます。<(_ _)>
指示どおりNEVERにしてみました。
若干早くなったように思えます。PerlISを入れたら早くなるとの
事でしたが、見つけられませんでした。/(-_-)\
あと追加質問なんですが、アクセス制限をしようと思っています。が、
アクセスコントロールのところがヘルプを見てやっても
うまく行きません。
アクセスコントロールチェックオンにして、Pathは制限したいディレクトリを
入れてます。IPアドレスでの制限はしないのでALLOW、Deny共にブランクに
しています。Authnameは認証名ということですのでユニークに名前を記入しました。
Path名は制限したいディレクトリを入れ、ユーザ名を1つAというのをいれました。
次に、User/Passwordに上で指定したユーザAとパスワードを設定しました。
これでやっているのですが、なんにも起こりません。
きっと、大ボケしてるんだろうと思うのですが、説明を見てもこれ以外の
指定方法がわかりません。宜しくお願いします。
中田さん、
上手くエラーを取り除くことが出来ました。
私の場合、Content-typeの指定をHEAD内にMETAタグで記述していたのですが、
ご説明に従ってHEADとBODYに一行置くことですんなりと行きました。
どうもありがとうございました。
中田さん、ご無沙汰しています。
お陰様で、AN-HTTPはLAN上のProxyサーバとしても大変重宝しています。
久しぶりに機能の追加希望を書かせていただきます。
1.APOPへの対応
最近、私が利用しているプロバイダでもメールサーバへの接続にAPOPが使える
ようになり、ローカルなサーバPC上から直接プロバイダのメールサーバに接
続するときはAPOPを使っていますが、ローカルなクライアントPCからProxy経由
でプロバイダに接続するときもAPOPが使えると嬉しいです。
2.各ログファイルを自動更新する機能
AN-HTTPをProxyで使っているとログファイルがあっという間に大きくなってしま
います。そこで、ログファイルが例えば日ごとに又は月毎に自動更新されるようにな
っていると有り難いです。
例:er199807.log, er199808.log, er199809.log,...
また、ログファイル名に付ける「年月」、「年月日」等を選択できるようになってい
るとさらに有り難いです。
以上、ご検討いただけると幸いです。
やまさん、
minibbs にアクセスする URL が、
http://localhost/cgi-bin/minibbs.cgi
だとしたら、$reload はそのまま
$reload = 'http://localhost/cgi-bin/minibbs.cgi';
とします。
minibbs.cgi にアクセスするときに使うURLをそのまま $reload に設定する、ということです。
それとも、URLをたとえば上のように指定しても minibbs が動かないという意味でしょうか?
だとしたら、$reload は関係なくて、DocumentRootの設定 や minibbs.cgi をどこのフォルダに置いたかなどの問題になります。
再三すみません。
フルパスといいますと次の様で良いのですか?
$reload = 'http://localhost/cgi-bin/inibbs.cgi';
not foundになってしまいます。
樋口さん、
ExecProg for .pl, .cgi のところを C:\www\perl\bin\perl.exe としてみてください。
多分、Perlを C:\www\perl にインストールされたのだと思うので。
(それがそうではないということであれば、perl.exe がどこにあるかをフルパスで記述してもらえれば。)
mhさん、
そのエラーは Content-type: はあるのに、その後、ヘッダ部とボディ部とを分ける(改行のみの)空行がない時にでます。
ヘッダが Content-type: だけなら、よく "\n\n" と改行を2つつけますが、2つ目の改行が空行です。
ヘッダの最後の行は "\n\n" とするか、最後のヘッダ("\n"で終わる)の後に "\n" をもうひとつ追加してみてください。
やまさん、
$reload のところは、最初に minibbs.cgi にアクセスする URL を http:// から入れる、のがよいでしょう。
ファイルがみつからないと、*.cgi の場合は、404 Not Found のかわりにそのエラーになります。
よこおさん、
一般の HTML も含めてのパフォーマンスに影響するのは、Options/General の Get REMOTE_HOST のところです。
そこを Never にするのが精一杯の速さになります。(Never だとDNS検索をしなくなります)
yan さん、
そうなると、ちょっとわかりません。。。なんでしょうね(?)。。。
稲妻のアイコン上にマウスポインタをもっていくと、止まっているところが表示されます。
その表示は何でしょうか?
ただ、それがわかっても原因がわかるかどうか自信はありません。
念のため、 AN HTTPD のバージョンの詳細もお知らせ下さい。
0.9 beta 9 はわかっているのですが、後にアルファベットはついていないバージョンでしょうか?
追伸
httpdの設定でPERLのパスを
b:\www\perl→perlに戻しても駄目でした。
しかしながらエラーコードが変わりました。
以下の通りです。
CGI Error - can't exec "perl B:\www\c3z0026\public_html\tbbs.cgi ",
errorcode = 2, No such file or directory
こんにちは。かつて質問したことがある樋口と申します。
昨日WINDOWSが止まってしまい、
再インストールしました。(原因は別のアプリケーションです。)
当然anhttpも再インストールしたのですが
CGIがうまく動きません。
パスやhttpの設定はoidonさんのを参考にさせていただきました。
エラーメッセージは
CGI Error - can't exec "b:\www\perl B:\www\c3z0026\public_html\hello.cgi ",
errorcode = 5, Permission denied
です。PERLへのパスが通ってないのでしょうか?
ご指導よろしくお願いします。
中田様
先日はご回答ありがとうございました。
あれから導入したVersion 0.9 beta 9は順調に動作し、
作業が進められるようになりました。
ところが、その作業においてひとつ問題が起き、
それについて今一度質問させて頂きたいのです。
POSTを用いた伝言板のcgiを作成しているのですが、
cgiを実行するとエラーメッセージが表示されるのです。
エラーメッセージの表示に関わらず
伝言板の動作自体は上手く行っているのですが、
どうしてもエラーの原因が分かりません。
そこで、この記述がどういった意味を示しているのか
お教えいただけないでしょうか。
初歩的な質問で申し訳ありませんが、よろしくお願いします。
エラーメッセージ:
Error 500
CGI Error - can't get start of body
すみません、$reloadの記述について教えてください。
httpd/cgi-bin/minibbs.cgi
このminibbsのところがhtmlファイルだとすぐ開いてくれますが、
cgiはcan not find or not executableになってしまいます。
どう記述すれば良いのでしょう。
いつもお世話になっております。<(_ _)>
社内の私が使用しているノートパソコン上でanhttpdを動かしているのですが、
アクセスがかなり遅いのです。
ノートパソコンのスペックはMMXペンティアムの200mhzで
anhttpdを動かしているときは他のアプリケーションは動作させて
いないのです。
ホームページ自体はそんなに重くないし、回線も専用線でかなり早い
のに、この重さは?と悩んでいます。なにか、解決策はあるのでしょうか?
それとも、PC上で動作する以上しょうがないのでしょうか?
なんか漠然とした質問になってしまいますが、宜しくお願いします。
他の原因とはAnHTTPDには問題はないのですが、どうもWin98はリソースが減少すると回復しないことが多いので……
最近ではWin98で動作の問題のないWin95用アプリケーションででも、対応ソフトに比べるとリソースが回復しにくいとか話が出てるようです。
私の経験しているところでは、昔IE3でリソースリークがあったときのようにOSの動作が重くなりフリーズすることがあります。
重くなったときにリソースメータでみても0に近くははなってない様です。報告したWin95でのリソース減少の場合は0までいったのですけど。
中田 様
私のような初心者にも、ご丁寧に教えていただきありがとうございました。
すべてのCGIが、問題無く動くようになりました。感動しています。
一人で悩んでいた時のことを考えると、まるでうそのようです。
WIN98を入れて使っていますが、システムリソース問題は、過去の発言で理解しました。
今後に期待しています。
いろいろと、本当にありがとうございました。大事に使わせていただきます。
また、何かありましたら、どうぞよろしくお願いいたします。
失礼します。
>中田様
早速のレスありがとうございます。
>(1)書き込みできない時のエラーメッセージ
メッセージはありません。
ブラウザはアクセスしている状態のままですし、httpdのアイコンも稲妻マークになったままです。
>(2)NCでプロクシの設定をしているかどうか
インターネットに直接接続するになっています。
>(3)$reload の設定内容
$reload = 'http://127.0.0.1/~yan/minibbs.cgi'です。
IEでは、全く問題ないんですよ・・・。
引き続き御指導下されば幸いです。
yan さん、
NCでの書き込みができない、という場合、何か(エラー)メッセージは表示されないでしょうか?
マスターキーの設定もできなかったことからすると、スクリプト中の$reload の設定とNCのプロクシの設定の関係かとは思いますが。
とりあえず
(1)書き込みできない時のエラーメッセージ
(2)NCでプロクシの設定をしているかどうか
(3)minibbs.cgi を指定する URL(http://以下) と、$reload の設定内容
を教えてください。
ぴかさん、
リンクもしていただきまして、どうもありがとうございます。
智猫さん、
他の原因というのはたとえばどのような場合なのでしょうか?
さしつかえなければ教えてください。
TORAさん、
>flock() is not available on Win95!
は、Perl for Win32 が実行時に出すエラーメッセージです。
Win95のシステムでは flock() が使えないのでやむをえずこういうメッセージを出すようにしているようです。
対策は、スクリプトの中で flock というところを #flock と # をつければとりあえずは動くと思います。
Perl スクリプトでは # 以降は無視するので、flock を実行しないようにしてしまうわけです。
flock はファイルアクセスの競合を避けるために使うので、上のように flock を無効にした場合は、Options/General の SingleThread をチェックしておいた方が安全です。
jgawk.exe は、これがないとエラーになるというだけのことなので、ないとだめということはありません。
そのサンプルとSSIのサンプルのカウンタがエラーになるだけで、Perlスクリプトの方は関係しません。
えむけいさん、
そうですね。
gethostbyname は使っているのですがアドレスリストの最初のものしか見ていません。全部見れば出てくるのかもしれませんのでやってみます。
CGI初心者さん、
Cでも(なんでも) CGIとして作ったプログラムであれば動きます。
Cで作ったものが *.exe の場合は、とりあえずは /cgi-bin の下に置いた方がいいと思います。
GET メソッドのときは、その他のディレクトリだと ? をつける必要がありますので。
*.exe を *.cgi にリネームして、Options/General の check .cgi if script/exe にチェックを入れる、という手もありますが。
はじめまして。
AnHTTPdを使わせて頂いております。
質問ですが、ネットサーフレスキューのMiniBBS v8.8を設置する際、
NC405だと最初のマスターキーの設定画面は表示されるのですが、
それから先に進むことが出来ません。
IE401も同じ状況かと思い試してみますと、ちゃんと作動するの
です。
その後、NCでMiniBBSにアクセスすると正常に表示されるのですが、
今度は書込みが出来ません。アクセスはしているのですが表示されな
いのです。
IEでは正常に作動するのですが、これは一体どのようなことが原因
しているのでしょうか?
どうぞ教えて下さい。
[環境]
Version 0.9 beta 9
Windows98
NC405;IE401
中田さん、御無沙汰しています。
以前(確か)「ひかる」というハンドルで何度か書き込みさせて頂いたものです。
仕事で社内用(LAN接続)のHPで使うCGIを作るためにANHTTPを使わせて頂いていました。
でも、CGIスクリプトを組むことが面白くなって、最近では自分のHPでCGIを公開したりしています。
もしよろしければ、ANHTTPでデバッグしたCGI・・・大したものはないですが・・・(^^ゞ
をいじりにお立ち寄り下さい。
URL:A href="http://www2s.biglobe.ne.jp/~immor/index.cgi
とりあえず、お礼とご挨拶ということで・・・
中田さん、Win98でのリソース減少対策期待しています。
しかし、他の原因でリソースが減ってから戻らないようなので対策していただいても、長時間のPPP逆流運用は無理かもしれません。
中田 様
前回は、ふざけた名前ですいませんでした。TORAと申します。
私のような無知な者に、丁寧に教えていただき、本当にありがとうございます。
その後、perlもc:/perl/bin/perl.exeへ入れ直して、フルパス記入でminibbsは
動くようになりました。ありがとうございました。ただ、本命のチャットが、
Error 500
CGI Error - can't find Content-Type
CGI Output Message:
flock() is not available on Win95!
となってしまいます。
手持ちのもうひとつのチャットで試してみたところ、初期画面が出たので、こちらは大丈夫かと
思いましたが、リダイレクトされる時に同じ結果になってしまいます。
CGIのプログラム的な問題であったら、もう諦めるしかないと考えていますが、
もし何かわかりましたら、教えていただけたらと思います。
で、前回教えていただいたjgawk.exeは、まだ入れていませんが、無いとダメなのでしょうか?
お忙しいところ恐れ入りますが、よろしくお願いします。
失礼します。
>それならグローバルIPアドレスを調べて表示しろ、と言われそうですが、簡単にそれを
>調べる方法がよくわからないでいます。
はずしているかもしれませんが、gethostbynameでホスト名に対応するIPアドレスがすべて
取得できませんか?
httpdは、C言語で作ったものも動くのですか?できれば、Cでやりたいと思っているので、教えてください。よろしくお願いします。
初心者さんへ補足。
CGIサンプルの3つ目が、漢字だと %NN などの16進表記になるのはそれで正常です。
生のデータはそういう形で送られるということがわかるようにそのまま表示するサンプルです。
(無知な)初心者さん、
Perl の CGI については、
まず、Options/General の parse #! line のチェックは はずしてください。
そして、Options/General の ExecProg for .pl, .cgi のところに perl.exe をフルパスで入れてください。
(たとえば C:\Perl\bin\perl.exe とか。perl.exe がインストールされているところを確認して入れてください)
なお、perl.exe なら jcode.pl を使えます。
CGIのサンプルについては、
(1)1、2、5のダウンロードしてしまう対策:
エクスプローラを開いて、表示/オプション/ファイルタイプ で 「MS-DOSバッチファイル」を選び、「編集」で「内容の種類(MIMEタイプ)」のところが空白だと思うので text/plain といれてください。
(2)4つ目のエラーは jgawk.exe がないためです。
Vector Software PACK の AWK のページから jgawk(Gnu Awk (gawk) 2.11.1 + 3.0 日本語対応版 MS-DOS用実行形式)をダウンロードして、適当なフォルダに解凍し、jgawk.exe を C:\Windows\command などの(パスの通った)フォルダにコピーしてください。
mhさん、
バージョンアップ方法は上書き解凍です。
0.9 beta 5c からですと、httpd099g.zip または httpd099g.exe をダウンロードする必要があります。
前の実行ファイルをとっておきたい場合は、別のフォルダに解凍してください。
別のフォルダから httpd.exe を起動しても、設定はレジストリに保存されている以前のものを使います。
それで様子をみてもらう方がいいかもしれません。
はじめまして!
すばらしいソフトなのに無知なために、CGIがうまく動かず苦労しています。
過去の発言もたくさん見て、同じようなケースもあったのですが、
よく理解できなかったので、ここで質問させていただきます。
まず、jcode.plは使えないのでしょうか?
エラーは、
Error 500
CGI Error - can't exec "C:/home/cgi-bin/chat/perl C:\home\cgi-bin\chat\pentr.cgi ", errorcode = 2, No such file or directory
です。
全てのCGIファイルの先頭行は、
#! C:/home/cgi-bin/chat/perl
に書きなおしてあります。
CGIサンプルは、6つのテストの結果が、
1つ目 ダウンロード画面になり、test.batが保存されます。
2つ目 1つ目と同じです
3つ目 英数字なら、成功です。
4つ目 何を入力しても、「入力された文字列は、コマンドまたはファイル名が違います. ですね。」になります。
5つ目 ダウンローダ画面になります。input4.batが保存されます。
6つ目 日本語でも成功です。
馬鹿な質問かもしれませんが、よろしくお願いします。
初めまして、mhと申します。
私、現在仕事場でwebサーバに関しての作業を行っていまして、
AN HTTPDの0.9 beta 5cが入っている環境を割り当てられました。
そこでこちらのホームページを見たところ、以前のものだと分かり、
VerUpを行いたいと思ったのですが、何かいい方法があれば是非お教え下さい。
ご多忙とは思いますが、なにとぞよろしくお願い致します。
経過報告。
Win98(Win95も?)のリソースについてはめどがついてきました。
全く減らないというわけにはいきませんが、ほとんど減らないくらいにはできそうです。
なお、すぎうらさんの件は、別途メールで詳細をお聞きしているところです。
中田さん、ご回答どうもありがとうございます。
しかし、http://210.161.249.122/ の方でもアクセスできないのです。
こういう場合はどうしたらよろしいのでしょうか??
宜しくお願い致します。
中田様
早速ご回答ありがとうございました。
新バージョンを楽しみにしています。
localhost……の件につきましては、AccessControlをoffにすれば良いのですね。
簡単なことなのに、気がつきませんでした(^^;;;
すぎうらさん、
http://210.161.249.122/ でアクセスできるのでしたら、それでいいのだと思います。
(それでアクセスできないようでしたらルータ自体のIPアドレスになってしまっているのではないかと思います)
192.168.*.* は確か プライベートアドレスとして使うIPアドレスですから、ルータの手前のLAN内でのみ有効なアドレスです。
つまりインターネット側からみた(グローバル)アドレスは 210.161.... のはずです。
AN HTTPD は一番手近なLANのアドレスしか見ませんから 192.168.... になってしまいますが、そのアドレスは(ルータおよびPCの)LAN内でのみ有効です。
多分、ルータの設定でグローバルとプライベートとの変換をするので、インターネット側から見れば 210.161.... が その 192.168... になるはずです。(少なくともそのように設定することができるはずです。)
他から直接(プライベート専用の)192.168.... を指定されると、どこへつないだらいいかわからない、ということになります。
それならグローバルIPアドレスを調べて表示しろ、と言われそうですが、簡単にそれを調べる方法がよくわからないでいます。
那由汰さん、
基本認証の設定の Edit (右クリックのメニューも)はおっしゃる通りで、おかしいです。
ちょっと前にメールでもご指摘いただきまして、手元の(作りかけの)次のバージョンでは直しました。
他の懸案もいくつか対策してから出したいと思っていますので、もう少々お待ち下さい。
なお、localhostの認証のON・OFFというのは、基本認証部分のON・OFFという意味でしょうか?
(IPアドレスの許可拒否を含めての AccessControlのON/OFFはできますからそのように理解しましたが)
横尾@福岡在住です。
<!--#exec cmd="type ./count/day.txt"-->としたら
表示されました。catコマンドがUNIXであることは知ってたんですが、
まさかtypeコマンドで代用できるなんて初めて知りました。
まだまだ、知らないことが多すぎる私。(^-^;)
中田さん、ありがとうございました。<(_ _)>
適切なアドバイスありがとうございました。
ご指摘のとおりでした。これからもよろしくお願いします。
はじめまして。
今AN HTTPを試しているのですが、AN HTTP上で、
addr = 192.168.1.2と表示されているのに、
エスネコさんのPPP逆流計画で登録したら
http://210.161.249.122/となってしまいました。
また友達に、192.168.1.2の方へアクセスしてもらっても
だめでした。
なぜでしょうか??
ちなみにぼくはOCNエコノミーを使っているのですが、
IEの設定で、
【プロクシサーバを使用してインターネットにアクセス】
のところはチェックしていません。
中田様
いつも、貴作 AN_HTTPDを使わせていただいています。
おかげで、自宅からの発信の楽しさを知ることができました。
貴作 AN_HTTPDのこれからの進化発展をお祈りいたします。
ところで、バグらしきものを発見したので対応していただけると幸いです。
症状
Options>General>AccessControl の AuthName,User/Password,Group の各
項目の編集機能に異常があるようです。
例えば、Group の編集機能を例に取ると
複数のグループを登録しておいて、最上段以外のグループ名にフォーカス
し、EditMembers ボタンを押すとフォーカスした位置によらず、常に最上段
に表示されているグループが編集エリアに表示されます。また、この状態で
OK ボタンを押すと、編集エリアに表示されている(つまり最上段の)グループ
の内容が書き込まれます。
要するに、書き込みは正常に行われているが、読み込まれる初期値が常に
トップに表示されているグループになってしまうようです。
Group の編集機能を例に説明しましたが、 AuthName,User/Password につい
ても同じ現象が見られます。
あまり使う機能ではないので、大きな問題ではありませんが、新規の
メンバー登録が面倒です。ご多忙中とは思いますが、対応していただけると幸い
です。
また、localhost でアクセスしたとき認証機能が働くと面倒です。確認の
ために、この機能がなくなってしまうのも困りますので、できましたら、こ
の機能のON・OFFが可能になると便利なのですが。よろしければ、こち
らも対応していただけると幸いです。
やまさん、
AN HTTPD をインストールしたら、Perlをインストールすればいいのだと思います。
その次の話でしょうか?
こんにちわー。がんばってますねーあいかわらず。
と、きてみたらIP拒否が可能になってる、、!!!!!
早速ダウンロードしてつかってみますぅ。
中田さんありがとー。
これであのいまわしいアクセス者を拒否できそうです。
安心してねむれそうです。あはは。
こんにちは。おだわら@桶川です。
早速のレスどうもありがとうございました。
私の所(os)にはgccがないみたいです..T_T
教えてくれたディレクトリにccはあったんですが...^^;
どうもありがとうございました。
またはじまけらやりなおしです。
CGIを試すのにどうやったけかなあ。
あれだとゆっくり電話代などの心配なしに
いつまでも楽しみながら出来たのに。
インストールはOKです。
hideさん、
思う存分使うといろいろ出てくるかもしれません。
問題が出てきたらおたずねください。
おだわらさん、
私のところでは /usr/local/bin/gcc があるようです。(gcc v2.6)
ついでに cc だと /usr/bin/cc, /usr/ucb/ccがあります。
自己レスです。
すみませんでした。過去のログをみて1998/08/06 21:49 の発言で解決しました。
これから思う存分使わせていただきます。
こんにちは。始めましておだわら@桶川と申します。
AN HTTPDいつも使わせていただいております^^
さて..AN HTTPDとは関係ないんですが、中田さんもRIMユーザですよね
..で私もRIM使ってるんですが、どうもgccが動かないようでして、サーバに
cgiを実装できずに困っています...
なんか思い当たることや、使い方なんかでピンときたら..教えていただけると
ありがたいです^^;
ちなみに..gccと打つとファイルがないよーってエラーが帰ってきます...T_T
AN HTTPDに関係ない話題ですみません...
会社のマシンにインストールしましたがうまく動きません。
使用マシンは専用線で接続されており、グローバルIPが振られています。
httpdはダイヤルアップの設定と同じでいいのでしょうか?
24h電源を入れておいていろいろ実験したいのです。
よこおさん、
day.txt がテキストファイルなら、cat のところを type とすれば動くはずです。
cat というのは UNIX では標準コマンドですが、Windowsにはありません。
cat の後にファイル名ひとつ というときは Windows の type とほぼ同じ動作をします。
type に書きかえたくなければ、UNIXコマンドを入手するかバッチファイルを作るかということになります。
バッチファイルでやるなら、上の場合でしたら、C:\Windows\command に cat.bat を作り、中身を
@echo off
type %1
とするわけです。
cat 以外にも、ls や sendmail を使っているものもありますから、Windowsで動くものを手に入れる方がいいのかもしれません。
和久田さん、
おそらく jperl.exe を使っていると思いますので、perl.exe を使うようにしてください。
エラーメッセージは jperl が出しているメッセージで、ちゃんとした漢字ではない、というような意味だと思います。
perl は漢字コードのことなど知りませんが、jperlは、漢字の1バイト目の文字があったら2バイト目がないとエラーを出します。
jcode.pl は、perlで使うことを想定しているようで、漢字の1バイト分だけを使っているところがあります。
智猫さん、
なるほど。そうすると、Winsock との関係もあるのでしょうか。。。
いわゆる昔のファンクションコールとかの関係かもしれません。ちょっとあぶなそうなところを調べてみています。
いつも、ANHTTPDを使わせて頂いています、横尾@福岡在住と申します。
WEB裏技に設置されていました、グラフィックアクセスカウンタプロというCGIを
動かそうとしているのですが、<!--#exec cmd="cat ./count/day.txt"-->というコマンド
が、認識されません。catコマンドはANHTTPDでは認識されないのでしょうか?
利用させていただいています。感謝
さて、win98にperlをセットしcgiを実行しようとすると以下のようなエラーメッセージが出ました。
tr : both end of - should be kanji at ./jcode.pl line 237.
どういう意味なんでしょうか?
win95で同じ設定のものはエラーになりません。初心者ですいません。
リソース現象といえば、私のところではWin95でも発生しました。最近なんですがソケット関連のハンドルがうまくPerlISで動かなかったので、PerlISを使用しない設定にしてところCGIを実行するたびにしソースが減少していき、最後にはハングアップしてしまいました。
現在はWin98環境にしてるんで再現できませんがこういう現象があったということで報告しておきます。
Win98はなんかほかの部分でもリソース減少する原因があるみたいです。なんか急激に減ってくような……
田中さん、
たしかに Win98上で CGI もリソースを消費するようです。
毎回2%くらいでしょうか?
Win98のリソースの問題はちょっと手が出ない状態でいます。
ISAPIでは発生しないことから Win98上の command.com の問題だろうと思っていますが、今のところ httpd 側での有効な対策が出せないでいます。
httpd とブラウザを一度閉じても復帰しないようでしたら、残念ながら方策がありません。
現在の CGI/SSI処理の問題をつめながら、リソースの話もなんとか解決しようとしていますが。。。
Win98でCGIを動かすと、SSIでなくてもリソースを食ってしまい、
最後にはリソース不足で動作不能になってしまいます。
特に、チャットプログラム等、オートでリロードをかけるような
CGIはあっという間にリソース不足になり、Winを再起動しなくては
復帰できなくなってしまいます。
この現象は、なんともならないでしょうか??
中田昭雄さん:
:>Get Hostname のチェックをはずしてみてください。
ありがとうございます。治りました。
kamijo さん、
Windows95が動いていれば大丈夫だと思います。
だめでしたら、どのようにだめだったかをお知らせ下さい。
OZAKI'S さん、
Options/General, Appearance/Index の Startup のところの Get Hostname のチェックをはずしてみてください。
それでもだめかもしれませんが。。。
えむけいさん、
そうですね。
CacheOnly でも、?つきGET と POST, HEAD メソッドのリクエストがサーバにアクセスしていまいます。
これは次の版で直します。
初歩的なことですいません。
旧NEC98機では動作しますでしょうか?
NTT TE MN128-SOHOを使っているのですが,AnHTTPDをVer.Up(0.9.3から0.9.9g)したら,
AnHTTPDの実行でトリガパケットが発生するようで,MN128-SOHOが自動でダイヤルアップ
してしまうようになりました。どこか設定に問題があるのでしょうか?
OS:Windows95
「?」はワイルドカードになりますからファイル名には使えないと思います。
パラメータつきCGIのキャッシュは大変そうなら強く希望はしませんが、せめてオフライン
なのにタイムアウトになるまでサーバへアクセスに行こうとする現象は解消できないでしょう
か?