Apache (запускаем как службу)

Apache поставляется с утилитой, которая называется Apache Service Monitor. С его помощью  можно видеть и управлять состоянием всех установленных служб Apache на любой машине в локальной сети. Чтобы иметь возможность управлять службой Apache с помощью монитора, необходимо сначала установить службу (автоматически через установку или вручную).

Установить Apache как службу Windows NT следующим образом из командной строки в binподкаталоге Apache :

httpd.exe -k install

Для указания имени службы, которую вы хотите установить, используйте следующую команду. Это необходимо сделать, если на вашем компьютере установлено несколько разных сервисов Apache. Если указать имя во время установки, тогда необходимо указать его во время любой другой операции -k.

httpd.exe -k install -n "MyServiceName"

Если необходимо иметь файлы конфигурации с конкретными именами для разных служб, тогда:

httpd.exe -k install -n "MyServiceName" -f "c:\files\my.conf"

Если использовать  команду без каких-либо специальных параметров, за исключением

-k install, тогда будет вызвана служба, (при этом предполагается, Apache2.4 )

с конфигурацией по умолчанию

 conf\httpd.conf

Удалить службу Apache очень просто:

httpd.exe -k uninstall

Конкретную удаляемую службу Apache можно указать с помощью:

httpd.exe -k uninstall -n "MyServiceName"

 

Обычный запуск, перезапуск и завершение работы службы Apache обычно выполняется через Apache Service Monitor с помощью таких команд, как START и STOPили через обычное управление службами Windows. Перед запуском Apache как службы любыми способами можно протестировать файл конфигурации службы, используя:

httpd.exe -n "MyServiceName" -t

Чтобы остановить службу Apache с помощью командной строки, используйте это:

httpd.exe -k stop -n "MyServiceName"

или

httpd.exe -k shutdown -n "MyServiceName"

Также можно перезапустить работающую службу и заставить ее перечитать файл конфигурации, используя:

httpd.exe -k restart -n "MyServiceName"

 

 

Примечание для людей, знакомых с версией Apache для Unix: эти команды предоставляют Windows-эквивалент и . Используемый параметр командной строки был выбран как напоминание о команде, используемой в Unix.kill -TERM pidkill -USR1 pid-kkill

Если окно консоли Apache закрывается сразу или неожиданно после запуска, откройте командную строку из меню «Пуск» -> «Программы». Перейдите в папку, в которую вы установили Apache, введите команду httpd.exeи прочтите сообщение об ошибке. Затем перейдите в папку журналов и проверьте error.log файл на наличие ошибок конфигурации. Предполагая, что httpd был установлен в C:\Program Files\Apache Software Foundation\Apache2.4\, вы можете сделать следующее:

c:
cd "\Program Files\Apache Software Foundation\Apache2.4\bin"
httpd.exe

Затем дождитесь остановки Apache или нажмите Control-C. Затем введите следующее:

cd ..\logs
more < error.log

При работе с Apache важно знать, как он найдет файл конфигурации. Вы можете указать файл конфигурации в командной строке двумя способами:

  • -f указывает абсолютный или относительный путь к конкретному файлу конфигурации:

    httpd.exe -f "c:\my server files\anotherconfig.conf"

    или

    httpd.exe -f files\anotherconfig.conf

  • -n указывает установленную службу Apache, файл конфигурации которой должен использоваться:

    httpd.exe -n "MyServiceName"

В обоих случаях соответствующий параметр ServerRootследует указать в файле конфигурации.

Если вы не укажете файл конфигурации с помощью -f или -n, Apache будет использовать имя файла, скомпилированное на сервере, например conf\httpd.conf. Этот встроенный путь относительно каталога установки. Вы можете проверить имя скомпилированного файла по значению, отмеченному как SERVER_CONFIG_FILEпри вызове Apache с помощью -Vпереключателя, например:

httpd.exe -V

