<< 2024/04 >> | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
|
小型Webサーバ開発中
14/06/15 01:32 / pHTTPServer
MJRecorder に内蔵する為、Webサーバの開発に着手するという車輪の大再発明をするという愚行を行っているのですが(Indy とか使えばいいんですけどね。Indy 嫌いなので)
デバッグ用に作っている UI 付きアプリの方も凝り始めて、なんか立派な形になってきました。 こんな形でデバッグとテストしているんですよ。 無意味に高機能化していまして 1)HTTP 1.1 半準拠(必要な箇所しか実装してない) 2)CGI 動きます。 3)帯域制限機能も内蔵 4)シングルドメインのみ(マルチドメインにすると、ドメイン単位での設定が必要になるので、取り合えずシングルで) 5)HTTP認証も最初から使えます。Digest認証もOK 6)HTTPS も OK 7)接続フィルタも内蔵 8)ログのローテートも OK(Apache2 のログは別のプロセス経由で行うのでちょっといやーん) 9)MIME 設定も可能 10)Class(VCL)として作っているので、1時間でサービスアプリに転用可能。 11)小規模用 などが出来ています。 コレでhttpエンジンは 70KB ととてもお得なサイズです。 なんで、凝っているかと言うと、PMail Server2 の Webメールで Webサーバが必要なんですが、お問い合わせ頂く3割くらいが Webサーバの設定なんですよ。 IIS や Apache で構築されたことがあるユーザーさんはサクサクと10分で設定が完了する訳ですが、そうでない場合は、ちょっと敷居が高い場合があります。 そんなんでちょっと Webサーバもフリー版みたいな感じでリリースしてみようかなー、なんて考えていたりします。 最初から MIME 設定とか入れておけば、基本フォルダの設定して Webmail 入れて開始するだけで OK という感じにしたいなと思っている訳です。 まぁある程度の人数が利用するのであれば、IIS や Apache の方が遥かに良いんですが、イントラで数人が使う程度や、管理者が pmam.exe を動かすだけであれば、これくらいの方がいいかな、と。 でも、Webmail だけ動かすのにポートを1個使うのは申し訳ないという気持ち(どんな気持ちだ)がありますので、今時の最低限として、Perl とか PHP くらいは動かせるようにしておきたいと思った訳です。 で、Perl については深く考えることも無く動作したのですが、PHP がちょっと動きません。 正確に言うと、php-cgi.exe を起動することもできて(アプリケーション上の)エラーも返ってこないのですが、404 を返してきます。 最初、cgi.force_redirect = の設定を忘れて、動かないよ!って出ていたのですが、これを設定しても 404 を出します。 ちなみに cgi.force_redirect = 1 に設定すれば OK!って書かれているサイトがありますが、これ内部リダイレクトのチェックをするかしないかの設定で、安易に 1 に設定するとリスクがあるそうです。詳しくは検索して下さい・・・ んで、404 エラーを出すのが Web サーバだと思って MIME 設定おかしかったかな?とトレースして追っていたのですが、どうにも違うようです。 php-cgi.exe 自身が 404 を返しています。 エラーログにすら出力されていません。 最初アクセス権がおかしいのかと思っていたのですが、普通にフォルダを作れば Users が入るので関係なし。 試しにコマンドラインで動かしたのですが、コマンドラインでは問題なく動きます。 ふむ。http 経由で実行された場合のみ、なにかチェックが働いて 404 を出しているようです。 http 経由で起動しているかどうかをアプリケーション側で検知するには・・・ 1)親プロセスを確認する。 2)環境変数を確認する。 のどっちかです。でも1は IIS や Apache 以外の場合は動かなくなるのでさすがにそんな杜撰な実装は無いだろうってことで、2の環境変数と狙いをつけます。 環境変数は、SERVER_NAME とか REMOTE_ADDR とかですね。 404 File not found が出ているので、QUERY_STRING がおかしいかなと思ったのですが、特に問題なし。 うーん、他に CGI で必要な環境変数ってあったかな?とコードを眺めていたのですが、SCRIPT_NAME もあるしなぁ・・・ あ!SCRIPT_FILENAME って環境変数を設定していないわ。 んで、SCRIPT_FILENAME を環境変数にセットして test.php を渡してみると ビンゴでーす! SCRIPT_FILENAME って殆ど使ったこと無いからド忘れしていましたわ。 てなことで、これも近日中に公開できたらいいななんて考えています。 [更新日付:2014/08/23 00:27:59]
トラックバックを見る(0) Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+02a61b14aa7409d8031a6ccf61b72f9285b51d53] TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+02a61b14aa7409d8031a6ccf61b72f9285b51d53] 記事へのコメント 名前 : H.Matsuda (2014/07/09 08:57:45) ついでに最新の状況をアップしましたので、続きのコメントはそちらへ。 WebDAV ってどうなんでしょうか? 私は WebDAV の必要が迫られるケースがなかったので未だ RFC すら読んでいないのですが(今10分程流し読みで読んできましたwそんなに難しくは無いですね。丁度必要な仮想フォルダや Digest認証は実装済みですしフォルダ単位の帯域制限も実装済みです) SAMBA でいいんじゃないかなーなんて思ったりしています。 名前 : noppo (2014/07/09 07:30:24) 松田 様 いつもお世話になっております。 おもしろそうですね。 安定板が出たら使いたいです。 ただし、私的には・・・。 ・マルチドメイン ・WebDAV(あれば便利・・・。) ・WebCabinet内臓(帯域制限等が実現できれば^^;) まであれば、レジストしてでも使いたいです。 松田さんであれば、一気にまとまった時間が空けば、 数時間で作成してくれそうな気がします。ぉぃ 期待してます。 |
@AKISoftOfficialをフォロー
掲示板 サポートBBS PMailServer BBS アクセスの多い記事
最新記事(カテゴリ別)
PMailServer2 Version 2.53 をリリースしました。
04/08 00:50 フリー版からの製品版移行時の MTA 並列数について 02/17 23:52 メールサーバーの開発を始めて20年 02/07 21:46 PMailServer2 Version 2.52a をリリースしました。 12/26 14:02 PMailServer2 Version 2.52 をリリースしました。 10/01 10:48 PMailServer2 Version 2.51b をリリースしました。 09/19 01:43 PMailServer2 Version 2.51b(仮) Memo 09/12 00:33 PMailServer2 Version 2.51a をリリース、及び脆弱性についてのお知らせ 09/05 01:15 PMailServer2 Version 2.51a Memo 08/21 00:48 アドレスV125(K5)のスターターリレーの交換 08/04 10:10 最新コメント
UUアクセス数
今日は 102回
昨日は 286回 トータル 303690回 3ヶ月記事別ランキング
プロフィール
Z80から68系、8086系を経由して
Pascalに移行。現在は Delphiをメインに C/C#も囓ってみたり。 「無い物は作れ」の精神で年がら年中なにかを作っています。 すぐ自前で作りたがるので無駄に工数が上がったりして自爆してみたりもします。 好きな物は麺類とお煎餅 Blom内検索
BLOM Version 1.39 ©2007-15 A.K.I Software all rights reserved. |