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

apxs - АПАЧСКИЙ инструмент расширения

apxs является инструментом для того, чтобы строить и устанавливать модули расширения для Apacheского Протокола Передачи Гипертекста (HTTP) сервер. Это достигнуто, строя динамический разделенный объект (цифровой запоминающий осциллограф) из одного или более источников или объекта файлы который тогда может быть загружен в Apache сервер под временем выполнения через LoadModule директива от mod_so .

так использовать этот механизм расширения ваша платформа должна поддержать особенность цифрового запоминающего осциллографа и вашего Apacheа httpd набор из двух предметов должен быть построен с mod_so модуль. apxs инструмент автоматически жалуется если дело обстоит не так. Вы можете проверить это непосредственно, вручную управляя командой

$ httpd -l

модуль mod_so должна быть часть показанного списка. Если эти требования выполнены, Вы можете легко расширить функциональные возможности вашего Apacheского сервера, устанавливая ваши собственные модули с механизмом цифрового запоминающего осциллографа помощью этого apxs инструмент:

$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /path/to/apache/modules/mod_foo.so
chmod 755 /path/to/apache/modules/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
$ apachectl restart
/path/to/apache/sbin/apachectl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
/path/to/apache/sbin/apachectl restart: httpd started
$ _

аргументы файлы может быть любой исходный файл C (.c), файл объекта (.o) или даже архив библиотеки (.a). apxs инструмент автоматически признает эти расширения и автоматически используемый исходные файлы C для компиляции, только используя объект и файлы архива для связавшейся фазы. Но используя такие предсобранные объекты удостоверяются, что они собраны для положения независимый кодекс (ФИЛЬМ), чтобы быть в состоянии использовать их для динамически нагруженного разделенного объекта. Например с GCC Вы всегда только должны использовать -fpic . поскольку другие компиляторы C консультируются с его ручной страницей или в часах для флагов apxs использования, чтобы собрать файлы объекта.

поскольку больше деталей о поддержке цифрового запоминающего осциллографа в Apacheе читает документацию mod_so или возможно даже читайте src/modules/standard/mod_so.c исходный файл.

см. также

top

Synopsis

apxs - g [ - S name = value ] - n modname

apxs - q [ - S name = value ] query ...

apxs - c [ - S name = value ] [ - o dsofile ] [ - I incdir ] [ - D name = value ] [ - L libdir ] [ - l libname ] [ - Wc, compiler-flags ] [ - Wl, linker-flags ] files ...

apxs - i [ - S name = value ] [ - n modname ] [ - a ] [ - A ] dso-file ...

apxs - e [ - S name = value ] [ - n modname ] [ - a ] [ - A ] dso-file ...

top

Options

Common Options

-n modname
это явно устанавливает название модуля для -i (установить) и -g (поколение шаблона) выбор. Используйте это, чтобы явно определить название модуля. Для выбора -g это требуется, для выбора -i apxs инструмент пробует определить название из источника или (как отступление) по крайней мере, предполагая это от имени файла.

Query Options

-q
выполняет вопрос для apxs 's знание об определенных параметрах настройки. вопрос параметры могут быть один или больше следующих верениц: CC , CFLAGS , CFLAGS_SHLIB , INCLUDEDIR , LD_SHLIB , LDFLAGS_SHLIB , LIBEXECDIR , LIBS_SHLIB , SBINDIR , SYSCONFDIR , TARGET .

использовать это для того, чтобы вручную определить параметры настройки. Например использование

INC=-I`apxs -q INCLUDEDIR`

в вашем собственном Makefiles, если Вы нуждаетесь в ручном доступе к файлам удара головой Апача C.

Configuration Options

-S name = value
этот выбор изменяет apxs параметры настройки, описанные выше.

Template Generation Options

-g
это производит подсправочник название (см. выбор -n ) и там два файла: типовой названный файл источника модуля mod_ name .c который может использоваться как шаблон для того, чтобы создать ваши собственные модули или как быстрое начало для того, чтобы играть с apxs механизмом. И передача Makefile для еще легче строят и монтаж этого модуля.

DSO Compilation Options