Затем Apache попытается определить его ServerRoot, выполнив следующие действия в следующем порядке:

  1. ServerRootДиректива через -Cключ командной строки.
  2. -dПереключатель в командной строке.
  3. Текущий рабочий каталог.
  4. Запись в реестре, созданная, если вы выполнили двоичную установку.
  5. Корень сервера скомпилирован в сервер. Это /apacheпо умолчанию, вы можете проверить это, используя httpd.exe -Vи ища значение, помеченное как HTTPD_ROOT.

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

Значение этого ключа — ServerRootкаталог, который содержит confподкаталог. Когда Apache запускается, он читает httpd.confфайл из этого каталога. Если этот файл содержит ServerRoot директиву, которая содержит каталог, отличный от каталога, полученного из ключа реестра выше, Apache забудет ключ реестра и будет использовать каталог из файла конфигурации. Если вы копируете каталог Apache или файлы конфигурации в новое место, очень важно обновить ServerRootдирективу в httpd.confфайле, чтобы отразить новое местоположение.

Тестирование установки

После запуска Apache (в окне консоли или в качестве службы) он будет прослушивать порт 80 (если вы не изменили Listenдирективу в файлах конфигурации или не установили Apache только для текущего пользователя). Чтобы подключиться к серверу и получить доступ к странице по умолчанию, запустите браузер и введите этот URL:

http://localhost/

Apache должен ответить приветственной страницей, и вы должны увидеть «Это работает!». Если ничего не происходит или вы получаете сообщение об ошибке, посмотрите error.logфайл в logsподкаталоге. Если ваш хост не подключен к сети или у вас есть серьезные проблемы с конфигурацией DNS (службы доменных имен), вам, возможно, придется использовать этот URL:

http://127.0.0.1/

Если вы используете Apache на альтернативном порту, вам необходимо явно указать это в URL-адресе:

http://127.0.0.1:8080/

После того, как ваша базовая установка заработает, вы должны правильно ее настроить, отредактировав файлы в confподкаталоге. Опять же, если вы измените конфигурацию службы Windows NT для Apache, сначала попытайтесь запустить ее из командной строки, чтобы убедиться, что служба запускается без ошибок.

Поскольку Apache не может использовать один и тот же порт с другим приложением TCP / IP, вам может потребоваться остановить, удалить или перенастроить некоторые другие службы перед запуском Apache. Эти конфликтующие службы включают другие WWW-серверы, некоторые реализации брандмауэра и даже некоторые клиентские приложения (например, Skype), которые будут использовать порт 80, чтобы попытаться обойти проблемы брандмауэра.

Настройка доступа к сетевым ресурсам

Доступ к файлам по сети можно указать с помощью двух механизмов, предоставляемых Windows:

Буквы подключенных дисков
например, Alias "/images/" "Z:/"
Пути UNC
например, Alias "/images/" "//imagehost/www/images/"

Буквы подключенных дисков позволяют администратору поддерживать сопоставление с конкретным компьютером и путем вне конфигурации Apache httpd. Однако эти сопоставления связаны только с интерактивными сеансами и не доступны напрямую для Apache httpd, когда он запускается как служба. Используйте только UNC-пути для сетевых ресурсов в httpd.conf, чтобы к ресурсам можно было получить постоянный доступ независимо от того, как запущен Apache httpd. (Тайные процедуры и процедуры, подверженные ошибкам, могут обойти ограничение на буквы подключенных дисков, но это не рекомендуется.)

Пример DocumentRoot с UNC-путем

DocumentRoot "// dochost / www / html /"

Пример DocumentRoot с IP-адресом в UNC-пути

DocumentRoot "//192.168.1.50/docs/"

Пример псевдонима и соответствующего каталога с UNC-путем

Псевдоним "/ images /" "// imagehost / www / images /"  

< Directory "// imagehost / www / images /" > # ... </ Directory > 

При запуске Apache httpd в качестве службы вы должны создать отдельную учетную запись для доступа к сетевым ресурсам, как описано выше.