■ FAQ ■


Q.なんで、サーバコントローラと本体が分かれているのですか?

サービスモードで実行しているときにも、設定の変更や、動作の確認を行うためです。
サービスモードで実行時は、サーバコントローラを終了しても、サーバは動作しています。

Q.サーバの止め方が分からないんですが・・・

サービスモードでインストールした場合、サーバはシステムサービスとして実行されています。
「コントロールパネル→管理ツール→サービス」から停止してください。

Q.Webフォルダで、認証が上手く行きません

「WebDAVを許可」と「インデックスリストの表示を許可する」の両方をチェックしないと、ファイルリストの表示でエラーとなり、認証に失敗するようです。

Windows XPでは、
「インターネットオプション」→「詳細設定」→「統合 Windows 認証を使用する」
のチェックをOFFにしないと、正常に動作しないようです。

Q.Windows XPのWebフォルダの動作が怪しいんですが?

Microsoft Officeを入れると、なぜか直ります。
原因は不明で、現在調査中です。
Apacheなどでも、同じような障害が起こるとの事です。

Q.どんなCGIが実行できますか?

Perl、PHP、Windows実行ファイルの動作報告を受けています。

04WebServerでは、CGIのタイプを独自に設定できます。
従って、テキストベースのインタプリタなら、設定変更のみで、大抵のCGIが動くはずです。

PHPは、php.iniの"cgi.force_redirect = 1" を "cgi.force_redirect = 0" と変更する必要があります。
※Opsさんの情報提供に感謝。

Q.掲示板の設定ファイルなど隠したいファイルがあるのですが、どうすれば良いですか?

※v1.10にてサポートされた機能です

ファイルの属性を隠し属性に設定してください。
ディレクトリを隠し属性にすると、そのディレクトリ自体はアクセスできなくなりますが、下層にあるファイルは、ファイル自体を隠し属性にしないとアクセスできますので注意してください。

なお、ディレクトリ設定で「隠しファイルのアクセスを許可する」をチェックすると、隠しファイルは保護されなくなります。

Q.接続制限でインポートできるIPリストの形式が良く分かりません

インポートできるのは、「*.*.*.*」の形式です。
具体的には

192.168.0.1
192.168.0.*

このように指定します。
以下のような指定もOKです。

192.168.0.1* (この場合は 192.168.0.1 - 192.168.0.199 が指定される)

以下のような指定は出来ません。

192.*

この場合は、以下のように4桁全て指定してください。

192.*.*.*

Q.サーバのOS再インストールしたんだけど、04WebServerの設定は?

Setup.exe を再度実行してください。
サーバの設定は 04WebServer.xml に記録されていますので、再設定の必要はありません。

Q.サーバの安定性はどうですか?

難しい質問ですね。
作者としては、落ちないようには書いてますが・・・・

技術的な話ですが、04WebServer(0.30以降)では、サーバスレッドが発生する例外(普通は「xxxは不正な処理を・・・」と表示される)を、独自に処理しています。
従って、サーバにバグがあっても、基本的には、サーバ自体はダウンしません。
まあ、あくまで基本的には、ですが・・・

後、内部処理では、データを基本的に全てクラスでラッピングし、メモリリークや、ポインタの操作ミスによる致命的なエラーを出来る限り避けるようにはしています。

Q.セキュリティはどうですか?

これも難しい質問ですね。
作者としては、セキュリティ・ホールが出来ないように、注意はしていますが・・・

一応、通信関係の内部処理では、固定長バッファを全く利用していませんので、バッファオーバーフローの危険性は低いと思います。
文字列処理やデータ処理は、C++の抽象化クラスによる、可変長バッファで処理されています。

セキュリティ情報

Q.過負荷時の動作はどのようになっていますか?

現バージョン(v1.02)では、最大接続数を超える接続では、新たな処理スレッドは生成されず、メインスレッドが、エラーを出力します。
エラーの出力に時間がかかった場合、サーバは負荷が限界を超えていると判断し、一時的に(現行で30秒間)サーバを停止し、処理の終了を待ちます。
この間の接続は、全て拒否されます。

メモリ不足が発生した場合も、同様に、一時的にサーバを停止し、処理の終了を待ちます。

これらの動作はログ、及び、サーバコントローラのサーバ情報に表示されます。

Q.なんか Debuglog.txt なんてのが出来てるんだけど?

Debuglog.txt は、以下の条件のときに作成されます。

ログに、「サーバ内部の未処理・・・」と書かれている場合は、多分サーバのバグです。
よろしければ、掲示板などに、状況等の報告をお願いします。

Q.04WebServer.xml にサーバコントローラから設定できない項目があるんですが?

デバッグ時やパフォーマンステスト時に必要な設定項目です。
これらの項目は、一般的な利用では設定を変更する必要がないため、サーバコントローラからは設定できないようになっています。

以下のような設定項目があります。

Setting::Log::MaxThreadLog 接続情報で、すでに終了している接続を表示する数です
Setting::Enhance::EnableThreadPoolスレッドプールの有効・無効を設定します
Setting::Enhance::ThreadPoolTimeOut スレッドプールでスレッドをキャッシュする時間を秒で指定します
Setting::Enhance::ListenThreadCount 接続受付処理を行うスレッド数を指定します
Setting::Enhance::MaxListenQueue 接続受付キューのサイズを指定します

※04WebServer.xml を書き換える事で設定の変更は可能ですが、むやみに変更するとサーバが正常に動作しなくなる可能性がありますので、注意してください。

Q.どんな技術を利用して開発されていますか?

まず、開発環境は

OSWindows 2000 (SP4)
開発ソフトMicrosoft Visual Studio .NET 2002

利用した技術は

MFC文字列処理やファイル処理など、サーバの実装に使われています
ATLCOMの実装に使われています
COMサーバとサーバコントローラの通信に使われています
MSXML.DLL設定ファイルの読み書き、及び、WebDAVの処理に利用されています

コーディングは、全てC++で行われ、x86ネイティブでコンパイルされています。

Q.ソースは入手できますか?

/Download/@Source/ より、ダウンロード可能です。