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 даже если 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. Если он не найден там,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. Вы можете изменить набор загруженных модулей, активировав или деактивировав директивыLoadModuleвhttpd.conf. Кроме того, директивыLoadModuleдля всех созданных модулей можно активировать с помощью параметра конфигурации--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 Portable Runtime (APR) входит в дистрибутив исходного кода httpd и будет автоматически скомпилирован вместе с сервером HTTP. Если вы хотите использовать уже установленный APR, вам нужно указать
configureпуть к скриптуapr-config. Вы можете указать абсолютный путь и имя или каталог установленного APR.apr-configдолжен существовать в этом каталоге или в подкаталогеbin. --with-apr-util=DIR|FILE- Apache Portable Runtime Utilities (APU) входят в дистрибутив исходного кода httpd и будут автоматически скомпилированы вместе с сервером HTTP. Если вы хотите использовать уже установленный APU, вам нужно указать
configureпуть к скриптуapu-config. Вы можете указать абсолютный путь и имя или каталог установленного APU.apu-configдолжен существовать в этом каталоге или в подкаталогеbin. --with-ssl=DIR- Если
mod_sslвключен,configureищет установленный OpenSSL. Вы можете указать путь к каталогу инструментария SSL/TLS вместо этого. --with-z=DIR-
configureавтоматически ищет установленную библиотекуzlib, если конфигурация исходного кода требует её (например, когдаmod_deflateвключен). Вы можете указать путь к каталогу библиотеки сжатия вместо этого.
Некоторые функции Apache HTTP Server, включая mod_authn_dbm и mod_rewrite базу данных DBM RewriteMap, используют простые базы данных ключ/значение для быстрого поиска информации. 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.
Вы можете использовать несколько реализаций DBM вместе с сервером HTTP. Тип 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- This defines the path to
suexecbinary. Default is--sbindir(see Fine tuning of installation directories). --with-suexec-caller- This defines the user allowed to call
suexec. It should be the same as the user under whichhttpdnormally runs. --with-suexec-docroot- This defines the directory tree under which
suexecaccess is allowed for executables. Default value is--datadir/htdocs. --with-suexec-gidmin- Define this as the lowest GID allowed to be a target user for
suexec. The default value is 100. --with-suexec-logfile- This defines the filename of the
suexeclogfile. By default the logfile is namedsuexec_logand located in--logfiledir. --with-suexec-safepath- Define the value of the environment variable
PATHto be set for processes started bysuexec. Default value is/usr/local/bin:/usr/bin:/bin. --with-suexec-userdir- This defines the subdirectory under the user's directory that contains all executables for which
suexecaccess is allowed. This setting is necessary when you want to usesuexectogether with user-specific directories (as provided bymod_userdir). The default ispublic_html. --with-suexec-uidmin- Define this as the lowest UID allowed to be a target user for
suexec. The default value is 100. --with-suexec-umask- Set
umaskfor processes started bysuexec. It defaults to your system settings.
Переменные окружения
Существуют некоторые полезные переменные окружения, которые можно переопределить, чтобы изменить выборы, сделанные 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