Apache. Документация на русском


Разделы:   1    2    3    4    5    6      7      8    9    10    11    12    13    14    15    16  

Раздел 7. Примечания для конкретных платформ

Пункты:   57      58      59    60    61    62  

 <         > 
  RU            EN  

Пункт 58. Компиляция Apache для Microsoft Windows

Прежде чем приступить к компиляции HTTP-сервера Apache (httpd), необходимо учесть множество важных моментов. Прежде чем начать, см. Использование HTTP-сервера Apache в Microsoft Windows.

httpd можно собрать в Windows с помощью системы сборки на основе cmake или с помощью файлов проекта Visual Studio, поддерживаемых разработчиками httpd. Система сборки на основе cmake напрямую поддерживает больше версий Visual Studio, но в настоящее время имеет значительные функциональные ограничения.

Сборка httpd с включенными файлами проекта Visual Studio

Требования

Для компиляции Apache требуется правильная установка следующей среды:

  • Дисковое пространство

    Убедитесь, что у вас есть как минимум 200 МБ свободного места на диске. После установки Apache требуется около 80 МБ дискового пространства, а также место для файлов журнала и кэша, которые могут быстро увеличиваться. Фактические требования к дисковому пространству будут значительно различаться в зависимости от выбранной вами конфигурации и любых сторонних модулей или библиотек, особенно если также собран OpenSSL. Поскольку многие файлы являются текстовыми и очень легко сжимаются, сжатие файловой системы NTFS снижает эти требования вдвое.

  • Соответствующие патчи

    Двоичный файл httpd создается с помощью нескольких исправлений для сторонних пакетов, которые обеспечивают сборку и отладку выпущенного кода. Эти исправления доступны и распространяются с http://www.apache.org/dist/httpd/binaries/win32/patches_applied/, и их рекомендуется применять для получения результатов, идентичных «официальным» распространяемым двоичным файлам ASF.

  • Microsoft Visual C++ 6.0 (Visual Studio 97) или более поздней версии.

    Apache можно собрать с помощью инструментов командной строки или из Visual Studio IDE Workbench. Сборка из командной строки требует, чтобы среда отражала PATH , и другие переменные, которые можно настроить с помощью сценария. INCLUDE LIB vcvars32.bat

    Вам может понадобиться пакет процессора Visual Studio для вашей старой версии Visual Studio или полная (не Express) версия более новых выпусков Visual Studio для ассемблера ml.exe. Это позволит вам при желании собрать OpenSSL, используя более эффективную реализацию ассемблерного кода. Только цепочка инструментов компилятора Microsoft активно поддерживается активными участниками httpd. Хотя проект регулярно принимает исправления, чтобы обеспечить работу MinGW и других альтернативных сборок и улучшить их, они не поддерживаются активно и часто выходят из строя в ходе обычной разработки.
  • Обновлен Microsoft Windows Platform SDK, февраль 2003 г. или более поздняя версия.

    Соответствующий пакет SDK для платформы Windows включен по умолчанию в полные (не экспресс/упрощенные) версии Visual C++ 7.1 (Visual Studio 2002) и более поздние версии. Эти пользователи могут игнорировать эти шаги, если явно не выбирают более новую или другую версию пакета SDK для платформы.

    Для использования Visual C++ 6.0 или 7.0 (Studio 2000 .NET) среда Platform SDK должна быть подготовлена с помощью сценария setenv.bat (установленного с помощью Platform SDK) перед запуском сборки из командной строки или запуском среды графического интерфейса пользователя msdev/devenv. Установка Platform SDK для версий Visual Studio Express (2003 и более поздние версии) должна соответствующим образом настроить среду по умолчанию.

    "c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32"
    "c:\Program Files\Platform SDK\setenv.bat"

  • Perl и awk

    Несколько рекомендуемых здесь шагов требуют интерпретатора Perl в процессе подготовки сборки, но в остальном это не требуется.

    Для установки Apache в системе сборки несколько файлов модифицируются с помощью awk.exe утилиты. awk был выбран, так как он загружается очень мало (по сравнению с Perl или WSH/VB) и выполняет задачу изменения файлов конфигурации при установке. На сайте Брайана Кернигана http://www.cs.princeton.edu/~bwk/btl.mirror/ есть скомпилированный собственный двоичный файл Win32, http://www.cs.princeton.edu/~bwk/btl.mirror/awk95. exe, который вы должны сохранить с именем awk.exe (а не awk95.exe ).

    Если awk.exe не найден, цель установки Makefile.win не будет выполнять замены в установленных файлах .conf. Вы должны вручную изменить установленные файлы .conf, чтобы разрешить запуск сервера. Найдите и замените все теги «@token@» соответствующим образом. Среда Visual Studio IDE находит только awk.exe из PATH или пути к исполняемому файлу, указанного в пункте меню Инструменты -> Параметры -> (Проекты ->) Каталоги. Убедитесь, что awk.exe указан в системном пути. Также обратите внимание, что если вы используете инструменты Cygwin (http://www.cygwin.com/), утилита awk имеет имя gawk.exe и что файл awk.exe на самом деле является символической ссылкой на gawk.exe файл. Командная оболочка Windows не распознает символические ссылки, и из-за этого сборка InstallBin не удастся. Обходной путь — удалить awk.exe из установки cygwin и скопировать gawk.exe в awk.exe . Также обратите внимание, что порты cygwin/mingw для gawk 3.0.x содержали ошибки, пожалуйста, обновитесь до 3.1.x, прежде чем пытаться использовать какой-либо порт gawk.
  • [Необязательно] библиотека zlib (для mod_deflate )

    Zlib должен быть установлен в srclib подкаталог с именем zlib . Это должно быть построено на месте. Zlib можно получить с http://www.zlib.net/ -- mod_deflate подтверждена его корректная работа с версией 1.2.3.

    nmake -f win32\Makefile.msc
    nmake -f win32\Makefile.msc test

  • [Необязательно] Библиотеки OpenSSL (для mod_ssl и ab.exe с поддержкой ssl)

    Библиотека OpenSSL — это криптографическое программное обеспечение. Страна, в которой вы в настоящее время проживаете, может иметь ограничения на импорт, владение, использование и/или реэкспорт в другую страну программного обеспечения для шифрования. ПРЕЖДЕ ЧЕМ использовать какое-либо программное обеспечение для шифрования, ознакомьтесь с законами, правилами и политиками вашей страны, касающимися импорта, владения или использования, а также реэкспорта программного обеспечения для шифрования, чтобы узнать, разрешено ли это. См. http://www.wassenaar.org/ для получения дополнительной информации.

    Для настройки и сборки OpenSSL требуется установленный Perl.

    OpenSSL должен быть установлен в srclib подкаталог с именем openssl , полученный с http://www.openssl.org/source/, чтобы скомпилировать mod_ssl проект abs.exe ab.c с включенной поддержкой SSL. Чтобы подготовить OpenSSL к связыванию с Apache mod_ssl или abs.exe и отключить защищенные патентами функции в OpenSSL, вы можете использовать следующие команды сборки:

    perl Configure no-rc5 no-idea enable-mdc2 enable-zlib VC-WIN32 -Ipath/to/srclib/zlib -Lpath/to/srclib/zlib
    ms\do_masm.bat
    nmake -f ms\ntdll.mak

    Не рекомендуется использовать zlib-dynamic, так как это переносит стоимость дефляции потоков SSL на первый запрос, который должен загрузить zlib dll. Обратите внимание, что предлагаемый патч позволяет флагу -L работать со сборками Windows, исправляет имя zdll.lib и обеспечивает создание файлов .pdb для устранения неполадок. Если ассемблер не установлен, вы должны добавить no-asm выше и использовать ms\do_ms.bat вместо сценария ms\do_masm.bat.
  • [Необязательно] Библиотеки баз данных (для mod_dbd и mod_authn_dbm )

    Библиотека apr-util предоставляет клиентские функции dbm (база данных с ключами) и dbd (база данных, ориентированная на запросы) для сервера httpd и его модулей, таких как аутентификация и авторизация. Провайдеры sdbm dbm и odbc dbd компилируются безоговорочно.

    Поддержка dbd включает пакет Oracle InstantClient, MySQL, PostgreSQL и sqlite. Чтобы собрать все это, например, настройте LIB, чтобы включить путь к библиотеке, INCLUDE, чтобы включить путь заголовков, и PATH, чтобы включить путь dll bin всех четырех SDK, и установите переменную среды DBD_LIST, чтобы сообщить сборке, какой клиент SDK драйверов установлены правильно, например;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    Точно так же поддержка dbm может быть расширена с помощью DBM_LIST для создания провайдера Berkeley DB (db) и/или провайдера gdbm путем аналогичной настройки сначала LIB, INCLUDE и PATH, чтобы обеспечить доступность lib и заголовков клиентской библиотеки.

    set DBM_LIST=db gdbm

    В зависимости от выбора дистрибутива базы данных может потребоваться изменить фактическое имя цели ссылки (например, gdbm.lib вместо libgdb.lib), которое указано в соответствующих файлах .dsp/.mak в каталогах srclib\apr-util. \дбд или ...\дбм.

    См. файл README-win32.txt для получения дополнительных советов по получению различных пакетов SDK для драйверов баз данных.

Сборка из исходников Unix

Политика проекта Apache HTTP Server заключается в выпуске только исходных кодов Unix. Пакеты исходного кода Windows, доступные для загрузки, были предоставлены добровольцами и могут быть доступны не для каждого выпуска. Вы по-прежнему можете собрать сервер в Windows из исходного архива Unix, выполнив всего несколько дополнительных шагов.

  1. Скачайте и распакуйте исходный архив Unix последней версии.
  2. Загрузите и распакуйте архив исходных кодов Unix для последней версии APR, AR-Util и APR-Iconv, поместите эти исходники в каталоги httpd-2.xx\srclib\apr, httpd-2.xx\srclib\apr-util и httpd- 2.xx\srclib\apr-icon
  3. Откройте командную строку и компакт-диск в папке httpd-2.xx.
  4. Запустите утилиту преобразования окончаний строк по запросу;

perl srclib\apr\build\lineends.pl

Теперь вы можете создать сервер в среде разработки Visual Studio с помощью IDE. Сборки сервера из командной строки из исходных кодов Unix невозможны, если вы не экспортируете файлы .mak, как описано ниже.

Сборка из командной строки

Makefile.win это make-файл Apache верхнего уровня. Чтобы скомпилировать Apache в Windows, просто используйте одну из следующих команд для сборки release или debug варианта:

nmake /f Makefile.win _apacher

nmake /f Makefile.win _apached

Любая команда скомпилирует Apache. Последний отключит оптимизацию результирующих файлов, упрощая пошаговый код для поиска ошибок и отслеживания проблем.

Вы можете добавить свои варианты поставщиков apr-util dbd и dbm с дополнительными переменными make (среды) DBD_LIST и DBM_LIST, см. комментарии о [необязательных] библиотеках базы данных выше. Просмотрите начальные комментарии в Makefile.win для дополнительных параметров, которые могут быть предоставлены при вызове сборки.

Сборка рабочей среды IDE Developer Studio

Apache также можно скомпилировать с помощью среды разработки Visual Studio VC++. Для упрощения этого процесса Apache.dsw предоставляется рабочая область Visual Studio. В этой рабочей области представлен весь список рабочих .dsp проектов, необходимых для полной версии бинарного файла Apache. Он включает зависимости между проектами, чтобы гарантировать, что они построены в соответствующем порядке.

Откройте Apache.dsw рабочую область и выберите InstallBin ( Release или Debug сборку по желанию) в качестве активного проекта. InstallBin вызывает сборку всех связанных проектов, а затем вызывает Makefile.win перемещение скомпилированных исполняемых файлов и DLL. Вы можете персонализировать INSTDIR= выбор, изменив InstallBin настройки , вкладку «Общие», запись командной строки «Сборка». INSTDIR по умолчанию в /Apache2 каталог. Если вам нужна только тестовая компиляция (без установки), вы можете BuildBin вместо этого собрать проект.

Файлы проекта .dsp распространяются в формате Visual Studio 6.0 (98). Visual C++ 5.0 (97) распознает их. Пользователи Visual Studio 2002 (.NET) и более поздних версий должны преобразовать Apache.dsw плюс- .dsp файлы в Apache.sln плюс- .msproj файлы. Убедитесь, что вы переконвертировали .msproj файл снова, если его исходный .dsp файл изменился! Это действительно тривиально, просто откройте Apache.dsw в VC++ 7.0 IDE еще раз и переконвертируйте.

Существует ошибка в преобразовании .vcproj файлов .dsp. devenv.exe будет неправильно анализировать флаг /D для флагов RC, содержащих длинные кавычки /D'efines, которые содержат пробелы. Команда:

perl srclib\apr\build\cvtdsp.pl -2005

преобразует флаги /D для флагов RC, чтобы использовать альтернативный синтаксис, который можно разобрать; к сожалению, этот синтаксис не поддерживается Visual Studio 97 или ее экспортированными файлами .mak. Эти флаги /D используются для передачи подробного описания файлов mod_apachemodule.so в сборку общего идентификатора версии ресурса .rc. Сборка с OpenSSL 1.1.0 и выше. Из-за разницы в структуре сборки OpenSSL, начиная с версии 1.1.0, вам потребуется преобразовать файлы dsp, затронутые cvtdsp.pl, из APR 1.6 или выше. Команда:

perl srclib\apr\build\cvtdsp.pl -ossl11

Пользователям Visual Studio 2002 (.NET) и более поздних версий также следует использовать меню «Сборка» и диалоговое окно «Диспетчер конфигураций», чтобы снять галочки с модулей Debug и Release решений и компонентов abs , а также всех компонентов, начинающихся с . Эти модули создаются путем вызова , или IDE непосредственно с целью, которая создает эти модули условно, если каталоги и/или существуют, и на основе настройки и переменных среды. mod_deflate mod_ssl apr_db* nmake BinBuild srclib openssl zlib DBD_LIST DBM_LIST

Экспорт файлов .mak из командной строки

Экспортированные .mak файлы доставляют больше хлопот, но они необходимы пользователям Visual C++ 5.0 для сборки mod_ssl , abs ( ab с поддержкой SSL) и/или mod_deflate . Файлы .mak также поддерживают более широкий спектр дистрибутивов цепочки инструментов C++, таких как Visual Studio Express.

Вы должны сначала собрать все проекты, чтобы создать все автоматически сгенерированные динамические цели, чтобы можно было правильно анализировать зависимости. Соберите весь проект из интегрированной среды разработки Visual Studio 6.0 (98), используя цель BuildAll , затем используйте экспорт меню проекта для всех make-файлов (проверив «с зависимостями».) Выполните следующую команду, чтобы преобразовать абсолютные пути в относительные пути, чтобы они будет строиться где угодно:

perl srclib\apr\build\fixwin32mak.pl

Вы должны ввести эту команду из каталога верхнего уровня исходного дерева httpd. Каждый файл проекта .mak и .dep в текущем каталоге и ниже будет исправлен, а временные метки скорректированы, чтобы отразить файл .dsp .

Всегда проверяйте сгенерированные файлы .mak и .dep файлы для Platform SDK или других локальных путей к файлам, специфичных для компьютера. Каталог DevStudio\Common\MSDev98\bin\ (VC6) содержит sysincl.dat файл со списком всех исключений. Обновите этот файл (включая как прямой, так и обратный пути, например, оба sys/time.h и sys\time.h ), чтобы игнорировать такие новые зависимости. Включение путей локальной установки в распространяемый .mak файл приведет к полному сбою сборки.

Если вы отправляете исправление, которое исправляет файлы проекта, мы должны зафиксировать файлы проекта в формате Visual Studio 6.0. Изменения должны быть простыми, с минимальными флагами компиляции и компоновки, которые могут быть распознаны всеми средами Visual Studio.

Монтаж

После компиляции Apache его необходимо установить в корневой каталог сервера. По умолчанию это \Apache2 каталог того же диска.

Чтобы автоматически создать и установить все файлы в нужную папку , используйте одну из следующих nmake команд:

nmake /f Makefile.win installr INSTDIR=dir
nmake /f Makefile.win installd INSTDIR=dir

Аргумент dir указывает INSTDIR каталог установки; его можно опустить, если Apache должен быть установлен \Apache22 (на текущий диск).

Предупреждение о сборке Apache из дерева разработки

.dsp Обратите внимание, что между сборками сохраняются только файлы release . Файлы .mak НЕ регенерируются из-за огромной траты времени рецензента. Таким образом, вы не можете полагаться на NMAKE приведенные выше команды для создания измененных .dsp файлов проекта, если только вы не экспортируете все .mak файлы из проекта самостоятельно. В этом нет необходимости, если вы строите из среды Microsoft Developer Studio.

Сборка httpd с помощью cmake

Основная документация по этому механизму сборки находится в README.cmake файле исходного дистрибутива. Подробные инструкции см. в этом файле.

Сборка httpd с помощью cmake требует отдельной сборки APR и APR-util. Обратитесь к их README.cmake файлам за инструкциями.

Основные ограничения сборки на основе cmake унаследованы от проекта APR-util и перечислены ниже из-за их влияния на httpd:

  • Сборка cmake для подпроекта APR-iconv недоступна, а сборка cmake APR-util не может использовать существующую сборку APR-iconv. Таким образом, mod_charset_lite и, возможно, некоторые сторонние модули не могут быть использованы.
  • Сборка cmake для подпроекта APR-util не поддерживает большинство дополнительных библиотек DBM и DBD, поддерживаемых включенными файлами проекта Visual Studio. Это ограничивает серверные части базы данных, поддерживаемые рядом встроенных и сторонних модулей.


 <         > 

Пункты:   57      58      59    60    61    62  

Рейтинг@Mail.ru