2009-03-23 2 views
0

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

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

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

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

ответ

4

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

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

0

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