Online Documentation Server
 ПОИСК
ods.com.ua Web
 КАТЕГОРИИ
Home
Programming
Net technology
Unixes
Security
RFC, HOWTO
Web technology
Data bases
Other docs

 

 ПОДПИСКА

 О КОПИРАЙТАХ
Вся предоставленная на этом сервере информация собрана нами из разных источников. Если Вам кажется, что публикация каких-то документов нарушает чьи-либо авторские права, сообщите нам об этом.




Любителям крупнопанельного строительства, или собираем Apache из модулей

В версии Apache 1.2 был модуль mod_dld, который позволял подлинковать другие модули во время запуска Apache, используя для этого GNU dynamic linking library, DLD. В версии 1.3 этот модуль был заменён более удобным mod_so, на более поздних этапах бета-тестирования включившим в себя и модуль mod_dll, предназначенный для Windows. Практически все используемые сейчас модули могут быть загружены посредством mod_so. Немногочисленные исключения составляют сам mod_so (что вполне логично) и mod_charset, больше известный как Russian Apache. Последний изменяет http_protocol.c, поэтому его необходимо компилировать и линковать вместе с http_core.

В файле конфигурации Configuration.tmpl Вы можете указать, какие модули будут загружаемые, а какие - нет, указав первых командой SharedModule и изменив расширение на .so, а вторых - командой AddModule. После этого можно запускать configure. Для того, что бы все стандартные модули были загружаемыми, можно не писать всё ручками, а всего лишь добавить ключ --enable-shared=max для configure:

configure --enable-shared=max

Собрав после этого Apache, и запустив его с ключем -l:

httpd -l

Вы увидите скромный список модулей:

Compiled-in modules:
  http_core.c
  mod_charset.c
  mod_so.c

Зато при установке в файле httpd.conf Вы обнаружите список модулей, загружаемых командами LoadModule.

Однако делать все модули загружаемыми вряд ли целесообразно, поскольку большинство стандартных модулей слишком малы и в то же время каждый из них совершенно необходим для обычного сайта. Скажем, размер Apache, собранного с ключем --enable-shared=max у меня около 210К, тогда как со стандартными модулями без mod_proxy и mod_rewrite - около 260К. С другой стороны, новые версии этих модулей обычно появляются вместе с версией Apache, и никаких преимуществ от динамической линковки нет. Делать загружаемыми, на мой взгляд, имеет смысл лишь большие и меняющиеся независимо от Apache модули - такие, как mod_perl, mod_php и mod_ssl. Поэтому лучше указать, какие модули линковать статически командой AddModule, а все оставшиеся сделать загружаемыми с помощью configure:

configure --enable-shared=remain

В этом случае все модули, закомментированные в Configuration.tmpl, будут загружаемыми.

Если Вы собираете Apache из порта FreeBSD, то обратите внимание на ключ --without-confadjust. Этот ключ указывает configure игнорировать все изменения, сделанные в файле конфигурации Configuration.tmpl.



With any suggestions or questions please feel free to contact us
флаконы для масел, акция.