* | Устанавливаем Russian Apache - multik (26-Feb-2001, 14:06) | Данный текст описывает установку 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 |
| |
|