-c
это указывает операцию компиляции. Это сначала собирает исходные файлы C (.c) файлы в соответствующие файлы объекта (.o) и затем строит динамически разделенный объект в dsofile связывая эти файлы объекта плюс остающиеся файлы объекта (.o и .a) файлы . если нет -o выбор определен, файл продукции предполагается от первого имени файла в файлы и таким образом обычно неплатежи к mod_ name .so .
-o dsofile
явно определяет имя файла созданного динамически разделенного объекта. Если не определенный и название не может предположиться от файлы список, название отступления mod_unknown.so используется.
-D name = value
через этот выбор непосредственно проходят к команде (ам) компиляции. Используйте это, чтобы добавить, что ваше собственное определяет к строящемуся процессу.
-I incdir
через этот выбор непосредственно проходят к команде (ам) компиляции. Используйте это, чтобы добавить, что ваши собственные включают справочники, чтобы искать на строящийся процесс.
-L libdir
через этот выбор непосредственно проходят к команде компоновщика. Используйте это, чтобы добавить ваши собственные справочники библиотеки, чтобы искать на строящийся процесс.
-l libname
через этот выбор непосредственно проходят к команде компоновщика. Используйте это, чтобы добавить ваши собственные библиотеки, чтобы искать на строящийся процесс.
-Wc, compiler-flags
эти проходы выбора флаги компилятора как дополнительные флаги к команде компилятора. Используйте это, чтобы добавить местные определенные для компилятора варианты.
-Wl, linker-flags
эти проходы выбора флаги компоновщика как дополнительные флаги к команде компоновщика. Используйте это, чтобы добавить местные определенные для компоновщика варианты.

DSO Installation and Configuration Options

-i
это указывает инсталяционную операцию и устанавливает один или более динамически разделенные объекты в сервер модули справочник.
-a
это активизирует модуль, автоматически добавляя передачу LoadModule линия к Апачу httpd.conf файл конфигурации, или позволяя это, если это уже существует.
-A
то же самое как выбор -a но созданный LoadModule директива предустановлена с признаком мешанины ( # ), то есть. , модуль только готов к более поздней активации, но первоначально повреждал.
-e
это указывает операцию редактирования, которая может использоваться с -a и -A варианты подобно к -i операция, чтобы редактировать Апача httpd.conf файл конфигурации, не пытаясь устанавливать модуль.
top

Examples

предположить, что Вам назвали Apache модуль mod_foo.c доступный, который должен расширить функциональные возможности сервера Апача. Чтобы достигать этого, Вы сначала должны собрать источник C в разделенный объект, подходящий для того, чтобы загрузить в Apache сервер под временем выполнения через следующую команду:

$ apxs -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
$ _

тогда Вы должны обновить Apacheскую конфигурацию, удостоверяясь a LoadModule директива присутствует, чтобы загрузить этот разделенный объект. Упростить этот шаг apxs обеспечивает автоматический способ установить разделенный объект в его справочнике "модулей" и обновлении httpd.conf файл соответственно. Это может быть достигнуто, бегущий:

$ apxs -i -a mod_foo.c
cp mod_foo.so /path/to/apache/modules/mod_foo.so
chmod 755 /path/to/apache/modules/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
$ _

этим путем названная линия

LoadModule foo_module modules/mod_foo.so

добавлен к файлу конфигурации, если все еще не представляют. Если Вы хотите иметь этих инвалидов в использование неплатежа -A выбор, то есть.

$ apxs -i -A mod_foo.c

для быстрого теста apxs механизма Вы можете создать типовой Apache шаблон модуля плюс передача Makefile через:

$ apxs -g -n foo
Creating [DIR] foo
Creating [FILE] foo/Makefile
Creating [FILE] foo/mod_foo.c
$ _

тогда Вы можете немедленно собрать этот типовой модуль в разделенный объект и загрузить это в Apache сервер:

$ cd foo
$ make all reload
apxs -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
apxs -i -a -n "foo" mod_foo.so
cp mod_foo.so /path/to/apache/modules/mod_foo.so
chmod 755 /path/to/apache/modules/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
apachectl restart
/path/to/apache/sbin/apachectl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
/path/to/apache/sbin/apachectl restart: httpd started
$ _

Вы можете даже использовать apxs собирать сложные модули вне Apacheского исходного дерева, как PHP3:

$ cd php3
$ ./configure --with-shared-apache=../apache-1.3
$ apxs -c -o libphp3.so mod_php3.c libmodphp3-so.a
gcc -fpic -DSHARED_MODULE -I/tmp/apache/include -c mod_php3.c
ld -Bshareable -o libphp3.so mod_php3.o libmodphp3-so.a
$ _

потому что apxs автоматически признанный C исходные файлы и файлы объекта. Только C исходные файлы собраны, оставаясь файлами объекта используются для связавшейся фазы.