2009-03-23 14 views
0

私のプロジェクト用のWebサーバーを探していましたが、満足できませんでした。 Windows用にコンパイルされたCGIスクリプト(exe)をサポートするhttpサーバが必要で、相対パスを使用できる必要があります。サーバが可能な限り最小/軽量になることができれば、ボーナスになります。特定の基準を持つhttpサーバーが必要です

私の検索で最も難しい部分は、CGIと相対パスの両方をサポートするサーバーを見つけることです。私が相対パスと言うとき、私はサーバーのルートディレクトリを意味します。私は私のプロジェクトと一緒にこれを梱包することができるようにしたいので、confファイルのパスを絶対にすることはできません。

すべての基準を満たす唯一のものはAbyss Webですが、そのライセンスは独自のものであり、個人的な使用のためにのみ無料です。

編集: 私は自分のやり方でエラーを見つけました。私はrootでcmdを使ってプロセスを開始しました。したがって、confでApacheが使用していた相対パスは、私がどこにいたか、rootで相対的なものでした。ルートディレクトリに変更してプロセスを実行することで、gbjbaanbが言及したようにすべてが機能します。しかし、私の質問のコンテキストはまだ有効かもしれないと思います。私が自分のプログラム(C#.NET)でプロセスとしてサーバーを実行するとしたら、現在のディレクトリはどうなりますか?私はそれを起動する前に、現在のディレクトリ環境変数を変更したことを確認する必要がありますか?

答えて

4

Apacheに問題がありますか? DocumentRootを任意のディレクトリに設定することができます(WindowsではCで試してみませんでしたが)。

Webサーバーのルートディレクトリにも当てはまります。 - /をつけてディレクティブを開始しないでください。

0

私はすぐに私が使用するはずのサーバーのモックバージョンを起動しました。それはgbjbaanbがWindowsでも有効であるようです。 * nixと同様に、相対パスは、apacheが起動されたときのカレントディレクトリの内容に基づいて動作します。したがって、Windowsでは、現在のディレクトリの環境変数を、Apacheが相対的なものにしたい環境変数に設定するようにしてください。 .NETの場合、System.IO.Directory.SetCurrentDirectory()またはSystem.Environment.CurrentDirectoryを適切に設定するだけです。 * nixの場合、chrootを実行する前にディレクトリにcdしてください。

関連する問題