Компиляция для Windows
Учебник по основам PHP
🕛 01.11.2006, 12:46
Что для этого требуется? Для компиляции должен быть установлен Microsoft Visual C++ версии 6 (возможно и 5, но не рекомендуется).
Необходим комплект эмулятора утилит GNU для Windows Cyg-win, который можно загрузить со многих сайтов (например: http:// sources, redhat.com/cygwin/download.html).
С сайта РНР следует загрузить набор файлов в архиве http://www. php.net/extra/win32build.zip.
А также библиотеку работы с именами DNS http://www.php.net/ extra/bindlib_w32.zip. Это замена библиотеки resolv.lib из архива win32build.zip.
Для распаковки архивов, естественно, нужен разархиватор unzip.
И конечно, необходим сам пакет исходных кодов РНР. Его можно загрузить с сервера РНР CVS (см. инструкции на странице http:// www.php.net/anoncvs.php). Но не стоит забывать, что там размещается версия, находящаяся на стадии разработки и отладки, и она может работать нестабильно. Пакет стабильной версии можно в архиве скачать с адреса: http://www.php.net/downloads.php, а промежуточные версии - с адреса: http://snaps.php.net/.
Подготовка к компиляции
Установите Cygwin, запустив setup.exe. Выберите установочный каталог, например C:\cygnus. Обычно установка успешно выполняется в автоматическом режиме.
Создайте каталог, в котором вы будете проводить компиляцию (например: C:\PHP-win32build). Разархивнрупте в нее пакет исходных кодов РНР. Скопируйте туда распакованный архив win32build.zip.
Запустите Microsoft Visual C++, выберите пункт Options меню Tools. В диалоговой панели выберите вкладку directories. Последовательно установите для каждого пункта раскрывающегося списка: Executables, Includes и Library files соответственно каталоги: cygwin\bin, win32build\ include и win32build\lib (для добавления пункта выделите пустую строку в конце списка и введите путь). Обычно каталоги имеют следующие имена: c:\cygnus\bin, c:\php-win32build\include, c:\php-win32build\lib. Нажмите ОК.
Создайте другой каталог и распакуйте туда bindlib_w32.zip. В VC++ выберите bindlib.dsw (Файл > Open Workspace). Выберите один из вариантов компиляции (Build > Set Active Configuration): отладочный (bindlib - Win32 Debug) или нет (bindlib - Win32 Release). Скомпилируйте библиотеку (Build > Rebuild All)1. Скопируйте полученный файл resolv.lib (из каталога Debug или Release), заменяя им имеющийся в дистрибутиве (в каталоге С:\ PHP-win32build\lib).
Компиляция
Чтобы скомпилировать CGI-всрсию РНР, откройте в VC++ проект win32\php4ts.dsw (Файл > Open Workspace). Выберите вариант компиляции (Build > Set Active Configuration), например php4ts - Win32 Release_TS. Скомпилируйте файлы php.exe и php4ts.dll (Build > Rebuild All или Build > Build php.exe).
Возможно, у вас возникнет следующая ошибка: при попытке открытия в VC++ файла Tsrm.dsw будет выдано сообщение о том, что файл имеет неправильный формат или поврежден. Это происходит из-за различия в форматах текстовых файлов Unix и Windows: в Unix завершение строк помечается символом «\п>>, а в Windows двумя символами - «\г\п». Исправить это легко - откройте файл Tsrm.dsw в MS Word и сохраните его под тем же именем (в результате чего будут автоматически преобразованы символы-завершители).
Подобным образом можно скомпилировать РНР в виде модуля для web-сервера Microsoft IIS или какого-либо другого (просто измените вариант компиляции).
Модули расширения компилируются по отдельности (они размещаются в каталоге ext).