Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Журнал Начинающего Программиста


Установка и компиляция РНР в UNIX, параметры компиляции

Операционные системы семейства UNIX сильно различаются между собой, поэтому подробного описания в данной книге не приводится. Единственное, что роднит между собой различные UNIX-системы при компиляции РНР, — это параметры компиляции; с их помощью указывается, какие из PHP-модулей необходимо прикомпилировать к основному модулю РНР. Они приводятся ниже. Для тех параметров, которые имеют аргумент DIR, можно указать путь каталога, в котором была установлена используемая библиотека. В скобках указано значение параметра по умолчанию.


Базы данных


  • with-adabas[=DIR] — включить поддержку Adabas D (/usr/local).
  • enable-dba=shared — использовать DBA как совместно используемый модуль.
  • enable-dbase — включить поддержку dbase. Внешние библиотеки не требуются.
  • with-db2[=DIR] — включить поддержку Berkeley DB2.
  • with-db3[=DIR] — включить поддержку Berkeley DB3.
  • with-dbm[=DIR] — включить поддержку DBM.
  • with-dbmaker[=DIR] — включить поддержку DBMaker (зависит от версии, например /home/dbmaker/3.6).
  • with-empress[=DIR] — включить поддержку Empress (значение системной переменной $EMPRESSPATH).
  • enable-filepro — включить встроенную поддержку filcPro. Внешние библиотеки не требуются.
  • with-gdbm[=DIR] — включить поддержку GDBM.
  • with-hyperwave — включить поддержку Hyperwave.
  • with-ibm-db2[=DIR] — включить поддержку IBM DB2 (/home/ db2instl/sqllib).
  • with-informix[=DIR] — включить поддержку Informix (умолчаний нет).
  • with-ingres[=DIR] — включить поддержку Ingres II (/II/ingres).
  • with-interbase[=DIR] — включить поддержку InterBase (/usr/interbase).
  • with-ldap[=DIR] — включить поддержку LDAP — службы каталогов Lightweight Directory Access Protocol (/usr/Local/Ldap). См. также: RFC1777 и RFC1778.
  • with-msql[=DIR] — включить поддержку mSQL (/usr/loCdl/Hughes).
  • with-mysql[=DIR] — включить поддержку MySQL (параметр включен по умолчанию).
  • with-ndbm[=DIR] - NDBM.
  • with-oci8[=DIR] - включить поддержку Oraclc-oci8 ($ORACLE_HOME).
  • with-orade[=DIR] — включить поддержку Oracle-oci7 ($ORACLE_HOME).
  • with-pgsql[=DIR] — включить поддержку PostgrcSQL (/usr/local/ pgsql).
  • with-solid[=DIR] — включить поддержку Solid (/usr/local/solid).
  • with-sybase-ct[=DIR] — включить поддержку Sybase-CT (/home/ Sybase).
  • with-sybase[=DIR] — включить поддержку Sybase-DB (/home/Sybase).
  • with-openlink[=DIR] - - включить поддержку OpenLink ODBC (/usr/local/openlink).
  • with-iodbc[=DIR] — включить поддержку iODBC (/usr/local).
  • with-custom-odbc[=DIR] — включить поддержку пользовательской библиотеки ODBC (/usr/local). Перед запуском сценария configure необходимо присвоить значение переменной CUSTOM_ODBC__LIBS, а также проверить, чтобы файл odbc.h был доступен.
  • with-unixODBC[=DIR] — включить поддержку unixODBC support (/usr/local).
  • with-velocis[=DIR] — включить поддержку Velocis (/usr/local/ velocis).


Ecommerce


  • with-ccvs[=DIR] — разрешить поддержку CCVS для РИР4.
  • with-cybercash[=DIR] — включить поддержку CyberCash.
  • with-pfpro[=DIR] — включить поддержку Verisign Payflow Pro.


Графика


  • enable-freetype-4bit-antialias-hack — включить поддержку FreeType2 (экспериментальная).
  • with-gd[=DIR] — включить поддержку GD.
  • without-gd — запретить поддержку GD.
  • with-jpeg-dir[=DIR] — каталог библиотеки jpeg для pdflib 3.x.
  • with-png-dir[=DIR] — каталог библиотеки png для pdflib 3.x.
  • with-tllib[=DIR] — включить поддержку Tllib.
  • with-tiff-dir[=DIR] — каталог библиотеки tiff для pdflib 3.x.
  • with-ttf[=DIR] — включить поддержку FreeType.
  • with-xpm-dir[=DIR] — каталог библиотеки хрт для gd-1.8+.


