Это команда apxs, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
apxs - инструмент расширения APache
СИНТАКСИС
апкс -g [-S имя=ценностное ] -n имя мода
апкс -q [-v ] [-S имя=ценностное ] запрос ...
апкс -c [-S имя=ценностное ] [-o дсофайл ] [-I incdir ] [-D имя=ценностное ] [-L каталог библиотеки ] [
-l имя библиотеки ] [-туалет,флаги компилятора ] [-Вл,компоновщик-флаги ] файлов ...
апкс -i [-S имя=ценностное ] [-n имя мода ] [-a ] [-A ] dso-файл ...
апкс -e [-S имя=ценностное ] [-n имя мода ] [-a ] [-A ] dso-файл ...
РЕЗЮМЕ
apxs - это инструмент для создания и установки модулей расширения для Apache HyperText.
Сервер протокола передачи (HTTP). Это достигается путем создания динамического общего объекта.
(DSO) из одного или нескольких источников или объектов файлов который затем можно загрузить в Apache
сервер во время выполнения через директиву LoadModule из mod_so.
Итак, чтобы использовать этот механизм расширения, ваша платформа должна поддерживать функцию DSO и ваш
Бинарный файл Apache httpd должен быть построен с помощью модуля mod_so. Инструмент apxs автоматически
жалуется, если это не так. Вы можете проверить это самостоятельно, запустив вручную
команду
$ httpd -l
Модуль mod_so должен быть частью отображаемого списка. Если эти требования
выполнено, вы можете легко расширить функциональность своего сервера Apache, установив свой собственный
модули с механизмом DSO с помощью этого инструмента apxs:
$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I / путь / к / apache / include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /путь/к/apache/modules/mod_foo.so
chmod 755 /путь/к/apache/modules/mod_foo.so
[активация модуля `foo 'в /path/to/apache/etc/httpd.conf]
$ apachectl перезапуск
/ путь / к / apache / sbin / apachectl restart: httpd не запущен, пытается запустить
[Вт 31 марта, 11:27:55 1998] [отладка] mod_so.c(303): загруженный модуль foo_module
/ путь / к / apache / sbin / apachectl restart: httpd запущен
$_
Аргументы файлов может быть любым исходным файлом C (.c), объектным файлом (.o) или даже библиотекой
архив (.a). Инструмент apxs автоматически распознает эти расширения и автоматически
использовали исходные файлы C для компиляции, в то время как просто использовали объектные и архивные файлы для
этап связывания. Но при использовании таких предварительно скомпилированных объектов убедитесь, что они скомпилированы
для позиционно-независимого кода (PIC), чтобы иметь возможность использовать их для динамически загружаемых общих
объект. Например, с GCC вам всегда просто нужно использовать -fpic. Для других компиляторов C
обратитесь к его странице руководства или посмотрите, какие флаги использует apxs для компиляции объектных файлов.
Для получения дополнительной информации о поддержке DSO в Apache прочтите документацию mod_so или, возможно,
даже прочитать исходный файл src / modules / standard / mod_so.c.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
Общий Возможности
-n имя мода
Это явно устанавливает имя модуля для -i (установка) и -g (шаблон
поколение) вариант. Используйте это, чтобы явно указать имя модуля. Для опции -g
это необходимо, для опции -i инструмент apxs пытается определить имя из
источник или (в качестве запасного варианта), по крайней мере, угадав его по имени файла.
запрос Возможности
-q Выполняет запрос переменных и настроек среды, используемых для построения httpd. Когда
вызывается без запрос параметры, он печатает все известные переменные и их значения.
Необязательный параметр -v форматирует вывод списка. .PP Используйте это, чтобы вручную
определить настройки, используемые для создания httpd, который загрузит ваш модуль. Например
используйте INC = -I`apxs -q INCLUDEDIR` .PP внутри ваших собственных файлов Makefile, если вам нужно руководство
доступ к файлам заголовков Apache C.
Конфигурация Возможности
-S имя=ценностное
Эта опция изменяет настройки apxs, описанные выше.
шаблон Поколение Возможности
-g Создает подкаталог имя (см. параметр -n) и там два файла: Образец
исходный файл модуля с именем mod_имя.c, который можно использовать как шаблон для создания
ваши собственные модули или как быстрый старт для игры с механизмом apxs. И
соответствующий Makefile для еще более простой сборки и установки этого модуля.
DSO Сборник Возможности
-c Это указывает на операцию компиляции. Сначала он компилирует исходные файлы C (.c)
of файлов в соответствующие объектные файлы (.o), а затем создает динамически разделяемый
объект в дсофайл связав эти объектные файлы с остальными объектными файлами (.o
и .a) из файлов. Если опция -o не указана, выходной файл определяется из
первое имя файла в файлов и поэтому обычно по умолчанию используется mod_имя.так.
-o дсофайл
Явно указывает имя файла созданного динамически разделяемого объекта. Если не
указано, и имя не может быть угадано из файлов список, резервное имя
mod_unknown.so используется.
-D имя=ценностное
Эта опция напрямую передается команде (ам) компиляции. Используйте это, чтобы
добавьте свои собственные определения в процесс сборки.
-I incdir
Эта опция напрямую передается команде (ам) компиляции. Используйте это, чтобы
добавьте свои собственные подключаемые каталоги для поиска в процессе сборки.
-L каталог библиотеки
Эта опция напрямую передается команде компоновщика. Используйте это, чтобы добавить свой
собственные каталоги библиотек для поиска в процессе сборки.
-l имя библиотеки
Эта опция напрямую передается команде компоновщика. Используйте это, чтобы добавить свой
собственные библиотеки для поиска в процессе сборки.
-Туалет,флаги компилятора
Этот вариант проходит флаги компилятора в качестве дополнительных флагов к libtool --mode = compile
команда. Используйте это, чтобы добавить локальные параметры, специфичные для компилятора.
-Вл,компоновщик-флаги
Этот вариант проходит компоновщик-флаги в качестве дополнительных флагов к libtool --mode = link
команда. Используйте это, чтобы добавить параметры, специфичные для локального компоновщика.
-p Эта опция заставляет apxs связываться с библиотеками apr / apr-util. Это полезно
при компиляции вспомогательных программ, использующих библиотеки apr / apr-util.
DSO Установка: и Конфигурация Возможности
-i Это указывает на операцию установки и устанавливает один или несколько динамически
общие объекты в серверные модули каталог.
-a Это активирует модуль, автоматически добавляя соответствующую строку LoadModule
в файл конфигурации Apache httpd.conf или включив его, если он уже существует.
-A То же, что и опция -a, но созданная директива LoadModule имеет префикс со знаком решетки
(#), т.е., модуль просто подготовлен для последующей активации, но изначально отключен.
-e Указывает на операцию редактирования, которую можно использовать с параметрами -a и -A.
аналогично операции -i для редактирования файла конфигурации Apache httpd.conf
без попытки установить модуль.
ПРИМЕРЫ
Предположим, у вас есть модуль Apache с именем mod_foo.c, который должен расширять Apache
функциональность сервера. Для этого вам сначала нужно скомпилировать исходный код C в
общий объект, подходящий для загрузки на сервер Apache во время выполнения с помощью следующих
команда:
$ apxs -c mod_foo.c
/ путь / к / libtool --mode = скомпилировать gcc ... -c mod_foo.c
/ путь / к / libtool --mode = ссылка gcc ... -o mod_foo.la mod_foo.slo
$_
Затем вам нужно обновить конфигурацию Apache, убедившись, что директива LoadModule
присутствует для загрузки этого общего объекта. Чтобы упростить этот шаг, apxs предоставляет автоматический способ
для установки общего объекта в его каталог "modules" и обновления файла httpd.conf
соответственно. Этого можно добиться, запустив:
$ apxs -i -a mod_foo.la
/path/to/instdso.sh mod_foo.la / путь / к / apache / модулям
/ путь / к / libtool --mode = установить cp mod_foo.la / путь / к / apache / modules
...
chmod 755 /путь/к/apache/modules/mod_foo.so
[активация модуля `foo 'в /path/to/apache/conf/httpd.conf]
$_
Таким образом, строка с именем
LoadModule модули foo_module / mod_foo.so
добавляется в файл конфигурации, если его еще нет. Если вы хотите отключить это
по умолчанию используйте параметр -A, т.е.
$ apxs -i -A mod_foo.c
Для быстрого тестирования механизма apxs вы можете создать образец шаблона модуля Apache плюс
соответствующий Makefile через:
$ apxs -g -n foo
Создание [DIR] foo
Создание [FILE] foo / Makefile
Создание [ФАЙЛА] foo / modules.mk
Создание [FILE] foo / mod_foo.c
Создание [ФАЙЛА] foo / .deps
$_
Затем вы можете сразу скомпилировать этот образец модуля в общий объект и загрузить его в
сервер Apache:
$ компакт-диск фу
$ сделать все перезагрузить
apxs -c mod_foo.c
/ путь / к / libtool --mode = скомпилировать gcc ... -c mod_foo.c
/ путь / к / libtool --mode = ссылка gcc ... -o mod_foo.la mod_foo.slo
apxs -i -a -n "foo" mod_foo.la
/path/to/instdso.sh mod_foo.la / путь / к / apache / модулям
/ путь / к / libtool --mode = установить cp mod_foo.la / путь / к / apache / modules
...
chmod 755 /путь/к/apache/modules/mod_foo.so
[активация модуля `foo 'в /path/to/apache/conf/httpd.conf]
перезапуск apachectl
/ путь / к / apache / sbin / apachectl restart: httpd не запущен, пытается запустить
[Вт 31 марта, 11:27:55 1998] [отладка] mod_so.c(303): загруженный модуль foo_module
/ путь / к / apache / sbin / apachectl restart: httpd запущен
$_
Используйте apxs в Интернете с помощью сервисов onworks.net