Возможно вы искали: 'Робин Гуд. Легенда Шер...'

May 15 2025 19:07:55
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » APXS - инструмент для сборки модулей Apache (apache apxs module build)

APXS - инструмент для сборки модулей Apache (apache apxs module build)

Ключевые слова: apache, apxs, module, build, (найти похожие документы)

From: ApacheDev.ru
Date: Sun, 16 Feb 2008 17:02:14 +0000 (UTC)
Subject: APXS - инструмент для сборки модулей Apache

Оригинал: http://apachedev.ru/2006/08/23/apxs-instrument-dlya-sborki-moduley-apache/


apxs - это утилита для сборки и установки модулей для HTTP сервера
Apache. Apxs создает динамически-загружаемые объекты (DSO) из одного
или нескольких файлов исходного кода или объектных файлов, которые
затем могут загружаться в сервер Apache с помощью директивы LoadModule
модуля mod_so.

Данная статья впервые была опубликова в 8 номере рассылки
"Информационный бюллетень от ApacheDev.ru" Подписаться на
рассылку.

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

$ httpd -l


Модуль mod_so должен быть в этом списке.
Если эти требования соблюдены, то вы легко сможете расширить
функциональность вашего сервера собственными модулями с помощью
утилиты 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
$ _


Аргумент files может содержать файлы исходных текстов на Си (.c),
объектные файлы (.o) или файлы библиотек (.a). Утилита apxs
автоматически распознает эти файлы и скомпилирует Си файлы, а
объектные файлы и файлы архивов только скомпонует. Но, если вы
используете объектные файлы, то убедитесь, что их код скомпилирован
как независимый от расположения (position independent code (PIC)).

Это обязательное условия для их динамической загрузки. Например, в
компиляторе GCC для этого необходимо использовать параметр -fpic.
Если вы используете другой Си компилятор, то поищите описание этой
возможности в документации.

Для дополнительной информации о поддержки DSO в 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
Опция n явно задает имя модуля для опций -i (установка) и для
-g (генерация шаблона). При использовании опции -g она
обязательна, а при использовании -i, если n не задана, тогда
утилита apxs попытается определить имя модуля из исходного кода
или из имени файла.


Опции запроса


-q
Позволяет запрашивать у утилиты apxs некоторые параметры среды.
Запрашиваемые параметры задаются в query и имеют следующие
значения: CC, CFLAGS, CFLAGS_SHLIB, INCLUDEDIR, LD_SHLIB,
LDFLAGS_SHLIB, LIBEXECDIR, LIBS_SHLIB, SBINDIR, SYSCONFDIR,
TARGET. Например, следующая строка
INC=-I`apxs -q INCLUDEDIR`
внутри make-файла, добавит в переменную INC каталог Apache с
заголовочными файлами.


Опции конфигурации


-S name=value
Эта опция меняет настройки apxs, описанные выше. Например: -S
CFLAGS="`$APXS -q CFLAGS`"


Опции генерации шаблона


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


Опции компиляции DSO


-c
Опция c запускает выполнение компиляции. В этом случае apxs
сперва компилирует все С-файлы (.c), заданные в files, в
соответствующие объектные файлы (.o), а затем создает
динамический объект dsofile, компонуя скомпилированные
объектные файлы с оставшимися объектными файлами (.o и .a) из
files. Если опция -o не указана, тогда имя выходного файла
задается именем первого файла из files.

-o dsofile
Явно задает имя файла создаваемого динамического объекта. В
случае если dsofile не указано и имя не может быть определено
из files, тогда используется имя mod_unknown.so.

-D name=value
Значение этой опции напрямую передается компилятору. Она
используется для добавления определений в процесс сборки.

-I incdir
Значение этой опции также напрямую передается компилятору.
Используйте ее для добавления каталогов с заголовочными файлами
в процесс сборки.

-L libdir
Значение этой опции передается компоновщику. Используйте ее для
добавления каталогов с библиотеками в процесс сборки.

-l libname
Значение этой опции также передается компоновщику. Используйте
ее для добавления дополнительных библиотек.

-Wc,compiler-flags
Эта опция передает для команды libtool -mode=compile
дополнительные флаги compiler-flags. Используйте ее для
использования специфичных параметров компилятора.

-Wl,linker-flags
Эта опция передает для команды libtool -mode=link
дополнительные флаги linker-flags. Используйте ее для
использования специфичных параметров компоновщика.


Установка DSO и опции конфигурации


-i
Этот флаг обозначает операцию установки. Если он указан, то все
dso-файлы модулей, созданные утилитой apxs, будут скопированы в
серверный каталог modules.

-a
Флаг активизирует модуль путем добавления соответствующей
строки LoadModule в конфигурационный файл htppd.conf.

-A
Так же как и опция -a добавляет директиву LoadModule, но с
префиксом #, т.е. модуль подготавливается для дальнейшего
использования, но пока деактивирован.

-e
Этот флаг задает операцию редактирования конфигурационного
файла httpd.conf. Может быть использован вместе с опциями -a и
-A.


Примеры


Предположим, что имя файла нашего модуля Apache - mod_foo.c. Прежде
всего надо скомпилировать исходный С файл в DSO файл, который можно
будет загрузить в сервер Apache во время исполнения. Делается это с
помощью следующей команды:

$ apxs -c mod_foo.c
/path/to/libtool -mode=compile gcc ... -c mod_foo.c
/path/to/libtool -mode=link gcc ... -o mod_foo.la mod_foo.slo
$ _


Теперь необходимо обновить конфигурацию Apache, чтобы быть уверенным,
что директива для загрузки этого модуля (LoadModule) создана. Утилита
apxs сама устанавливает созданные объекты в каталог модулей и
соответственно обновляет файл httpd.conf. Делается это следующим
образом:

$ apxs -i -a mod_foo.la
/path/to/instdso.sh mod_foo.la /path/to/apache/modules
/path/to/libtool -mode=install cp mod_foo.la /path/to/apache/modules
...
chmod 755 /path/to/apache/modules/mod_foo.so
[activating module `foo' in /path/to/apache/conf/httpd.conf]
$ _


Эта команда добавит следующую строку в файл 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/modules.mk
Creating [FILE] foo/mod_foo.c
Creating [FILE] foo/.deps
$ _


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

$ cd foo
$ make all reload
apxs -c mod_foo.c
/path/to/libtool -mode=compile gcc ... -c mod_foo.c
/path/to/libtool -mode=link gcc ... -o mod_foo.la mod_foo.slo
apxs -i -a -n "foo" mod_foo.la
/path/to/instdso.sh mod_foo.la /path/to/apache/modules
/path/to/libtool -mode=install cp mod_foo.la /path/to/apache/modules
...
chmod 755 /path/to/apache/modules/mod_foo.so
[activating module `foo' in /path/to/apache/conf/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
$ _


Источник: httpd.apache.org
Перевод: ApacheDev.ru
349 Прочтений •  [APXS - инструмент для сборки модулей Apache (apache apxs module build)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• APXS - инструмент для сборки модуле... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка