Руководство по РНР 3.0 - Описание языка
Содержание
- Установка из исходных кодов на UNIX
- Руководство по установке PHP3 для Windows
- Проблемы?
- Безопасность
Эта глава является руководством по конфигурации и установке PHP3.
Требуемые знания и программное обеспечение:
Установка из исходных кодов на UNIX:
Исходные коды последней версии можно найти по адресу:
http://www.php.net.
Имеется два пути конфигурирования PHP3.
-
используйте скрипт "setup", который поставляется с PHP3.
Этот скрипт задает Вам ряд вопросов (практически совпадающих
со сценарием "install" PHP/FI 2.0) и в конце запускает "configure".
Для запуска этого скрипта наберите
./setup.
Этот сценарий также создает файл, называемый "do-conf", который содержит опции,
установленные при конфигурации. Вы можете редактировать этот файл
для изменения некоторых опций без перезапуска "setup". Тогда выполните
./do-conf
и конфигурация запустится с новыми параметрами.
-
выполните конфигурацию вручную. Для просмотра параметров Вы можете выполнить
./configure --help.
Детали различных параметров конфигурации рассмотрены ниже.
Модуль Apache:
Для построения 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 в качестве модуля fhttpd ответьте "yes" в пункте
"Build as an fhttpd module?" (параметр конфигурации
--with-fhttpd=
DIR
)
и определить базовый каталог исходных кодов fhttpd. По умолчанию это
/usr/local/src/fhttpd.
Если Вы запускаете fhttpd, то построение PHP3 в качестве модуля
даст лучшую производительность и возможность контроля за удаленным исполнением.
Версия CGI:
По умолчанию PHP3 формируется как программа CGI. Если Вы используете web server
с поддержкой PHP3 в качестве модуля, то в своих решениях Вы должны исходить
из производительности. Однако CGI версия дает возможность пользователям Apache
исполнять страницы с поддержкой PHP под различными идентификаторами пользователя.
Пожалуйста, прочитайте
Security chapter
если Вы собираетесь исполнять PHP как CGI.
Параметры поддержки базы данных:
PHP имеет собственную поддержку для нескольких баз данных (так же как ODBC):
--with-adabas =DIR
Компиляция с поддержкой Adabas D. Параметр - установочная директория Adabas D,
по умолчанию
/usr/local/adabasd.
Adabas home page
--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.
mSQL home page
--with-mysql=DIR
Включает поддержку MySQL. Параметр в этой опции - установочная директория MySQL,
по умолчанию
/usr/local.
Она является директорией по умолчанию в дистрибутиве MySQL.
Посмотрите также директивы
MySQL Configuration в
configuration file.
MySQL home page
--with-iodbc=DIR
Включает поддержку iODBC. Этот признак был разработан сначала для iODBC Driver Manager,
перераспределяемого ODBC driver manager, который выполняется под множеством разновидностей UNIX.
Параметром этой опции является установочная директория iODBC, по умолчанию
/usr/local.
FreeODBC home page
--with-openlink=DIR
Включает поддержку OpenLink ODBC. Параметром этой опции является установочная директория
OpenLink ODBC, по умолчанию
/usr/local/openlink.
OpenLink Software's home page
--with-oracle=DIR
Включает поддержку Oracle. Протестирован и должен работать на версиях Oracle от 7.0 до 7.3.
Параметром является директория
ORACLE_HOME
Вы не должны определять этот параметр, если была установлена среда окружения Oracle.
Oracle home page
--with-pgsql=DIR
Включает поддержку PostgreSQL. Параметром является базовая установочная директория
PostgreSQL, по умолчанию
/usr/local/pgsql.
Посмотрите также директивы
Postgres Configuration в
configuration file.
PostgreSQL home page
--with-solid=DIR
Включает поддержку Solid. Параметром является установочная директория Solid,
по умолчанию
/usr/local/solid.
Solid home page
--with-sybase=DIR
Включает поддержку Sybase. Параметром является установочная директория Sybase,
по умолчанию
/home/sybase.
Посмотрите также директивы
Sybase Configuration в
configuration file.
Sybase home page
--with-sybase-ct=DIR
Включает поддержку Sybase-CT. Параметром является установочная директория Sybase,
по умолчанию
/home/sybase.
Посмотрите также директивы
Sybase-CT Configuration в
configuration file.
--with-velocis=DIR
Включает поддержку Velocis. Параметром этой опции является установочная директория
OpenLink ODBC, по умолчанию
/usr/local/velocis.
Velocis home page
--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.
--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.htm.
Этот пример, доступен на
http://my.host/secret/doc.htm
но игнорирует все установленные httpd правила безопасности для директории
/secret.
Не установленная опция отключает проверку и дает возможность обхода защиты httpd
и настроек предъявления полномочий. Делайте это только тогда, когда программное обеспечение
Вашего сервера неспособно указать, что была выполнена безопасная переадресация
и все Ваши файлы в корне документа, а также директории пользователей общедоступны.
--disable-short-tags
Отключает краткую форму <? ?>тегов PHP3.
Вы должны отключить краткую форму, если хотите использовать PHP3 c
XML.
При отключенной краткой форме принимается только тег PHP3
<?php ?>.
Эта опция только устанавливает значение по умолчанию, которое потом можно включить
или выключить при помощи директивы
short_open_tag в
configuration file.
--enable-url-includes
Дает возможность выполнять код на других HTTP и FTP серверах непосредственно из PHP3 с
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.
Содержание