Apache Версия 2.0 Сервера HTTP
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
исходный файл.
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
...
-n
modname
-i
(установить) и
-g
(поколение шаблона) выбор. Используйте это, чтобы явно определить название модуля. Для выбора
-g
это требуется, для выбора
-i
apxs
инструмент пробует определить название из источника или (как отступление) по крайней мере, предполагая это от имени файла.
-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.
-S
name
=
value
-g
-n
) и там два файла: типовой названный файл источника модуля
mod_
name
.c
который может использоваться как шаблон для того, чтобы создать ваши собственные модули или как быстрое начало для того, чтобы играть с apxs механизмом. И передача
Makefile
для еще легче строят и монтаж этого модуля.
-c
-o
выбор определен, файл продукции предполагается от первого имени файла в
файлы
и таким образом обычно неплатежи к
mod_
name
.so
.
-o
dsofile
mod_unknown.so
используется.
-D
name
=
value
-I
incdir
-L
libdir
-l
libname
-Wc,
compiler-flags
-Wl,
linker-flags
-i
-a
LoadModule
линия к Апачу
httpd.conf
файл конфигурации, или позволяя это, если это уже существует.
-A
-a
но созданный
LoadModule
директива предустановлена с признаком мешанины (
#
),
то есть.
, модуль только готов к более поздней активации, но первоначально повреждал.
-e
-a
и
-A
варианты подобно к
-i
операция, чтобы редактировать Апача
httpd.conf
файл конфигурации, не пытаясь устанавливать модуль.
предположить, что Вам назвали 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 исходные файлы собраны, оставаясь файлами объекта используются для связавшейся фазы.