Основные настройки сервера находятся в файле конфигурации httpd.conf (Каталог conf – в случае стандартной установки, /usr/local/etc/apache2 – FreeBSD layout).
httpd.conf – это основной конфигурационный файл, содержащий сведения о сервере, его корневом каталоге, администраторе, журнальных файлах, максимальном числе клиентов, которые могут одновременно работать с сервером, максимальном количестве одновременно обрабатываемых запросов и т.д., а также ссылки на другие конфигурационные файлы.
3.1 Кратко рассмотрим основные директивы:
Port – номер порта, на котором http-сервер ожидает запросов. По умолчанию это 80. При необходимости можно приписать серверу другой порт или несколько портов, которые он будет прослушивать. Для этого используется директива Listen.
User и Group – имя пользователя и группы, от лица которых будет запущен сервер. Когда основной процесс запускает дочерний процесс, он изменяет UID и GID в соответствии со значениями, указанными данными директивами. (Основной процесс запускается как процесс суперпользователя, а дочерние процессы имеют полномочия других пользователей и групп.) В целях безопасности рекомендуется запускать дочерние процессы от имени пользователя и группы с минимальным уровнем полномочий.
ServerRoot – эта директива указывает на вершину дерева каталогов web-сервера. Данный каталог не предназначен для размещения Web-страниц, это корневой каталог сервера, который содержит внутренние подкаталоги, в которых хранятся конфигурационные файлы apache, журналы ошибок, и т д.
ErrorLog – указывает на файл журнала, в котором фиксируются ошибок работы сервера. Может указываться полный путь к файлу, или путь относительно ServerRoot.
LogLevel – указывает уровень приоритета сообщений, которые заносятся в журналы. Установленное по умолчанию значение warn вполне приемлемо для начала.
PidFile – устанавливает путь к файлу, содержащему pid (идентификатор процесса) сервера apache.
ServerName – имя сервера, необходимое для переадресации URL. Обычно оно определяется автоматически, однако в случае проблем его рекомендуется указать.
UseCanonicalName – устанавливает правила обращения к внутренним адресам. Когда установлено значение On – Apache использует директивы ServerName и Port для определения адресов, если значение Off – то Apache использует имя узла и номер порта из заголовка запроса. Существует третье значение – dns, в этом случае сервер будет выполнять обратный поиск DNS по IP адресу сервера. Использование этой опции не рекомендуется, т.к. обратный поиск DNS замедляет обработку запросов.
DocumentRoot – каталог, который является корневым для всех документов, хранящихся на сервере. Так называемое web-пространство пользователя.
DyrectoryIndex – файл индекса каталога сервера – файл, который будет передан клиенту при обращении к каталогу. Может быть указано несколько имен файлов.
Конейнер IfModule – используется в случае, когда есть директивы конфигурации модуля, который может и не присутствовать в установленной конфигурации Apache. Для того, чтобы узнать какие модули присутствуют, надо выполнить команду httpd –l.
ExtendedStatus – используется для вывода расширенной информации о статусе сервера, если присутствует модуль mod_status. Соответственно может принимать значения On и Off.
Следующие директивы позволяют включить на сервере поддержку cgi-сценариев.
ScriptAlias – задает каталог, в котором хранятся исполняемые программы
AddHandler cgi-script .cgi – указывает, что файлы с расширением .cgi должны обрабатываться как сценарии.
Можно использовать другой вариант (вместо ScriptAlias и AddHandler) – это директива SetHandler:
Options ExecCGI
SetHandler cgi-bin
В этом случае в каталоге /bin как сценарии будут обрабатываться все файлы, вне зависимости от их расширения.
3.2 Запуск, останов и перезапуск Web-сервера Apache
Для этих целей служит команда apachectl с ключами start, stop и restart соответственно, которая находится в директории /usr/local/apache2/bin/. Например:
./apachectl restart
3.3 Если что-то пошло не так
Если сервер Apache не запускается – прежде всего внимательно прочитайте сообщения об ошибках, которые отображаются в стандартном потоке вывода при попытке запуска сервера командой apachectl. Так, например сообщение «Unable to open Logs» сигнализирует о том, apache не имеет доступа к лог-файлам, определенным директивами ErrorLog и CustomLog в файле httpd.conf. Необходимо проверить корректно ли указаны путь и имена лог-файлов, и имеет ли пользователь от которого запускается Apache права на чтение и запись данных файлов.
Если же web-сервер запускается нормально, но имеются ошибки в отображении web-страниц, то для определения проблем необходимо анализировать содержание лог-файлов.