PHP-4 Эффективная работа


Извлечение дистрибутива
Общий подход к установке РНР
Сборочное конфигурирование РНР
Директивы конфигурационного файла Apache
Конфигурационный файл php.ini

1.3. Сборочное конфигурирование РНР

Общий список команд сборочной конфигурации используемой вами версии РНР, как и для Apache, вы можете получить с помощью команды

./configure --help | less

внимание
       Этот прием работает в подавляющем большинстве программ, для установки которых используется конфигуратор autoconf.

Эти команды работают только на этапе подготовки РНР к компиляции и не могут быть изменены в работающей системе. Отдельные моменты могут быть поправлены путем манипуляций с конфигурационным файлом, но систему в целом нужно настраивать на этапе сборки. Эти команды, для удобства читателя, разделены на ряд секций. Каждая секция соответствует определенной области деятельности, в которой используется РНР, и для которой необходимы те или иные механизмы.

1.3.1. Работа с базами данных

В этом разделе мы рассмотрим команды конфигурирования, которые включают поддержку тех или иных интерфейсов СУБД. По умолчанию включена только встроенная поддержка СУБД MySQL3, которая не требует установки специального сервера. Остальные интерфейсы подключаются с помощью команд, приведенных в табл. 1.1.

Таблица 1.1. Команды включения поддержки СУБД
Команда Действие
--with-adabas[=DIR]Включение поддержки Adabas D. Аргумент DIR должен указывать на корневой каталог ADABAS. По умолчанию используется значение /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. Аргумент DIR должен указывать на каталог, в котором установлена СУБД
--with-empress[=DIR]Включение поддержки Empress. Аргумент DIR должен указывать на корневой каталог СУБД. По умолчанию извлекается из переменной окружения $EMPRESSPATH
--enable-fileproВключает встроенную поддержку баз данных filePro, реализующую доступ только на чтение Данных. Никакие внешние библиотеки не используются
--with-fbsql[=DIR]Включение поддержки FrontBase SQL. Аргумент DIR должен указывать на корневой каталог FrontBase. Значение, используемое по умолчанию, зависит от операционной системы: для Solaris — /opt/FrontBase; для WinNT — \usr\FrontBase;для Linux — /usr/frontbase; для Mac OSX — /Library/FrontBase
--with-gdbm[=DIR]Включение поддержки GDBM
--with-hyperwaveВключение поддержки Hyperwave
--with-ibm-db2[=DIR]Включение поддержки совершенно замечательной СУБД IBM DB2. Аргумент DIR указывает на корневой каталог DB2, который по умолчанию принимает значение /home/db2instl/sqllib
--with-informix[=DIR]Включение поддержки Informix. Аргумент DIR указывает на базовый каталог Informix. Значение по умолчанию не предусмотрено (пустое). (См. также раздел 1.5.12)
--with-ingres [=DIR]Включение поддержки Ingres II. Аргумент DIR указывает на базовый каталог Ingres. По умолчанию используется /II/ingres
--with-interbase[=DIR]Включение поддержки InterBase. Аргумент DIR указывает на базовый каталог InterBase, который по умолчанию равен /usr/interbase
--with-ldap[=DIR]Включение поддержки LDAP (Lightweight Directory Access Protocol support). Параметр DIR должен указывать на базовый каталог LDAP. По умолчанию используется /usr/local/ldap. (Более подробную информацию о LDAP вы можете найти в RFC-1777 и RFC-1778)
--with-msql[=DIR]Включение поддержки mSQL. Аргумент DIR должен указывать на базовый каталог mSQL. По умолчанию его значение равно /usr/tocal/Hughes, что соответствует версии 2.0. Стоит отметить, что программа конфигурирования автоматически определяет, какая версия mSQL установлена в системе, и включает средства поддержки, ориентированные или на 1.0, или на 2.0. Однако имейте в виду, что если вы компилируете РНР с поддержкой mSQL одной из версий, то сможете работать с базами только этой версии. (См. также раздел 1.5.7)
--with-mysql [=DIR]Включение поддержки MySQL. Аргумент DIR должен указывать на базовый каталог MySQL. Если аргумент не указан, используется встроенная библиотека поддержки баз данных MySQL. Этот параметр по умолчанию всегда включен. (См. также раздел 1.5.6)
--with-ndbm[=DIR]Включение поддержки NDBM
•-with-ovrimosВключение поддержки Ovrimos
--with-oci8[=DIR]Включение поддержки Oracle8 OCI. Значение аргумента DIR по умолчанию извлекается из переменной окружения ORACLE_HOME
•-with-oracle[=DIR]Включение поддержки Oracle. Значение аргумента DIR по умолчанию извлекается из переменной окружения ORACLE_HOME
--with-pgsql [=DIR]Включение поддержки PostgreSQL. Аргумент DIR должен указывать на базовый каталог СУБД, по умолчанию используется значение /usr/local/pgsql. (См. также раздел 1.5.8)
--with-solid[=DIR]Включение поддержки СУБД Solid. Аргумент DIR должен указывать на базовый каталог Solid. По умолчанию используется значение /usr/local/solid
--with-Sybase-сt [=DIR]Включение поддержки Sybase-CT. Аргумент DIR указывает на базовый каталог Sybase-CT. По умолчанию используется начение /home/sybase. (См. также раздел 1.5.11)
--with-sybase[=DIR]Включение поддержки Sybase. Аргумент DIR указывает на базовый каталог Sybase. По умолчанию используется значение /home/sybase. (См. также раздел 1.5.10)
--with-openlink[=DIR]Включение поддержки OpenLink ODBC. Аргумент DIR должен указывать на базовый каталог OpenLink. По умолчанию используется значение /usr/local/opentink
--with-iodbc[ = DIR]Включение поддержки iODBC. Аргумент DIR должен указывать на базовый каталог iODBC. По умолчанию используется значение /usr/locat
--with-custom-odbc[=DIR]Включение поддержки специализированной библиотеки ODBC.Аргумент DIR должен указывать на базовый каталог библиотеки. По умолчанию устанавливается значение, равное /usr/local
--with-unixODBC[=DIR]Включение поддержки unixODBC. Аргумент DIR должен указывать на базовый каталог unixODBC. По умолчанию используется значение /usr/local
--with-velocis [=DIR]Включение поддержки Velocis. Аргумент DIR должен указывать на базовый каталог Velocis. По умолчанию используется значение /usr/tocal/vetocis

