Устанавливаем Russian Apache

Данный текст описывает установку Russian Apache без каких-либо дополнительных модулей. По идее, в большинстве современных дистрибутивов идет уже настроенный Apache, но многим нужен именно Apache с перекодировкой.

Первое, что вам необходимо сделать - это взять пакет с apache с apache.lexa.ru. Данный текст будет основываться на том, что у вас пакет apache_1.3.14rusPL30.0.tar.gz. Но приведенные рекомендации будет верны и в том случае, если у вас другая версия - вам надо будет лишь сменить имена файлов.

Итак, разворачиваем Apache командой tar zxvf apache_1.3.14rusPL30.0.tar.gz

У вас возникнет каталог apache_1.3.14rusPL30.0, в котором будет размещены исходные тексты сервера.

Переходим в каталог с Apache - cd apache_1.3.14rusPL30.0

Теперь - необходимо настроить все необходимое для сборки Apache. Это выполняет команда configure. Необходимо учесть, что просто запуск этой команды приведет к генерации конфигурационных файлов по умолчанию. То есть Apache будет установлен в каталог /usr/local/apache, он будет запущен от пользователя nobody, в него не будет вкомпилен mod_rewrite и так далее. Для 99% пользователей такая конфигурация подходит как нельзя лучше. Но мы же с вами не 99%?

Итак, для указания места, куда абудет инсталлироваться Apache, служит параметр --prefix=. Указав --prefix=/apache мы укажем инсталлятору, что все файлы будут располагаться в каталоге /apache. Ну или в любом другом по вашему вкусу.

Параметр --enable-module служит для включения в компиляцию модулей, которые по умолчанию не включаются. Это auth_anon, auth_dbm, auth_db, auth_digest, cern_meta, digest, example, expires, headers, info, log_referer, mime_magic, mmap_static, proxy, rewrite, so, speling, unique_id, usertrack, vhost_alias. Многие из них вам никогда не понадобятся (особенно модуль example), но часть вам может и пригодиться, особенно модули proxy, rewrite, so. Указав --enable-module=rewrite мы скажем конфигуратору, что желаем скомпилировать модуль mod_rewrite.

Теперь подумаете - нужны вам модули статически собранные или динамически? Статически - это когда модули "намертво" вкомпилированы в тело httpd и не могут выгружаться/загружаться динамически. Для большинства веб-серверов сборка модулей статически вполне оправдана - получается монолит, с которым потом меньше хлопот и возни. Но, к примеру для крупных серверов, которые одновременно обслуживают множество виртуальных хостов, "динамическая" сборка может оказаться выгоднее - администратор может распределять между веб-верверами "доступность" модулей. Для возможности подключения модулей не забудьте указать необходимость включения модуля so статически в httpd. Именно он отвечает за возможность подгрузки модулей.

Для указания модулей, которые необходимо собрать динамически, необходимо указать их имена в параметре --enable-shared=.

Теперь осталось указать, под каким пользователем будет работать сервер Apache. По умолчанию стоит пользователь nobody, но с помощью параметра --server-uid= вы сможете поменять UID на любой тербуемый вам (UID, а не имя!).

Например, для пользователя nobody в моей системе это будет:

multik# cat /etc/passwd|grep nobody
nobody:x:99:99:Nobody:/:
UID=99.


Итак, давайте приготовим Apache к компиляции.

Выполним команду

./configure --prefix=/www --enable-module=rewrite --enable-module=so --enable-module=proxy --enable-shared=proxy

Этой командой мы даем указание конфигуратору приготовить Apache к установке в каталог /www, включить модули rewrite, so и proxy, выделив модуль proxy как динамически загружаемый.

Если конфигурация прошла без ошибок, то мы можем с легким сердцем дать команду make для начала компиляции.

После того, как make отработал (надеюсь, без ошибок - если есть ошибки, смотрите, чего компилятору не хватает), вы должны уйти с помощью команды su под пользователя, обладающим необходимыми правами для записи в выбранный каталог и выполнить команду make install. Инсталлятор перепишет все необходимые файлы в выбранный каталог (в нашем случае это /www) и выдаст расположение конфигурационного файла (/www/conf/httpd.conf) и команду запуска apache (/www/bin/apachectl start).

Но мы сразу запускать сервер не будем - давайте проверим, все ли на месте - дадим команду /www/bin/httpd -l, которая заставит сервер вывести список всех модулей, которые вкомпилированы в него. Как мы и видим, mod_so и mod_rewrite включены, а mod_proxy в списке отсутствует. Все, как и должно быть - ведь мы сказали собрать модуль proxy динамически, и пока мы его не включим командой LoadModule в httpd.conf - он никак запускаться не будет.

Теперь можно и запустить сервер - /www/bin/apachectl start. Теперь с чистой душой мы можем набрать в браузере 127.0.0.1 и увидеть тестовую страницу сервера.Если вы собирали apache не на своей машине, то вместо 127.0.0.1 наберите ip адрес машины или ее имя - по умолчанию (ведь мы ничего не меняли) он "садится" на все доступные интерфейсы на 80й порт.

Вот и все - вы стали обладателем собственого www-сервера. Для остановки-запуска используйте утилиту apachectl - она сделает все, что необходимо.

Как совет - после правки httpd.conf и перед перезапуском сервера я рекомендую проверить правильность синтаксиса файла командой apachectl configtest. Она проверит синтаксис файла и укажет на те строки, из-за которых сервер может не запуститься.

Как маленький совет - я часто переименовываю утилиту apachectl в httpd и заменяю ей в каталоге /etc/rc.d/init.d "оригинальный" httpd, который идет вместе с дистрибутивом. Если вы его не ставили, то просто скрпируйте apachectl в нужный каталог и сделайте аналогичные ссылки с соответвующих rc{x}.d - теперь Apache будет запускаться и останавливаться вместе с системой. Как правильно прописать ссылки - это уже другая тема.

(с) 2001 Вячеслав Калошин. multik@asplinux.ru

Разместить комментарий

В комментариях к материалам сайта нельзя использовать теги HTML и BB. Адреса email и ссылки на другие сайты в комментариях запрещены и в текстах не отображаются. Все комментарии проходят постмодерацию. Если у вас есть фотография, иллюстрирующая данный материал, вы можете добавить ее к своему комментарию. Загружаемое изображение должно быть в формате GIF или JPG.
Ваше имя: *
Комментарий: *
Фотография:
Код подтверждения: *