Нужен http сервер с некоторыми конкретными критериями - PullRequest
0 голосов
/ 24 марта 2009

Я искал веб-сервер для своего проекта, но я не смог удовлетворить себя. Мне нужен http-сервер, который поддерживает скомпилированные CGI-скрипты (exe) для Windows и должен иметь возможность использовать относительные пути. Было бы бонусом, если бы сервер мог быть минимальным / легким, насколько это возможно.

Самым сложным в моем поиске на данный момент является поиск сервера, который поддерживает как CGI, так и поддержку относительного пути. Когда я говорю относительный путь, я имею в виду корневой каталог сервера. Я хочу иметь возможность упаковать это вместе с моим проектом, и поэтому пути в файлах conf не могут быть абсолютными.

Единственным, кого я получил, чтобы удовлетворить всем критериям, является Abyss Web, но их лицензия является проприетарной и бесплатной только для личного использования.

EDIT: Я нашел ошибку в моих способах. Я начал процесс через cmd в корне. Таким образом, относительные пути, которые Apache использовал в Conf, были относительно того, где я был, в корне. Перейдя в корневой каталог и запустив там процесс, все работает, как упомянул gbjbaanb. Но я полагаю, что контекст моего вопроса все еще может быть действительным. Если бы я запускал сервер как процесс в моей программе (C # .NET), что тогда было бы «текущим каталогом»? Должен ли я быть уверен, что изменил текущую переменную среды каталога перед ее запуском?

Ответы [ 2 ]

4 голосов
/ 24 марта 2009

Что не так с Apache? Вы можете установить DocumentRoot в любой каталог (хотя я не пробовал его для Windows на C:)

Это также относится к корневому каталогу веб-сервера - не начинайте директиву с /, и она работает.

0 голосов
/ 24 марта 2009

Я быстро загрузил фиктивную версию сервера, которую я должен использовать, и кажется, что gbjbaanb подходит и для Windows. Как и в случае * nix, относительные пути работают в зависимости от текущего каталога, когда запускается apache. Поэтому для Windows просто установите переменную окружения для текущего каталога в ту, к которой вы хотите относиться apache. Для .NET вы просто устанавливаете System.IO.Directory.SetCurrentDirectory () или System.Environment.CurrentDirectory соответственно. Я полагаю, что для * nix вы должны либо перейти в каталог перед запуском, либо использовать chroot.

...