Apache Версия 2.0 Сервера HTTP
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.
формат названия модуля, измененный для 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, разделенная библиотека, которая может быть загружена в сервер во времени выполнения, используя
директива. Они модуль DLLs могут быть распределены и управляться на любом Apacheе для установки Windows, без перекомпиляции сервера.
LoadModule
чтобы создавать модуль 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
директива, чтобы загрузить это.
Description: | связь в названном файле объекта или библиотеке |
---|---|
Syntax: |
LoadFile
filename
[
filename
] ...
|
Context: | сервер config |
Status: | расширение |
Module: | mod_so |
направляющие связи LoadFile в названных файлах объекта или библиотеках, когда сервер начат или повторно начат; это используется, чтобы загрузить дополнительный кодекс, который может требоваться для некоторого модуля работать. имя файла является или абсолютной дорожкой или относительно ServerRoot .
например:
LoadFile libexec/libxmlparse.so
Description: | связи в файле объекта или библиотеке, и добавляют к списку активных модулей |
---|---|
Syntax: |
LoadModule
module filename
|
Context: | сервер config |
Status: | расширение |
Module: | mod_so |
директива LoadModule связывается в файле объекта или библиотеке
имя файла
и добавляет названную структуру модуля
модуль
к списку активных модулей.
модуль
является названием внешней переменной типа
module
в файле, и перечислен как
Module Identifier
в документации модуля. Пример:
LoadModule status_module modules/mod_status.so
загружает названный модуль от подсправочника модулей ServerRoot.