Разнообразные параметры


  • disable-libtool-lock — не использовать блокировку библиотек при компиляции.
  • disable-pear — не устанавливать PEAR.
  • disable-pic — не использовать PIC для общих объектов.
  • disable-posix — не использовать функции POSIX.
  • disable-session — запретить поддержку сессий.
  • enable-bcmath — компилировать с поддержкой функций be math. См. также: README-BCMATH.
  • enable-c9x-inline — использовать семантику C9x-inline.
  • enable-calendar — использовать преобразования calendar.
  • enable-debug — компилировать в режиме для отладки.
  • enable-discard-path — позволяет разместить PHP CGI вне web-каталогов.
  • enable-dmalloc — разрешить поддержку dmalloc.
  • enable-exif — разрешить поддержку exif.
  • enable-experimental-zts — экспериментальная компиляция.
  • enable-fast-install[=PKGS] — оптимизировать для быстрой установки (по ум.)
  • enable-force-cgi-redirect — разрешить проверку безопасности для внутренних переадресаций сервера. Используйте для CGI версии Apache.
  • enable-inline-optimization — используйте с gcc при наличии большого объема памяти.
  • enable-libgcc — явное подключение библиотеки libgcc.
  • enable-maintainer-mode — компилировать для определенного установщика, игнорируя тс параметры, которые ему непонятны.
  • enable-memory-limit — ограничение памяти при компиляции (по умолчанию — нет).
  • enable-safe-mode — разрешить безопасный режим по умолчанию.
  • enable-satellite — поддерживать CORBA через Satellite (необходим ORBit).
  • enable-shared[=PKGS] — компилировать динамические библиотеки (по умолчанию).
  • enable-sigchild — разрешить собственный для РНР обработчик SIGCHLD.
  • enable-static[=PKGS] — компилировать статические библиотеки (по умолчанию).
  • enable-sysvsem — включить поддержку семафоров System V.
  • enable-sysvshm — включить поддержку System V shared memory.
  • enable-trans-sid — автоматически передавать идентификатор сессии.
  • with-cdb[=DIR] — включить поддержку СОВ.
  • with-config-file-path=PATH — установить каталог размещения php.ini (/usr/local/lib).
  • with-cpdflib[=DIR] — включить поддержку cpdflib (необходима cpdflib >= 2) (/usr).
  • with-esoob[=DIR] — включить поддержку Easysoft OOB (/usr/Local/ easysoft/oob/dient).
  • with-exec-dir[=DIR] — в безопасном режиме разрешать запуск сценариев только из указанного каталога (/usr/locat/php/bin).
  • with-fdftk[=DIR] — включить поддержку fdftk (/usr/local).
  • with-gnu-ld — считать, что компилятор С использует GNU Id (no умолчанию — нет).
  • with-icap[=DIR] - поддерживать ЮАР.
  • with-imap[=DIR] — включить поддержку ШАР. DIR — каталог размещения ШАР include и файла c-client.a.
  • with-java[=DIR] — включить поддержку Java. DIR — каталог установки JDK. Модуль должен быть скомпилирован как общий.
  • with-kerberos[=DIR] — включить поддержку Kerberos в ШАР.
  • with-mcal[=DIR] — включить поддержку MCAL.
  • with-mcrypt[=DIR] — включить поддержку mcrypt.
  • with-mhash[=DIR] — включить поддержку mhash.
  • with-mm[=DIR] — использовать поддержку mm для хранения данных сессий.
  • with-mod_charset — разрешить таблицы трансляции для mod_charset (Rus Apache).
  • with-pdflib[=DIR] — поддерживать pdflib 3.x (/usr/local).
  • with-readline[=DIR] — поддерживать readlinc.
  • with-regex=TYPE — тин библиотеки regex: system, apache, php.
  • with-servlet[=DIR] — поддерживать сервлеты. DIR — каталог JSDK. Модуль Java должен быть совместным.
  • with-swf[=DIR] — включить поддержку swf.
  • with-tsrm-pth[=pth-config] — использовать GNU Pth.
  • with-tsrm-pthreads — использовать POSIX threads (по умолчанию)
  • with-zlib-dir[=DIR] — каталог zlib для pdflib 3.x или просто поддержки zlib.
  • with-zlib[= DIR] — включить поддержку zlib (необходима zlib >= 1.0.9) (/usr).
  • without-pcre-regex — не включать поддержку регулярных выражений.


