configure — настройка дерева исходного кода
Скрипт configure настраивает дерево исходного кода для компиляции и установки Apache HTTP Server на вашей платформе. Различные параметры позволяют скомпилировать сервер в соответствии с вашими требованиями.
Этот скрипт, включённый в корневой каталог дистрибутива исходного кода, предназначен только для компиляции в Unix и Unix-подобных системах. Сведения о других платформах см. в документации по платформам.
Краткое описание
Скрипт configure следует запускать из корневого каталога дистрибутива.
./configure [OPTION]... [VAR=VALUE]...
Чтобы задать переменные среды (например, CC, CFLAGS ...), укажите их как VAR=VALUE. Описание некоторых полезных переменных см. ниже.
Параметры
- Параметры конфигурации
- Каталоги установки
- Типы систем
- Дополнительные возможности
- Параметры вспомогательных программ
Параметры конфигурации
Следующие параметры влияют на работу самого configure.
-C--config-cache- Это псевдоним для
--cache-file=config.cache --cache-file=FILE- Результаты проверок будут кэшироваться в файле FILE. По умолчанию этот параметр отключён.
-h--help [short|recursive]- Вывести справку и завершить работу. С аргументом
shortбудут показаны только параметры, относящиеся к этому пакету. Аргументrecursiveвыводит краткую справку по всем включённым пакетам. -n--no-create- Скрипт
configureвыполняется обычным образом, но не создаёт выходные файлы. Это полезно, чтобы проверить результаты тестов перед созданием файлов make для компиляции. -q--quiet- Не выводить сообщения
checking ...во время процесса настройки. --srcdir=DIR- Задать каталог DIR в качестве каталога исходных файлов. По умолчанию используется каталог, в котором находится
configure, либо родительский каталог. --silent- То же, что и
--quiet - -V
- --version
- Вывести сведения об авторских правах и завершить работу.
Каталоги установки
Эти параметры определяют каталог установки. Структура дерева установки зависит от выбранной схемы размещения.
--prefix=PREFIX- Установить файлы, не зависящие от архитектуры, в PREFIX. По умолчанию каталог установки —
/usr/local/apache2. --exec-prefix=EPREFIX- Установить файлы, зависящие от архитектуры, в EPREFIX. По умолчанию в качестве каталога установки используется каталог PREFIX.
По умолчанию make install устанавливает все файлы в /usr/local/apache2/bin, /usr/local/apache2/lib и т. д. Можно указать префикс установки, отличный от /usr/local/apache2, с помощью --prefix, например --prefix=$HOME.
Определение структуры каталогов
--enable-layout=LAYOUT- Настроить исходный код и сценарии сборки, предполагая, что дерево установки соответствует схеме LAYOUT. Это позволяет отдельно указать расположение каждого типа файлов в установке Apache HTTP Server. Файл
config.layoutсодержит несколько примеров конфигураций; также можно создать собственную конфигурацию по этим примерам. Различные схемы из этого файла сгруппированы в разделы<Layout FOO>...</Layout>и обозначены именами, напримерFOO. По умолчанию используется схемаApache.
Точная настройка каталогов установки
Для более точного управления каталогами установки используйте приведённые ниже параметры. Обратите внимание: значения каталогов по умолчанию задаются с помощью autoconf и переопределяются соответствующей настройкой схемы размещения.
--bindir=DIR- Установить пользовательские исполняемые файлы в DIR. К пользовательским исполняемым файлам относятся вспомогательные программы, такие как
htpasswd,dbmmanageи т. д., полезные администраторам сайта. По умолчанию для DIR задаётся значениеEPREFIX/bin. --datadir=DIR- Установить доступные только для чтения данные, не зависящие от архитектуры, в DIR. По умолчанию для
datadirзадаётся значениеPREFIX/share. Этот параметр предоставляетсяautoconfи в настоящее время не используется. --includedir=DIR- Установить заголовочные файлы C в DIR. По умолчанию для
includedirзадаётся значениеEPREFIX/include. --infodir=DIR- Установить документацию в формате info в DIR. По умолчанию для
infodirзадаётся значениеPREFIX/info. Этот параметр в настоящее время не используется. --libdir=DIR- Установить библиотеки объектного кода в DIR. По умолчанию для
libdirзадаётся значениеEPREFIX/lib. --libexecdir=DIR- Установить исполняемые файлы программ (то есть общие модули) в DIR. По умолчанию для
libexecdirзадаётся значениеEPREFIX/modules. --localstatedir=DIR- Установить изменяемые данные для одной машины в DIR. По умолчанию для
localstatedirзадаётся значениеPREFIX/var. Этот параметр предоставляетсяautoconfи в настоящее время не используется. --mandir=DIR- Установить документацию man в DIR. По умолчанию для
mandirзадаётся значениеEPREFIX/man. --oldincludedir=DIR- Установить заголовочные файлы C для компиляторов, отличных от gcc, в DIR. По умолчанию для
oldincludedirзадаётся значение/usr/include. Этот параметр предоставляетсяautoconfи в настоящее время не используется. --sbindir=DIR- Установить исполняемые файлы для системного администратора в DIR. К ним относятся серверные программы, такие как
httpd,apachectl,suexecи т. д., необходимые для работы Apache HTTP Server. По умолчанию дляsbindirзадаётся значениеEPREFIX/sbin. --sharedstatedir=DIR- Установить изменяемые данные, не зависящие от архитектуры, в DIR. По умолчанию для
sharedstatedirзадаётся значениеPREFIX/com. Этот параметр предоставляетсяautoconfи в настоящее время не используется. --sysconfdir=DIR- Установить доступные только для чтения данные для одной машины, например файлы конфигурации сервера
httpd.conf,mime.typesи т. д., в DIR. По умолчанию дляsysconfdirзадаётся значениеPREFIX/conf.
Типы систем
Эти параметры используются для кросс-компиляции Apache HTTP Server с целью его запуска в другой системе. В обычных случаях, когда сервер собирается и запускается в одной и той же системе, эти параметры не используются.
--build=BUILD- Определяет тип системы, в которой собираются инструменты. По умолчанию используется результат выполнения скрипта
config.guess. --host=HOST- Определяет тип системы, в которой будет работать сервер. По умолчанию значение HOST совпадает со значением BUILD.
--target=TARGET- Настроить сборку компиляторов для системы типа TARGET. По умолчанию используется значение HOST. Этот параметр предоставляется
autoconfи для Apache HTTP Server не требуется.
Дополнительные возможности
Эти параметры позволяют точно настроить возможности вашего HTTP-сервера.
Общий синтаксис
Для включения или отключения возможности обычно можно использовать следующий синтаксис:
--disable-FEATURE- Не включать FEATURE. То же, что и
--enable-FEATURE=no. --enable-FEATURE[=ARG]- Включить FEATURE. По умолчанию для ARG используется значение
yes. --enable-MODULE=shared- Соответствующий модуль будет собран как модуль DSO. По умолчанию включённые модули связываются динамически.
--enable-MODULE=static- Соответствующий модуль будет связан статически.
Примечание
configure не сообщит об ошибке, если --enable-foo не существует, поэтому вводите команду внимательно. Выбор модулей для компиляции
Большинство модулей компилируются по умолчанию. Чтобы отключить их, необходимо сделать это явно или использовать ключевое слово few (дополнительные сведения см. ниже в разделах --enable-modules, --enable-mods-shared и --enable-mods-static) либо --enable-modules=none, чтобы исключить их группой.
Другие модули по умолчанию не компилируются. Чтобы использовать их, необходимо явно включить их либо воспользоваться ключевыми словами all или reallyall.
Чтобы узнать, какие модули компилируются по умолчанию, выполните ./configure -h или ./configure --help и посмотрите раздел Optional Features. Предположим, вас интересуют mod_example1 и mod_example2, и вы видите следующее:
Optional Features: ... --disable-example1 example module 1 --enable-example2 example module 2 ...
Тогда mod_example1 включён по умолчанию, и для исключения его из компиляции следует использовать --disable-example1. mod_example2 по умолчанию отключён, и для его компиляции следует использовать --enable-example2.
Модули многопроцессной обработки
Модули многопроцессной обработки (MPM) реализуют базовое поведение сервера. Для работы сервера должен быть активен один MPM. Список доступных MPM приведён на странице указателя модулей.
MPM можно собирать как модули DSO для динамической загрузки или статически связывать с сервером; для их включения используются следующие параметры:
--with-mpm=MPM-
Выбрать MPM по умолчанию для сервера. Если MPM собираются как модули DSO (см.
--enable-mpms-shared), эта директива выбирает MPM, который будет загружаться из файла конфигурации по умолчанию. В противном случае директива выбирает единственный доступный MPM, который будет статически связан с сервером.Если этот параметр не указан, будет использоваться MPM по умолчанию для вашей операционной системы.
--enable-mpms-shared=MPM-LIST-
Включить список MPM в качестве динамических общих модулей. Один из этих модулей необходимо динамически загрузить с помощью директивы
LoadModule.MPM-LIST — список имён MPM, разделённых пробелами и заключённых в кавычки. Например:
--enable-mpms-shared='prefork worker'
Кроме того, можно использовать специальное ключевое слово
all, которое выберет все MPM, поддерживающие динамическую загрузку на текущей платформе, и соберёт их как модули DSO. Например:--enable-mpms-shared=all
Сторонние модули
Чтобы добавить сторонние модули, используйте следующие параметры:
--with-module=module-type:module-file[, module-type:module-file]-
Добавить один или несколько сторонних модулей в список статически связанных модулей. Исходный файл модуля
module-fileбудет искаться в подкаталогеmodules/module-typeдерева исходного кода Apache HTTP Server. Если файл там не найден,configureсочтёт, что module-file — это абсолютный путь к файлу, и попытается скопировать исходный файл в подкаталог module-type. Если подкаталога нет, он будет создан и заполнен стандартным файломMakefile.in.Этот параметр полезен для добавления небольших внешних модулей, состоящих из одного исходного файла. Для более сложных модулей следует обратиться к документации поставщика.
Примечание
Чтобы собрать модуль DSO вместо статически связанного модуля, используйтеapxs.
Накопительные и прочие параметры
--enable-maintainer-mode- Включить отладку и предупреждения во время компиляции, а также загрузить все скомпилированные модули.
--enable-mods-shared=MODULE-LIST-
Задаёт список модулей, которые следует включить и собрать как динамические общие модули. Это означает, что такие модули необходимо загружать динамически с помощью директивы
LoadModule.MODULE-LIST — список имён модулей, разделённых пробелами и заключённых в кавычки. Имена модулей указываются без префикса
mod_. Например:--enable-mods-shared='headers rewrite dav'
Кроме того, можно использовать специальные ключевые слова
reallyall,all,mostиfew. Например:--enable-mods-shared=mostскомпилирует большинство модулей и соберёт их как модули DSO,
--enable-mods-shared=fewскомпилирует только самый базовый набор модулей.
По умолчанию используется набор
most.Директивы
LoadModuleдля выбранных модулей будут автоматически созданы в основном файле конфигурации. По умолчанию все эти директивы будут закомментированы, за исключением директив для модулей, которые необходимы или явно выбраны аргументом--enable-fooкоманды configure. Набор загружаемых модулей можно изменить, активируя или деактивируя директивыLoadModuleв файлеhttpd.conf. Кроме того, директивыLoadModuleдля всех собранных модулей можно активировать с помощью параметра configure--enable-load-all-modules. --enable-mods-static=MODULE-LIST- Этот параметр действует аналогично
--enable-mods-shared, но связывает указанные модули статически. Это означает, что такие модули всегда будут присутствовать во время работыhttpd. Загружать их с помощьюLoadModuleне требуется. --enable-modules=MODULE-LIST- Этот параметр действует аналогично
--enable-mods-sharedи также связывает указанные модули динамически. Специальное ключевое словоnoneотключает сборку всех модулей. --enable-v4-mapped- Разрешить сокетам IPv6 обрабатывать подключения IPv4.
--with-port=PORT- Задаёт порт, на котором
httpdбудет ожидать подключений. Этот номер порта используется при создании файла конфигурацииhttpd.conf. По умолчанию — 80. --with-program-name- Задать альтернативное имя исполняемого файла. По умолчанию используется
httpd.
Дополнительные пакеты
Эти параметры используются для определения дополнительных пакетов.
Общий синтаксис
Для определения дополнительного пакета обычно можно использовать следующий синтаксис:
--with-PACKAGE[=ARG]- Использовать пакет PACKAGE. По умолчанию для ARG используется значение
yes. --without-PACKAGE- Не использовать пакет PACKAGE. То же, что и
--with-PACKAGE=no. Этот параметр предоставляетсяautoconf, но не очень полезен для Apache HTTP Server.
Конкретные пакеты
--with-apr=DIR|FILE- Переносимая среда выполнения Apache (APR) входит в дистрибутив исходного кода httpd и автоматически собирается вместе с HTTP-сервером. Если вместо неё вы хотите использовать уже установленную APR, необходимо указать
configureпуть к скриптуapr-config. Можно задать абсолютный путь и имя скрипта либо каталог установленной APR. В этом каталоге или его подкаталогеbinдолжен находитьсяapr-config. --with-apr-util=DIR|FILE- Утилиты Apache Portable Runtime (APU) входят в дистрибутив исходного кода httpd и автоматически собираются вместе с HTTP-сервером. Если вместо них вы хотите использовать уже установленную APU, необходимо указать
configureпуть к скриптуapu-config. Можно задать абсолютный путь и имя скрипта либо каталог установленной APU. В этом каталоге или его подкаталогеbinдолжен находитьсяapu-config. --with-ssl=DIR- Если включён
mod_ssl,configureвыполняет поиск установленного OpenSSL. Вместо этого можно задать путь к каталогу набора инструментов SSL/TLS. --with-z=DIR-
configureавтоматически ищет установленную библиотекуzlib, если она требуется конфигурации исходного кода (например, когда включёнmod_deflate). Вместо этого можно задать путь к каталогу библиотеки сжатия.
В некоторых функциях Apache HTTP Server, включая mod_authn_dbm и DBM RewriteMap компонента mod_rewrite, используются простые базы данных «ключ/значение» для быстрого поиска информации. SDBM входит в состав APU, поэтому эта база данных доступна всегда. Если вы хотите использовать другие типы баз данных, включите их с помощью следующих параметров:
--with-gdbm[=path]- Если path не указан,
configureбудет искать заголовочные файлы и библиотеки GNU DBM в стандартных путях поиска. Если указать path,configureбудет искать нужные файлы вpath/libиpath/include. Наконец, в качестве path можно указать конкретные пути к заголовочным файлам и библиотекам, разделив их двоеточием. --with-ndbm[=path]- Аналогично
--with-gdbm, но выполняет поиск установки New DBM. --with-berkeley-db[=path]- Аналогично
--with-gdbm, но выполняет поиск установки Berkeley DB.
Примечание
Параметры DBM предоставляются APU и передаются её скрипту настройки. Они бесполезны при использовании уже установленной APU, заданной с помощью --with-apr-util.
С HTTP-сервером можно использовать несколько реализаций DBM одновременно. Соответствующий тип DBM будет каждый раз задаваться в конфигурации времени выполнения.
Параметры вспомогательных программ
--enable-static-support- Собрать вспомогательные исполняемые файлы со статической компоновкой. Это означает, что будет создан самостоятельный исполняемый файл со всеми необходимыми библиотеками. В противном случае вспомогательные исполняемые файлы по умолчанию связываются динамически.
--enable-suexec- Используйте этот параметр, чтобы включить
suexec, позволяющий задавать uid и gid для порождаемых процессов. Не используйте этот параметр, если не понимаете всех последствий для безопасности при запуске на сервере двоичного файла suid. Дополнительные параметры настройкиsuexecописаны ниже.
С помощью следующих параметров можно создать двоичный файл с статической компоновкой для отдельной вспомогательной программы:
--enable-static-ab- Собрать
abсо статической компоновкой. --enable-static-checkgid- Собрать
checkgidсо статической компоновкой. --enable-static-htdbm- Собрать
htdbmсо статической компоновкой. --enable-static-htdigest- Собрать
htdigestсо статической компоновкой. --enable-static-htpasswd- Собрать
htpasswdсо статической компоновкой. --enable-static-logresolve- Собрать
logresolveсо статической компоновкой. --enable-static-rotatelogs- Собрать
rotatelogsсо статической компоновкой.
Параметры настройки suexec
Следующие параметры используются для точной настройки работы suexec. Дополнительные сведения см. в разделе Настройка и установка suEXEC.
--with-suexec-bin- Задаёт путь к двоичному файлу
suexec. По умолчанию используется--sbindir(см. раздел Точная настройка каталогов установки). --with-suexec-caller- Задаёт пользователя, которому разрешено вызывать
suexec. Это должен быть пользователь, от имени которого обычно работаетhttpd. --with-suexec-docroot- Задаёт дерево каталогов, в пределах которого
suexecразрешён доступ к исполняемым файлам. Значение по умолчанию —--datadir/htdocs. --with-suexec-gidmin- Задаёт минимальный GID, разрешённый для целевого пользователя
suexec. Значение по умолчанию — 100. --with-suexec-logfile- Задаёт имя файла журнала
suexec. По умолчанию журнал называетсяsuexec_logи находится в--logfiledir. --with-suexec-safepath- Задаёт значение переменной среды
PATHдля процессов, запущенныхsuexec. Значение по умолчанию —/usr/local/bin:/usr/bin:/bin. --with-suexec-userdir- Задаёт подкаталог в каталоге пользователя, содержащий все исполняемые файлы, к которым разрешён доступ
suexec. Этот параметр необходим, если вы хотите использоватьsuexecвместе с каталогами пользователей (как в случае сmod_userdir). По умолчанию используетсяpublic_html. --with-suexec-uidmin- Задаёт минимальный UID, разрешённый для целевого пользователя
suexec. Значение по умолчанию — 100. --with-suexec-umask- Задаёт
umaskдля процессов, запущенныхsuexec. По умолчанию используются системные настройки.
Переменные среды
Некоторые полезные переменные среды позволяют переопределить настройки, выбранные configure, или помочь найти библиотеки и программы с нестандартными именами или расположением.
CC- Задаёт команду компилятора C для компиляции.
CFLAGS- Задаёт флаги компилятора C, которые следует использовать при компиляции.
CPP- Задаёт команду препроцессора C.
CPPFLAGS- Задаёт флаги препроцессора C/C++, например
-Iincludedir, если заголовочные файлы находятся в нестандартном каталоге includedir. LDFLAGS- Задаёт флаги компоновщика, например
-Llibdir, если библиотеки находятся в нестандартном каталоге libdir.
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/programs/configure.html