1.3.2. Платежные системы

Группа команд, представленная в табл. 1.2, предназначена для подключения интерфейсов различных систем поддержки электронной торговли.

Таблица 1.2. Команды подключения интерфейсов систем поддержки электронной торговли
Команда Действие
--with-ccvs [=DIR] Включение поддержки CCVS. Аргумент DIR должен указывать на базовый каталог CCVS. Значение по умолчанию не предусмотрено
--with-cybercash [=DIR] Включение поддержки CyberCash. Аргумент DIR должен указывать на базовый каталог CyberCash MCK. Значение по умолчанию не предусмотрено
--with-pfpro[=DIR]Включение поддержки Verisign Payflow Pro. Аргумент DIR должен указывать на базовый каталог. Значение по умолчанию не предусмотрено

1.3.3. Генерация графики

Обилие библиотек генерации графических файлов вынудило разработчиков РНР предпринять ряд мер по оптимизации состава модулей в зависимости от задач, решаемых пользователями. В табл. 1.3 приведены команды подключения графических библиотек.

Таблица 1.3. Команды подключения графических библиотек
Команда Действие
--enable-freetype-4bit-antialias-hackВключение поддержки FreeType2. Это пока что экспериментальная версия. Использовать ее без крайней необходимости не стоит
--with-gd[=DIR]Включение поддержки библиотеки GD. Аргумент DIR должен указывать на базовый каталог библиотеки
--with-out-gdОтключение поддержки GD
--with-jpeg-dir[=DIR]Указание каталога, в котором находится библиотека jpeg, используемая в pdflib 3.x и 4.x
--with-png-dir[=DIR]Указание каталога, в котором находится библиотека png, используемая в pdflib 3.x и 4.x
--with-tllib[=DIR]Включение поддержки T1lib
--with-tiff-dir[=DIR]Указание каталога, в котором находится библиотека tiff, используемая в pdflib 3.x и 4.x
--with-ttf[=DIR]Включение поддержки библиотеки FreeType
--with-xpm-di г[=DIR]Указание каталога хрmдля библиотеки gd-1.8+

1.3.4. Модификация поведения РНР-машины

Эта скромная группа команд играет достаточно важную роль: перечисленные в табл. 1.4 команды могут оказать довольно существенное влияние на интерпретацию ваших РНР-программ.

Таблица 1.4. Команды модификации поведения РНР-машины
Команда Действие
--enable-magi с-quotesРазрешение автоматического использования «волшебных кавычек»
--disable-short-tagsЗапрещение использования сокращенной формы префикса PHP-кода — <?

1.3.5. Взаимодействие с сервером