Сети


  • with-curl[=DIR] — включить поддержку CURL.
  • enable-ftp — включить поддержку FTP.
  • with-openssl[=DIR] — включить поддержку OpenSSL в SNMP.
  • with-snmp[=DIR] — включить поддержку SNMP.
  • enable-ucd-snmp-hack — разрешить UCD SNMP.
  • enable-sockets — включить поддержку сетевого интерфейса sockets.
  • with-yaz[=DIR] - включить поддержку YAZ (ANSI/NISO Z39.50).
  • enable-yp — включить поддержку YP.
  • enable-magic-quotes — разрешить magic quotes по умолчанию.
  • disable-short-tags — запретить использование сокращенных тегов


Сервер


  • with-aolserver-src=DIR — размещение дистрибутива AOLserver.
  • with-aolserver=DIR - компилировать PHP для AOLserver.
  • with-apache[=DIR] - - компилировать PHP как модуль Apache (/usr/local/etc/httpd).
  • with-apxs[=FILE] — компилировать PHP как модуль Apache (используя apxs).
  • enable-versioning — экспортировать только необходимые символы. См. также файл INSTALL.
  • with-fhttpd[=DIR] — компилировать PHP как модуль fhttpd (/usr/ local/src/fhttpd).
  • with-nsapi=DIR — компилировать PHP как модуль Netscape.
  • with-phttpd=DIR — компилировать PHP как модуль phttpd.
  • with-pi3web=DIR — компилировать PHP как модуль PiSWeb.
  • with-roxen=DIR — компилировать PHP как модуль Pike (/usr/ local/roxen/server).
  • enable-roxen-zts — компилировать PHP как модуль Roxen.
  • with-thttpd=SRCDIR — компилировать PHP как модуль thttpd.
  • with-zeus=DIR — компилировать PHP как модуль ISAPI для использования с сервером Zeus.

Текстово-языковые возможности


  • with-aspell[=DIR] — включить поддержку ASPELL.
  • with-gettext[=DIR] — включить поддержку GNU gettext (/usr/ local).
  • with-pspell[=DIR] — включить поддержку PSPELL.
  • with-recode[=DIR] — включить поддержку recode.


XML


  • with-dom[=DIR] — разрешить использование DOM (требуется libxml >= 2.0) (/usr).
  • enable-sablot-errors-descriptive — разрешить выдачу описаний ошибок.
  • with-sablot[=DIR] — разрешить использование Sablotron.
  • enabte-wddx — разрешить использование WDDX.
  • disable-xml — запретить поддержку XML с использованием встроенной библиотеки expat.


Установка РНР в Windows

Далее описываются установка и конфигурирование РНР для web-серверов в системах Windows 9x/NT, в частности:
Personal Web Server (PWS);
Internet Information Server (IIS) 6, 4, 5;
Apache 1.3.x.
Я рекомендую использовать web-сервер Apache по причине того, что он работает на всех системах, и именно при его использовании РНР может проявить все свои возможности. Также РНР можно установить и для ряда других серверов.


Windows Installshield

