<-
Apache > HTTP Server > Documentation > Version 2.0 > Modules

Apache Модуль mod_so

Description: погрузка выполнимого кодекса и модулей в сервер при запуске или времени переначала
Status: расширение
Module Identifier: so_module
Source File: mod_so.c
Compatibility: это - Основной модуль (всегда включенный) на Windows

резюме

на отобранных операционных системах этот модуль может использоваться, чтобы загрузить модули в Apacheа во времени выполнения через Dynamic Shared Object (цифровой запоминающий осциллограф) механизм, вместо того, чтобы требовать перекомпиляции.

На Unix, нагруженный кодекс типично прибывает от разделенных файлов объекта (обычно с .so расширение), на Windows это может любой .so или .dll расширение.

предупреждение

Apacheские 1.3 модуля не могут непосредственно использоваться с Apache 2.0 - модуль должен быть изменен, чтобы динамически загрузить или собрать в Apacheа 2.0.

директивы

темы

top

Creating Loadable Modules for Windows

отметить

формат названия модуля, измененный для Windows с Apache 1.3.15 и 2.0 - модули теперь называют как mod_foo.so

в то время как mod_so все еще загружает модули ApacheModuleFoo.dll названиями, новое соглашение обозначения предпочтено; если Вы преобразовываете ваш загружаемый модуль для 2.0, пожалуйста установите название к этим 2.0 соглашениям.

Apache программный интерфейс приложения модуля неизменен между версиями Windows и Unix. Много модулей будут бежать на Windows без или небольшом изменении от Unix, хотя другие полагаются на аспекты архитектуры Unix, которые не присутствуют в Windows, и не будут работать.

когда модуль действительно работает, это может быть добавлено к серверу в одном из двух путей. Как с Unix, это может быть собрано в сервер. Поскольку Apache для Windows не имеет Configure программа Apacheа для Unix, исходный файл модуля должен быть добавлен к файлу проекта ApacheCore, и его символы должны быть добавлены к os\win32\modules.c файл.

второй путь состоит в том, чтобы собрать модуль как DLL, разделенная библиотека, которая может быть загружена в сервер во времени выполнения, используя LoadModule директива. Они модуль DLLs могут быть распределены и управляться на любом Apacheе для установки Windows, без перекомпиляции сервера.

чтобы создавать модуль DLL, мелочь необходима для исходного файла модуля: отчет модуля должен экспортироваться от DLL (который будет создан позже; см. ниже). Чтобы сделать это, добавьте AP_MODULE_DECLARE_DATA (определенный в Apacheских файлах удара головой) к модулю вашего модуля делают запись определения. Например, если ваш модуль имеет:

module foo_module;

заменить вышеупомянутое:

module AP_MODULE_DECLARE_DATA foo_module;

отметить, что это будет только активизировано на Windows, таким образом модуль может продолжить использоваться, неизменным, с Unix если нужно. Кроме того, если Вы знакомы с .DEF файлы, Вы можете экспортировать отчет модуля с тем методом вместо этого.

теперь, создайте DLL, содержащий ваш модуль. Вы будете должны связать это против библиотеки экспорта libhttpd.lib, которая создана, когда libhttpd.dll разделенная библиотека собрана. Вам, вероятно, также придется изменить параметры настройки компилятора, чтобы гарантировать, что Apacheские файлы удара головой правильно расположены. Вы можете найти эту библиотеку в вашем справочнике модулей корня сервера. Лучше захватывать существующий модуль .dsp файл от дерева, чтобы уверить, что строящаяся окружающая среда формируется правильно, или поочередно сравнивать компилятор и варианты связи к вашему .dsp.

это должно создать версию DLL вашего модуля. Теперь просто поместите это в modules справочник вашего корня сервера, и использования LoadModule директива, чтобы загрузить это.

top

LoadFile Directive

Description: связь в названном файле объекта или библиотеке
Syntax: LoadFile filename [ filename ] ...
Context: сервер config
Status: расширение
Module: mod_so

направляющие связи LoadFile в названных файлах объекта или библиотеках, когда сервер начат или повторно начат; это используется, чтобы загрузить дополнительный кодекс, который может требоваться для некоторого модуля работать. имя файла является или абсолютной дорожкой или относительно ServerRoot .

например:

LoadFile libexec/libxmlparse.so

top

LoadModule Directive

Description: связи в файле объекта или библиотеке, и добавляют к списку активных модулей
Syntax: LoadModule module filename
Context: сервер config
Status: расширение
Module: mod_so

директива LoadModule связывается в файле объекта или библиотеке имя файла и добавляет названную структуру модуля модуль к списку активных модулей. модуль является названием внешней переменной типа module в файле, и перечислен как Module Identifier в документации модуля. Пример:

LoadModule status_module modules/mod_status.so

загружает названный модуль от подсправочника модулей ServerRoot.