2009-03-23 1 views
0

프로젝트 용 웹 서버를 찾고 있었지만 자신을 만족시킬 수 없었습니다. Windows 용 컴파일 된 CGI 스크립트 (exe)를 지원하는 HTTP 서버가 필요하며 상대 경로를 사용할 수 있어야합니다. 서버가 가능한 한 최소/경량이 될 수 있다면 보너스가 될 것입니다.특정 기준으로 http 서버가 필요합니다.

내 검색에서 가장 어려운 부분은 CGI를 모두 지원하고 상대 경로를 지원하는 서버를 찾는 것입니다. 상대 경로라고하면 서버 루트 디렉토리를 의미합니다. 나는 이것을 내 프로젝트와 함께 포장 할 수 있기를 원하며 따라서 conf 파일의 경로는 절대적 일 수 없다.

모든 기준을 충족시키려는 유일한 사람은 Abyss Web이지만 라이센스는 독점적이며 개인적인 용도로만 사용할 수 있습니다.

편집 : 내 방식으로 오류를 발견했습니다. 루트에서 cmd를 통해 프로세스를 시작했습니다. 따라서 conf에서 apache가 사용하고있는 상대 경로는 루트에 있던 상대 경로와 관련이 있습니다. 루트 디렉토리로 변경하고 프로세스를 실행하면 gbjbaanb이 언급 한대로 모든 것이 작동합니다. 하지만 제 질문의 맥락이 여전히 유효 할 수도 있습니다. 내 프로그램 (C# .NET)에서 프로세스로 서버를 실행한다면 '현재 디렉터리'는 무엇이 될까요? 내가 시작하기 전에 현재 디렉토리 환경 변수를 변경했는지 확인해야합니까?

답변

4

Apache에 어떤 문제가 있습니까? DocumentRoot를 임의의 디렉토리로 설정할 수 있습니다. (C에서 Windows 용으로 시도하지는 않았지만)

웹 서버 루트 디렉토리에도 적용됩니다.

0

제가 사용하기로되어있는 서버의 모의 버전을 빨리 부팅했고, gbjbaanb이 Windows에서도 유효하다고 생각했습니다. * nix와 마찬가지로, 상대 경로는 아파치가 시작될 때 현재 디렉토리가 무엇인지에 따라 작동한다. 따라서 Windows의 경우 현재 디렉토리의 환경 변수를 아파치가 상대적으로 설정하도록 설정하십시오. .NET의 경우 System.IO.Directory.SetCurrentDirectory() 또는 System.Environment.CurrentDirectory를 적절하게 설정하면됩니다. 나는 * nix를 위해 당신이 chroot를 실행하거나 사용하기 전에 디렉토리로 cd 할 것이라고 생각한다.