PHP-машина не ограничена работой только с Apache. В результате многолетнего труда сегодня вы можете подключить РНР практически к любому серверу. В этом разделе мы рассмотрим команды, которые предназначены для адаптации работы РНР с различными серверами (табл. 1.5).

примечание
       Обращаю ваше внимание на то, что большинство этих команд появилось только в чет- вертой версии РНР.

Таблица 1.5. Команды адаптации работы РНР с различными серверами
Команда Действие
--with-aolserver-src=DIRУказание пути к исходным кодам сервера AOLserver
--with-aolserver=DIRУказание пути к установленному серверу AOLserver
--with-apache[ = DIR]Построить PHP-машину в виде модуля Apache. Аргумент DIR должен указывать на базовый каталог Apache. По умолчанию используется значение /usr/local/etc/httpd
--with-apxs[ = FILE]Построить PHP-машину как совместно используемый модуль Apache. Требует использования программы apxs. Аргумент FILE позволяет задать ее альтернативное имя
--enable-versioningЭкспортируются только явно запрошенные символы. По большому счету, эта команда не предназначена для большинства пользователей
--with-caudium[ = DIR]Построить РНР в виде Pike-модуля, ориентированного на работу с сервером Caudium. Аргумент DIR должен указывать на базовый каталог сервера. По умолчанию используется значение $prefix/caudium/server. Значение переменной $pref ix определяется командой -prefix и по умолчанию равно /usr/local
--with-fhttpd[=DIR]Построить PHP-машину в виде модуля fhttpd. Аргумент DIR должен указывать на каталог с исходными текстами fhttpd.По умолчанию используется значение /usr/local/src/fhttpd
--with-nsapi=DIRУказывает путь к установленному серверу Netscape
--with-pi3web=DIRПостроить РНР в виде модуля, предназначенного для использования с Pi3Web
-with-roxen=DIRПостроить РНР в виде модуля Pike. Аргумент DIR должен указывать на базовый каталог Roxen. По умолчанию используется значение /usr/local/roxen/server
--enable-roxen-ztsПостроить модуль гохеп с использованием механизма Zend Thread Safety
--with-zeus=DIRПостроить РНР в виде модуля ISAPI, предназначенного для работы с сервером Zeus

1.3.6. Сетевые интерфейсы и протоколы

В этом разделе описываются команды, влияющие на организацию взаимодействия PHP-машины с сервером WWW, а также на работу РНР с другими сетевыми службами - SMTP, POP, FTP и т. д. (табл. 1.6).

