Запуск Apache - HTTP сервер Apache

HTTP сервер Apache версии 2.2

Apache > HTTP сервер > Документация > Версия 2.2

# Запуск Apache

Доступные языки: de | en | es | ja | ko | ru

На Windows платформах Apache обычно работает как сервис Windows NT/2000/XP или как консольное приложение Windows 95/ME. Для получения более подробной информации по этому вопросу, обратитесь к документам, объясняющим работу Apache под Windows в качестве сервиса и работу Apache под Windows в качестве консольного приложения.

В Unix программа `httpd` представляет собой демон, выполняющийся в фоновом режиме и обслуживающий поступающие запросы. О том, каким образом можно запустить `httpd` и что в результате этого получится, и рассказывается в этом документе.

### См. также

- Останов и перезапуск
- `httpd`
- `apachectl`

## Что происходит в момент запуска Apache

Если в директиве `Listen` в конфигурационном файле указано значение 80 (задаваемое по умолчанию) или любое другое значение порта меньшее 1024, то для запуска Apache необходимо быть привилегированным пользователем, так как Apache придется подключаться к привилегированному порту. После того, как сервер запустился и выполнил ряд подготовительных операций, таких как открытие своих log-файлов, он порождает несколько процессов потомков, которые и будут выполнять всю работу по обработке запросов от клиентов. Основной процесс `httpd` выполняется с правами привилегированного пользователя, в то время как процессы потомки имеют меньший приоритет. Все это контролируется МП-модулем, который компилируется вместе с сервером.

Для запуска демона `httpd` лучше всего использовать скрипт `apachectl`. Этот скрипт устанавливает ряд переменных окружения, необходимых для правильной работы сервера под некоторыми операционными системами, а затем запускает исполняемый файл `httpd`. Скрипт `apachectl` передаст серверу любую командную строку, так что при вызове можно указывать в его командной строке все необходимые для сервера опции. Вы также можете вручную внести некоторые изменения в скрипт `apachectl`, в частности, изменив значение переменной `HTTPD` для запуска Apache из другого каталога, и указав опции, которые будут передаваться серверу каждый раз при его запуске.

Первым делом `httpd` находит и считывает конфигурационный файл `httpd.conf`. Путь к этому файлу задается еще во время сборки сервера, но его можно изменить и после этого, запустив сервер с опцией `-f`, как это показано в следующем примере

`/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf`

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

## Ошибки, которые могут возникнуть во время запуска

Если во время запуска Apache произойдет какая-либо фатальная ошибка, то перед тем, как завершить свою работу, сервер пошлет на консоль или в `ErrorLog` сообщение, описывающее данную ошибку. Наиболее распространенным сообщением об ошибке является `"Unable to bind to Port ..."`. Подобная ошибка возникает в двух случаях:

- Если вы пытаетесь запустить сервер на привилегированном порту, будучи зарегистрированным в системе как обычный пользователь; или
- Если вы пытаетесь запусть сервер, когда в системе уже есть выполняющийся демон Apache или другой web-сервер, слушающий тот же самый порт.

Решение многих подобных проблем можно найти на странице FAQ.

## Запуск сервера вместе с запуском всей системы

Если вы хотите, чтобы сервер запускался автоматически после перезагрузки системы, добавьте вызов скрипта `apachectl` в системные файлы, отвечающие за загрузку операционной среды (обычно это `rc.local` или файлы в каталоге `rc.N`). Это приведет к запуску Apache от имени привилегированного пользователя. Во избежание проблем с безопасностью системы, убедитесь, что сервер сконфигурирован правильно.

Скрипт `apachectl` разработан таким образом, что он может действовать как стандартный init-скрипт системы SysV; он может принимать аргументы `start`, `restart`, и `stop` и переводить их в соответствующие сигналы процессу `httpd`. Поэтому чаще всего вам достаточно сделать ссылку на `apachectl` в запускном каталоге процесса init. Но прежде чем делать это, узнайте точные требования вашей системы.

## Дополнительная информация

Дополнительную информацию по опциям командной строки `httpd` и `apachectl`, а также других вспомогательных программ, вы можете найти на странице "Сервер и вспомогательные программы". Имеется также документация на все модули, входящие в дистрибутив Apache, и все директивы, которые они предоставляют.

Доступные языки: de | en | es | ja | ko | ru