Программа установки РНР (которую можно загрузить с сайта http:// www.php.net/) автоматически устанавливает CGI-версию РНР для Apache, IIS или PWS (и других серверов) и самостоятельно настраивает сервер. Процедура установки достаточно понятна и удобна.

Общие шаги установки

Эту процедуру следует проделать для всех серверов, работающих в Windows, если установка производится вручную (а не используется установщик).
Разархивируйте дистрибутив РНР в любой каталог, например С:\РНР\.
Скопируйте файл php.ini-dist в каталог Windows (обычно это c:\windows или c:\winnt).
Отредактируйте файл конфигурации php.ini:
Установите каталог модулей расширения extension_dir (путь к файлам php_*.dll), например: c:\php.
Выберите те модули РНР, которые должны загружаться при запуске интерпретатора, и раскомментируйте их строки extension= php_*.dTI. Модули также можно загружать динамически командой сценария: dl("php_*.dll");.
Некоторым модулям требуются дополнительные библиотеки, часть которых находится в каталоге dlls дистрибутива (если их там нет, обратитесь на страницу http://www.php.net/FAQ.php, чтобы узнать, как их можно найти); их следует скопировать в тот каталог, где система может их найти, или добавить путь к ним в переменную PATH.
Для PWS и IIS можно указать путь к файлу browscap.ini: c:\windows\system\1netsrv\browscap.ini для Windows 95/98 и C:\winnt\system32\inetsrv\browscap.ini для NT Server.
Модули DLL PHP имеют префикс php_, что позволяет различать их и используемые ими библиотеки.

Windows 95/98/NT и PWS/IIS 3

Рекомендуется настраивать эти серверы установкой файла php_iis_ reg.inf, pws-php4isapi.reg или pws-php4cgi.reg, входящего в дистрибутив, предварительно его отредактировав и указав реальные каталоги. В противном случае придется редактировать реестр (будьте осторожны, рекомендуется сделать копию реестра).
Запустите Rcgcdit.
Перейдите в раздел HKEY_LOCAL_MACHINE/System/CurrentControlSet/ Services/W3Svc/Parameters/ScriptMap.
Создайте в нем строковый параметр — расширение php-сценари-ев, например: .php. Присвойте ему путь к php.exe в виде: c:\php\ php.exe %s %s.
Повторите этот шаг для каждого расширения, которое будут иметь сценарии.
Теперь перейдите в раздел HKEY_CLASSES_ROOT. Создайте раздел с именем из предыдущего шага, например: .php.
Присвойте значение по умолчанию ("default value"): phpfile.
Повторите шаг для каждого расширения PHP-сценариев, как и ранее.
Создайте раздел phpfile в разделе HKEY_CLASSES_ROOT со значением ц,, умолчанию: «PHP Script».
Создайте в этом разделе раздел «Shell», в нем «open», а в нем «command».
Присвоите разделу значение по умолчанию — путь к файлу php.exe, например; c:\php\php.exe -q %1 (не забывайте про *1).
Закройте Regedit. Если используется PWS, то перезагрузите Windows.
Пользователи us 3 могут также использовать программу конфигурирования http://www.genusa.com/iis/iiscfg.html. PWS 4 позволяет использовать Рнр в виде модуля ISAT4.

Windows NT и IIS 4/5

Откройте Диспетчер служб Интернета (консоль ММС — Internet Service Manager нз раздела Программы > Администрирование) и выберите тот сервер WCD| который необходимо конфигурировать.
Откройте панель свойств, вкладку Домашний каталог (Home Directory), Виртуальные каталоги (Virtual Directory) или Directory.
Нажмите кнопку Конфигурирование, затем выберите вкладку Арр Mappings.
Для CGI версии.
Нажмите кнопку Добавить, введите расширение (Extension) файлов РНР, и укажите путь к интерпретатору (Executable) c:\path-to-php-dir\php.exe %s %s.
Не забудьте про *s *s в конце.
Для ISAPI версии.
Имя интерпретатора должно быть c:\path-to-php-dir\php4isapi.dn.
Повторите шаг для каждого из расширений.
Для CGI Версии.
Установите требуемую политику безопасности для php.exe.
Для ISAPI версии.
Перезапустите web-сервер, чтобы загрузить php4isapi.dll.
Windows 9x/NT и Apache 1.3.x


Рекомендуется ознакомиться с документацией Apache.


Добавьте или измените имеющиеся (обычно они закомментированы) директивы в файле конфигурации httpd.conf (или srm.conf) для запуска версии CGI PHP.
Каталог PHP: ScriptAlias /php/ "c:/path-to-php-d1r/".
Расширения PHP-сценариев: AddType application/x-httpd-php .php .phtml.
Запуск интерпретатора: Action application/x-httpd-php "/php/php.exe".
Если необходимо запускать PHP как ISAPI-модуль сервера, необходимо скопировать файл php4ts.dll в каталог windows/system (для Windows 9х/Ме) или winnt/system32 (для Windows NT/2000).
А затем добавить в файл конфигурации httpd.conf следующие строки:


LoadModule php4_modu1e с:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php .phtml
Заметьте, что в Win-Apache вес обратные слеши должны писаться как прямые, например: c:/directory/file.ext вместо c:\directory\ file.ext.


Компиляция для Windows

Что для этого требуется?
Для компиляции должен быть установлен 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).


В избранное