Эта глава является руководством по конфигурации и установке PHP3. Требуемые знания и программное обеспечение:
базовые навыки работы с UNIX (на уровне выполнения команды "make" и компилятора С);
компилятор ANSI C;
web server (очевидно);
Исходные коды последней версии можно найти по адресу: http://www.php.net.
1. gunzip apache_1.3.x.tar.gz 2. tar xvf apache_1.3.x.tar 3. gunzip php-3.0.x.tar.gz 4. tar xvf php-3.0.x.tar 5. cd apache_1.3.x 6. ./configure --prefix=/www 7. cd ../php-3.0.x 8. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars 9. make 10. make install 11. cd ../apache_1.3.x 12. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a 13. make 14. make install Вместо этих шагов Вы можете просто скопировать бинарный файл httpd поверх вашего существующего бинарного файла. Перед этим убедитесь, что Вы выключили свой сервер. 15. cd ../php-3.0.x 16. cp php3.ini-dist /usr/local/lib/php3.ini Вы можете отредактировать файл /usr/local/lib/php3.ini для установления опций PHP. Если Вы предпочитаете поместить этот файл в другое место, то используйте --with-config-file=/path в шаге 8. 17. Отредактируйте Ваш файл httpd.conf или srm.conf и добавьте: AddType application/x-httpd-php3 .php3 Вы можете выбрать здесь любое расширение по Вашему желанию. В данном случае мы просто рекомендуем выбрать .php3. 18. Используйте Вашу обычную процедуру для запуска сервера Apache. (Вы должны остановить и перезапустить сервер, а не просто перезагрузить сервер с использованием сигнала HUP или USR1).
Имеется два пути конфигурирования PHP3.
используйте скрипт "setup", который поставляется с PHP3. Этот скрипт задает Вам ряд вопросов (практически совпадающих со сценарием "install" PHP/FI 2.0) и в конце запускает "configure". Для запуска этого скрипта наберите ./setup.
Этот сценарий также создает файл, называемый "do-conf", который содержит опции, установленные при конфигурации. Вы можете редактировать этот файл для изменения некоторых опций без перезапуска "setup". Тогда выполните ./do-conf и конфигурация запустится с новыми параметрами.
выполните конфигурацию вручную. Для просмотра параметров Вы можете выполнить ./configure --help.
Детали различных параметров конфигурации рассмотрены ниже.
Для построения PHP3 в качестве модуля Apache ответьте "yes" в пункте "Build as an Apache module?" (параметр конфигурации --with-apache= DIR ) и определить базовый каталог дистрибутива Apache. Если Вы распаковали свой дистрибутив Apache в директорию /usr/local/www/apache_1.2.4 то она и будет Вашей базовой директорией дистрибутива Apache. Директория по умолчанию /usr/local/etc/httpd.
При построении fhttpd в качестве модуля fhttpd ответьте "yes" в пункте "Build as an fhttpd module?" (параметр конфигурации --with-fhttpd= DIR ) и определить базовый каталог исходных кодов fhttpd. По умолчанию это /usr/local/src/fhttpd. Если Вы запускаете fhttpd, то построение PHP3 в качестве модуля даст лучшую производительность и возможность контроля за удаленным исполнением.
По умолчанию PHP3 формируется как программа CGI. Если Вы используете web server с поддержкой PHP3 в качестве модуля, то в своих решениях Вы должны исходить из производительности. Однако CGI версия дает возможность пользователям Apache исполнять страницы с поддержкой PHP под различными идентификаторами пользователя. Пожалуйста, прочитайте Security chapter если Вы собираетесь исполнять PHP как CGI.
PHP имеет собственную поддержку для нескольких баз данных (так же как ODBC):
--with-adabas =DIR
Компиляция с поддержкой Adabas D. Параметр - установочная директория Adabas D, по умолчанию /usr/local/adabasd.
--with-dbase
Включает условный атрибут поддержки Dbase. Не требует внешних библиотек.
--with-filepro
Включает условный атрибут поддержки filePro только для чтения. Не требует внешних библиотек.
--with-msql=DIR
Включает поддержку mSQL. Параметр этой опции - установочная директория mSQL, по умолчанию /usr/local/Hughes. Это директория по умолчанию дистрибутива mSQL 2.0 configure автоматически определяет, какую версию mSQL Вы используете, а PHP3 поддерживает как версию 1.0, так и 2.0, но если Вы компилируете PHP2 с версией mSQL1.0, то можете получить доступ только к базам данных mSQL1.0 и наоборот.
Посмотрите также директивы mSQL Configuration в configuration file.
--with-mysql=DIR
Включает поддержку MySQL. Параметр в этой опции - установочная директория MySQL, по умолчанию /usr/local. Она является директорией по умолчанию в дистрибутиве MySQL.
Посмотрите также директивы MySQL Configuration в configuration file.
--with-iodbc=DIR
Включает поддержку iODBC. Этот признак был разработан сначала для iODBC Driver Manager, перераспределяемого ODBC driver manager, который выполняется под множеством разновидностей UNIX. Параметром этой опции является установочная директория iODBC, по умолчанию /usr/local.
--with-openlink=DIR
Включает поддержку OpenLink ODBC. Параметром этой опции является установочная директория OpenLink ODBC, по умолчанию /usr/local/openlink.
--with-oracle=DIR
Включает поддержку Oracle. Протестирован и должен работать на версиях Oracle от 7.0 до 7.3. Параметром является директория ORACLE_HOME Вы не должны определять этот параметр, если была установлена среда окружения Oracle.
--with-pgsql=DIR
Включает поддержку PostgreSQL. Параметром является базовая установочная директория PostgreSQL, по умолчанию /usr/local/pgsql.
Посмотрите также директивы Postgres Configuration в configuration file.
--with-solid=DIR
Включает поддержку Solid. Параметром является установочная директория Solid, по умолчанию /usr/local/solid.
--with-sybase=DIR
Включает поддержку Sybase. Параметром является установочная директория Sybase, по умолчанию /home/sybase.
Посмотрите также директивы Sybase Configuration в configuration file.
--with-sybase-ct=DIR
Включает поддержку Sybase-CT. Параметром является установочная директория Sybase, по умолчанию /home/sybase.
Посмотрите также директивы Sybase-CT Configuration в configuration file.
--with-velocis=DIR
Включает поддержку Velocis. Параметром этой опции является установочная директория OpenLink ODBC, по умолчанию /usr/local/velocis.
--with-custom-odbc=DIR
Включает поддержку для произвольной custom ODBC library. Параметром является базовая директория, по умолчанию /usr/local.
Эта опция подразумевает, что Вы определили CUSTOM_ODBC_LIBS, когда исполняется сценарий конфигурации. Вы также должны иметь правильный заголовочный файл odbc.h где-нибудь в путях включения. Если у Вас его нет, то создайте свой заголовочный файл и включите его отсюда. Он может также требовать несколько внешних определений, особенно когда это на нескольких платформах. Определите их в CFLAGS.
Например Вы можете использовать Sybase SQL Anywhere on QNX следующим образом: CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50
--disable-unified-odbc
Отключает Unified ODBC модуль, который является общим интерфейсом ко всем базам данных с интерфейсом, основанным на ODBC, таких как Solid и Adabas D. Это также работает для нормальных библиотек ODBC. Был проверен с iODBC, Solid, Adabas D и Sybase SQL Anywhere. Требуется, чтобы один (и только один) из этих модулей или модуль Velocis был включен или определена пользовательская библиотека ODBC. Этот параметр применим только если используется одна из следующих опций: --with-iodbc, --with-solid, --with-adabas, --with-velocis, или --with-custom-odbc,
Посмотрите также директивы Unified ODBC Configuration в configuration file.
--with-ldap=DIR
Включает поддержку LDAP (Lightweight Directory Access Protocol). ). Параметром является базовая установочная директория LDAP, по умолчанию /usr/local/ldap.
Более подробную информацию по LDAP можно найти в RFC1777 и RFC1778.
--enable-sysvsem
Включает поддержку для семафоров Sys V (поддерживается большинством разновидностей UNIX). Для получения подробной информации смотрим Semaphore and Shared Memory documentation.
--enable-sysvshm
Включает поддержку разделяемой памяти для Sys V (поддерживается большинством разновидностей UNIX). Для получения подробной информации смотрим Semaphore and Shared Memory documentation.
--with-xml
Включает поддержку для непроверенных синтаксических анализаторов XML, используя библиотеку от James Clark's expat library. Для больших подробностей обратитесь к XML function reference.
--enable-maintainer-mode
Включает дополнительные зависимости и предупреждения компилятора, используемые некоторыми разработчиками PHP3.
--with-system-regex
Использует библиотеку регулярных выражений прежде, чем собственные условия. Если Вы построили PHP3 в качестве модуля сервера, Вы должны использовать одинаковую библиотеку - и когда собираете PHP3 и когда собираете сервер. Включите эту опцию, если системные библиотеки обеспечивают специальные свойства, которые Вам требуются. Рекомендуется при возможности использовать собственные библиотеки.
--with-config-file-path=DIR
Маршрут, используемый для просмотра the php3.ini file при старте PHP.
--with-exec-dir=DIR
Разрешить только запуск исполнимых файлов в DIR при нахождении в защищенном режиме. По умолчанию это /usr/local/bin. Эта опция только устанавливает значение по умолчанию, которое потом можно изменить при помощи директивы safe_mode_exec_dir в configuration file.
--disable-debug
Не включает информацию об отладке в библиотеке или исполнимой программе. Отладочная информация просто точно указывает на ошибки, поэтому можно выключить отладку, пока PHP3 находится в стадии бета или альфа версий.
--enable-safe-mode
Включает защищенный режим (safe mode) по умолчанию. Это накладывает некоторые ограничения на действия PHP, таких как открытие файлов только внутри корня документа. Для более подробной информации смотрите Security chapter Пользователи CGI всегда должны включать безопасный режим. Эта опция только устанавливает значение по умолчанию, которое потом можно включить или выключить при помощи директивы safe_mode configuration file.
--enable-track-vars
Указывает PHP3 отслеживать пришедшие переменные GET/POST/cookie в массивах HTTP_GET_VARS, HTTP_POST_VARS и HTTP_COOKIE_VARS. Эта опция только устанавливает значение по умолчанию, которое потом можно включить или выключить при помощи директивы track_vars в configuration file.
--enable-magic-quotes
Включает по умолчанию системные квоты. Эта опция только устанавливает значение по умолчанию, которое потом можно включить или выключить при помощи директивы magic_quotes_runtime в configuration file. Смотрим также директивы magic_quotes_gpc и magic_quotes_sybase.
--enable-debugger
Включает внутреннюю поддержку PHP3 debugger. Это свойство находится в стадии испытания. Смотрим также директивы Debugger Configuration в configuration file.
--enable-discard-path
Если это включено, то бинарный PHP CGI может быть безопасно помещен вне дерева web и пользователи не смогут обойти защиту .htaccess. Читайте об этой опции section in the security chapter.
--enable-bcmath
Включает стиль bc произвольной точности математических функций. Смотрим также опцию bcmath.scale в configuration file.
--enable-force-cgi-redirect
Включает проверку безопасности для внутренних переадресаций сервера (redirect). Вы должны использовать это, если запускаете CGI версию с Apache.
Когда PHP используется в качестве исполняемого CGI, PHP по умолчанию сначала всегда проверяет, что используется переадресацией (например под Apache, используя директивы Action). Это дает уверенность, что исполняемый PHP не может использоваться для того, чтобы обойти стандартные процедуры установления прав web сервера путем непосредственного вызова, как например http://my.host/cgi-bin/php/secret/doc.html. Этот пример, доступен на http://my.host/secret/doc.html но игнорирует все установленные httpd правила безопасности для директории /secret.
Не установленная опция отключает проверку и дает возможность обхода защиты httpd и настроек предъявления полномочий. Делайте это только тогда, когда программное обеспечение Вашего сервера неспособно указать, что была выполнена безопасная переадресация и все Ваши файлы в корне документа, а также директории пользователей общедоступны.
Читайте об этой опции в section in the security chapter.
--disable-short-tags
Отключает краткую форму <? ?>тегов PHP3. Вы должны отключить краткую форму, если хотите использовать PHP3 c XML. При отключенной краткой форме принимается только тег PHP3 <?php ?>. Эта опция только устанавливает значение по умолчанию, которое потом можно включить или выключить при помощи директивы short_open_tag в configuration file.
--enable-url-includes
Дает возможность выполнять код на других HTTP и FTP серверах непосредственно из PHP3 с include(). Смотрим также опцию include_path в configuration file.
--disable-syntax-hl
Выключает синтаксическое выделение.
При сборке PHP3 установщик просматривает заголовочные и библиотечные файлы в различных директориях, измените соответственно переменные окружения CPPFLAGS и LDFLAGS. Если Вы используете нормальный shell, то вы должны написать LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure
Когда PHP3 сконфигурирован, Вы готовы к построению исполнимых CGI или библиотеку PHP3. Об этом заботится команда make. Если Вы потерпели неудачу и не можете понять почему, то смотрите раздел Problems section.
Если Вы собрали PHP3 в качестве программы CGI, Вы можете проверить результат, выполнив команду make test. Это хорошая идея - проверить результат сборки. Этим способом Вы можете обнаружить проблему с Вашим PHP3 на ранней стадии, вместо того, чтобы бороться с этим позже.
Если Вы собрали PHP3 в качестве программы CGI, Вы можете протестировать свою версию при помощи команды make bench. Обратите внимание, что если используется защищенный режим по умолчанию, то тест может не завершиться, если он требует больше, чем 30 секунд. Это происходит потому, что set_time_limit() () не может быть использована в защищенном режиме. Используйте max_execution_time для контроля этого времени в Ваших собственных сценариях. make bench игнорирует configuration file.