Найдите путь сервера Apache в Windows - PullRequest
1 голос
/ 07 ноября 2008

Для сценария Windows, который я пишу, мне нужно определить, установлен ли на компьютере Apache 2.2, и найти путь к приложению.

Одно решение, которое я придумал, - это wget http://localhost:8080/server-info и парсинг рута и файла конфигурации из него. Это не получится, если сервер не использует порт 8080

Другой вариант - вызвать sc qc Apache2.2 и проанализировать возвращаемую строку. Это может произойти сбой, если сервер не установлен в качестве службы или использует другое имя.

Есть ли лучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 07 ноября 2008

Не много хороших опций, если они не установили его с помощью установщика. Если они использовали MSI / установщик, вы можете проверить реестр:

HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Apache\2.2.2\ServerRoot 
HKEY_CURRENT_USER\SOFTWARE\Apache Software Foundation\Apache\2.2.2\ServerRoot

Вы также можете проверить список запущенных процессов:

WMIC PROCESS get Caption,Commandline,Processid

Найдите соответствующий EXE-файл. Если по какой-то причине вам нужен номер порта, используйте netstat и найдите соответствующий порт.

Также, когда вы говорите «скрипт Windows», я предполагаю, что вы используете что-то современное и способное, например, Windows Scripting Host (мой любимый) или PowerShell . Даже не связывайтесь с пакетными файлами.

0 голосов
/ 07 ноября 2008

Насколько я помню, Apache записывает некоторые ключи реестра. Если вы знаете, как читать их из сценария, это может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...