Таблица 1.6. Команды поддержки сетевых интерфейсов и протоколов
Команда Действие
--with-curl[=DIR]Включение поддержки CURL. (См. http://www.curl.org)/
--enable-ftpВключение поддержки FTP
--disable-url-fopen-wrapperЗапрещение использования URL-ориентированной обертки вызова fopen, которая позволяет организовать доступ к файлам через http или ftp
--with-mod-dav=DIRВключение поддержки DAV посредством модуля Apache mod_dav. Аргумент DIR должен указывать на базовый каталог модуля mod_dav
--with-openssl. [=DIR]Включение поддержки шифрования SNMP-трафика по протоколу OpenSSL
--with-snmp[=DIR]Включение поддержки протокола SNMP. Аргумент DIR должен указывать на базовый каталог библиотеки SNMP. Конфигуратор автоматически просматривает несколько каталогов, в которые обычно устанавливаются наиболее распространенные SNMP-агенты. Но вы можете также указать этот каталог принудительно, введя аргумент DIR
--enable-ucd-snmp-hackВключение правок кода UCD SNMP
--enable-socketsВключение поддержки гнездового сетевого интерфейса BSD
--with-yaz[ = DIR]Включение поддержки YAZ (он же — ANSI/NISO Z39.50). Аргумент DIR должен указывать на каталог с исполняемыми файлами YAZ
--enable-ypВключение поддержки службы каталогов YellowPages
--with-mnogosearchВключение поддержки поисковой системы mnoGoSearch

1.3.7. Обработка текста и естественных языков

Подобно Perl [3], РНР представляет собой язык, основное назначение которого состоит в эффективном «перемалывании» текста. В конце концов, HTML-страницы — это просто текстовые файлы! А текст, как известно, обычно содержит большое количество ошибок.

В этом разделе представлены команды настройки, ориентированные на различные перекодировки таблиц символов и проверку орфографии (табл. 1.7).

Таблица 1.7. Команды настройки перекодировки таблиц символов и проверки орфографии
Команда Действие
--with-aspell [=DIR]Включение поддержки ASPELL
--with-gettext[=DIR]Включение поддержки библиотеки gettext проекта GNU. Аргумент DIR должен указывать на каталог, в котором установлена gettext.По умолчанию используется значение /usr/locat
--with-pspell[=DIR]Включение поддержки PSPELL
--with-recode[=DIR]Включение поддержки библиотеки recode проекта GNU. Аргумент DIR должен указывать на каталог, в котором установлена библиотека
--enable-shmopВключение поддержки shmop

1.3.8. XML

Несмотря на свою молодость, XML успел хорошо зарекомендовать себя в информационных системах самых разных классов, поэтому нет ничего удивительного в том, что при сборке РНР поддержка XML включается по умолчанию. Однако при необходимости вы можете либо отключить ее вовсе, либо модифицировать поведение анализатора (табл. 1.8)

`Таблица 1.8. Команды управления поддержкой XML
Команда Действие
--with-dom[=DIR]Включение поддержки DOM (требует libxml версии не ниже 2.0). Аргумент DI R должен указывать на каталог, в который установлена libxml. По умолчанию используется значение /usr
--enable-sablot-errors-descriptiveВключает генерацию расширенных сообщений об ошибках в XML-документах
--with-sablot[=DIR]Включает поддержку библиотек Sablotron
--enable-wddxВключение поддержки WDDXt
--disable-xmlОтключает поддержку XML, основанную на использовании встроенной в дистрибутив библиотеки Expat

1.3.9. Прочие настройки

И наконец, в этом разделе описаны команды, не вошедшие ни в один из ранее перечисленных классов. Фактически они отражают слабо выраженные (пока) на- правления развития РНР, которые не выделяются в какой-либо заметный класс(табл. 1.9).

Таблица 1.9. Команды прочих настроек
Команда Действие
--with-gmpВключение поддержки GMP
--disable-libtool-lockОтключение средств обслуживания блокировок. Ускоряет работу, но снижает надежность системы в целом. Использовать с осторожностью
•-disable-pearОтказ от установки библиотеки компонентов PEAR.
--disable-picОтключение поддержки PIC в совместно используемых объектах
--disable-posixОтключение поддержки функций POSIX
--disable-rpathОтключение передачи в сборочные файлы дополнительных каталогов библиотек времени исполнения
--disable-sessionОтключение сеансовой поддержки
--enable-bcmathКомпилировать PHP-машину с использованием математических функций в стиле и с точностью bc. Использование этих функций позволит вам работать с числами фактически произвольной длины, как это происходит, например, в Лиспе
--enable-c9x-inlineВключение поддержки семантики C9x-inline
--enable-calendarВключение поддержки преобразования календарных дат
--enable-debugКомпилировать PHP-машину с включением в объектный код отладочной информации
--enable-discard-pathПри включении этого режима вы можете размещать CGI-обработчики на РНР за пределами дерева каталогов документов HTML, что заметно затруднит злоумышленникам «перепиливание» решеток, наложенных с помощью .htaccess
--enable-dmallocРазрешает использовать для выделения памяти dmalloc
--enable-exifВключение поддержки exit
--enable-experimental-ztsТолько для разработчиков РНР. Не используйте этот ключ, если хотите получить работоспособную РНР-машину!
--enable-fast--install[=PKGS]Оптимизация РНР для быстрой установки в системе.Включена по умолчанию
--enable-force-cgi-redi rectВключает дополнительные проверки при выполнении внутренних перенаправлений запросов на сервере. Используется при работе с CGI-версией PHP-машины внутри Apache для повышения уровня безопасности
--enable-inli ne-optimi zationИспользуется при работе с компилятором дсс и наличии достаточно большого объема оперативной памяти. Повышает производительность PHP-машины примерно на 3-5%
--enable-libgccУказывает на необходимость компоновки с библиотекой libgcc
--enable-maintainer-modeПри активизации отключает правила и зависимости, используемые в сборочных файлах. Не предназначена для использования при сборке РНР
--enable-memory-limitСборка системы производится с ограничением на объем используемой оперативной памяти. По умолчанию режим отключен
--enable-safe-modeИспользовать при работе PHP-машины безопасный режим по умолчанию
--enable-satelliteВключить поддержку CORBA посредством Satellite. Требует установить библиотеку ORBit, которая входит в большинство дистрибутивов Linux
--enable-shared[=PKGS]Требует собирать РНР-машину в виде совместно используемых библиотек
--enable-sigchildРазрешить использовать PHP-машине собственный обработчик сигнала SIGCHLD
--enable-static[=PKGS]Собрать РНР-машину со статическим подключением библиотек
--enable-sysvsemРазрешить поддержку семафоров System V
--enable-sysvshmРазрешить использование механизма совместно используемой памяти System V
--enable-trans-sidВключить прозрачную передачу идентификатора сеанса
--with-cdb[=DIR]Включить поддержку CDB.
--with-config-file-path=PATHЗадает имя каталога, в котором PHP-машина будет искать конфигурационный файл php.ini. По умолчанию используется каталог /usr/local/lib
--with-cpdf lib[=DIR]Включить поддержку cpdflib (требуется библиотека cpdflib не ниже второй версии). Аргумент DIR должен указывать на каталог, в котором установлена библиотека. Значение по умолчанию — /usr
--with-esoob[ =DIR]Включает поддержку Easysoft OOB. Аргумент DIR должен указывать на базовый каталог ООВ. Значение по умолчанию —/usr/local/easysoft/oob/client
--with-exec-dir [=DIR]Разрешает помещать программы РНР только в каталог DIR при работе в безопасном режиме. По умолчанию используется каталог /usr/local/php/bin
--with-fdftk[=DIR]Включение поддержки fdftk. Аргумент DIR должен указывать на базовый каталог fdftk. По умолчанию используется /usr/local
--with-gnu-ldУказывает, что компилятор Си использует компоновщик GNU Id. По умолчанию никаких специальных предположений не делается
--with-icap[ = DIR]Включает поддержку ЮАР
--with-imap[=DIR]Включает поддержку IMAP. Аргумент DIR должен указывать на каталог, в котором размещаются заголовочные файлы IMAP и библиотека c-client.a
--with-java[=DIR]Включение поддержки Java. Аргумент DIR должен указывать на базовый каталог JDK
--with-kerberos[=DIR]Включение поддержки алгоритма аутентификации Kerberos в протоколе IMAP
--with-mcal[=DIR]Включение поддержки MCAL
--with-mcrypt[=DIR]Включение поддержки mcrypt. Аргумент DIR должен указывать на базовый каталог библиотеки
--with-mhash[=DIR]Включение поддержки mhash. Аргумент DIR должен указывать на базовый каталог библиотеки
--with-mm[=DIR]Включение поддержки библиотеки mm для сохранения сеансовой информации
--with-mod_charsetВключение поддержки таблиц перекодировки Apache-RUS. По умолчанию не используется, но должно включаться при построении русскоязычных серверов!
--with-pdflib[=DIR]Включение поддержки pdflib З.х/4.х. Аргумент DI R должен указывать на базовый каталог pdflib. По умолчанию используется /usr/local
--enable-shared-pdflibВключить поддержку pdflib как совместно используемой библиотеки
--with-readline[=DIR]Включить поддержку readline. Аргумент DIR должен указывать на базовый каталог библиотеки
--with-regex=TYPEВыбирает одну из библиотек обслуживания регулярных выражений: system, apache, php
--with-servlet[=DIR]Включение поддержки сервлетов. Аргумент DIR должен указывать на базовый каталог JSDK. При этом расширение поддержки Java должно быть собрано как совместно используемая библиотека
--with-mingВключение поддержки Flash 4, с использованием Ming
--with-swf [=DIR] Включение поддержки swf
--with-system-regexТребует использовать системную версию библиотеки регулярных выражений. В настоящее время считается устаревшей командой. Вместо нее рекомендуется использовать -with regex=system
--with-tsrm-pth [=pth-config]Требует использовать Pth проекта GNU
--with-tsrm-pthreads Включает поддержку нитей POSIX (активизируется по умолчанию)
--with-bz2[=DIR] Включить поддержку архивации по протоколу bzip2.Аргумент DIR должен указывать на каталог библиотеки bzip2
--with-zli b-dir [=DIR]Указывает каталог библиотеки zlib, использующейся для подключения в PHP pdflib 3.X/4.X или самой библиотеки zlib
--with-zlib[=DIR]Включает поддержку zlib (требует zlib версии 1.0.9 и выше). Аргумент DIR должен указывать на каталог библиотеки. По умолчанию используется значение/usr
--with-zziplib[=DIR]Включает поддержку ZZIPlib (версия ZZIPlib должна быть не ниже 0.10.6). Аргумент DIR должен указывать на базовый каталог ZZIPlib. По умолчанию используется значение /usr/tocal
--without-pc re- regex Запретить включение в состав PHP поддержки регулярных выражений в стиле Perl. Используется совместно с ключом -with-pcre-regex=DIR, который указывает, откуда брать заголовочные и библиотечные файлы, если вы отказываетесь от использования библиотеки, входящей в состав РНР

назад
далее

Сайт управляется системой uCoz