Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

Глава 5. Конфигурация

При запуске синтаксического анализатора РНР происходит чтение файла конфигурации, который содержит основные настройки работы интерпретатора. Для версии РНР 3.0 файл называется php3.ini, PHP4 — php.ini. Эти файлы несут очень важную информацию, и умением их настраивать вы не должны пренебрегать. Файл конфигурации запускается только один раз при запуске Web-сервера (для версии серверного модуля). Для версии CGI это случается при каждом вызове интерпретатора.

Для каждой директивы, указанной в файле ini, имеется соответствующая директива Apache в файле httpd.conf. Для получения полной информации о большинстве установочных параметров значений конфигурации вы можете воспользоваться функцией phpinfo().

Из этой главы вы узнаете:

• основные директивыконфигурации;

• директивы конфигурации почты;

• директивы конфигурации SafeMode;

• директивы конфигурации отладчика;

• директивы загрузки расширений(Extension Loading);

• директивы конфигурации MySQL;

• директивыконфигурации mSQL;

• директивы конфигурации Postgres;

• директивы конфигурации Sybase;

• директивы конфигурации унифицированных ODBC;

• директивы конфигурации модуля Apache.

5.1. Основные директивы конфигурации

Как было ранее сказано, файл конфигурации является средством, которое контролирует многие аспекты поведения РНР. В зависимости от версии РНР он может называться php.ini, php3.ini или по-другому. Интерпретатор РНР ищет эти файлы в текущей рабочей директории, т. е. в пути, обозначенном системной переменной РНРРС, и в пути, определенном в процессе компиляции. Для операционной системы Windows во время компиляции устанавливается к Windows (например, С:/Windows).

Синтаксис файла чрезвычайно прост: строка и необходимая конфигурация, установленная пользователем, либо по умолчанию соответствующее ей значение. Если

строка начинается с точки с запятой, то все, что идет после, игнорируется. Квадратные скобки — [ ] — (например, [mail function], [java] и др.) также игнорируются, несмотря на то что они могли бы значить что-то в будущем.

Директивы определяются использованием следующего синтаксиса:

Directive = value

Направляющие названия зависят от регистра — java=bar отличается от JAVA=bar. Переменная может обозначаться: строка, номер, PHP-константа (например, E_ALL или P_PI), одной из INI-констант (on, off, true, false, yes, no и none) либо выражением (например, E_ALL & ~E_NOTICE) или цитируемой строкой («java»). Выражения в INI-файлах ограничены поразрядными операторами и круглыми скобками:

Булевые флаги можно включить, используя значения 1, on, true или yes. Соответственно, их можно выключить, используя значения 0, off, false или no. Пустая строка может быть обозначена, если вы не запишете ничего после знака «равно» или воспользуетесь ключевым словом none:

foo = ; устанавливает foo значение пустой строки,

foо = none устанавливает foо значение пустой строки,

foo = "none" устанавливает fоо значение "none".

Если используемые значения константы принадлежат динамически загружаемым распространителям (возможно, PHP-распространителям или Zend-расширениям), вы можете использовать эти константы только после after — строки, которая читает

Все значения в файле php.ini строго соответствуют значениям по умолчанию (т. е. php.ini не используется, а при удалении каких-либо строк значения по умолчанию будут

Опишем наиболее важные директивы, используемые в файле php.ini:

auto_append_file string

определяет имя файла, который автоматически проверяется после основного файла. При вызове функции include() с использованием include_path() можно также включить этот файл. Специальное значение none запрещает автодобавление.


ВНИМАНИЕ

Если сценарий обрывается функцией exit(), автодобавление не произойдет.


auto_prepend_file string

определяет имя файла, который автоматически проверяется перед основным файлом. Файл включается так же, как если бы была вызвана функция include() с использованием include_path. Специальное значение none запрещает автодобавление.

cgi_ext string display_errors boolean определяют, должны ошибки печататься на экране как часть HTML-вывода или нет.

doc_root string

главный каталог (root directory) PHP на сервере. Используется, только когда он не пустой. Если РНР сконфигурирован при помощи safe mode, то никакие другие файлы за пределами этого каталога не обслуживаются.

engine boolean

эта директива действительно полезна толькр в модуле РНР под Apache. Используется на сайтах, где необходимо включать и выключать синтаксический анализ РНР на определенные каталоги и виртуальные серверы. Установкой php3_engine off в допустимом месте файла httpd.conf анализатор РНР можно запрещать и разрешать.

error_log string

имя файла, с которым сохраняется журнал ошибок сценариев (log file). Если используется специальное значение syslog, ошибки отправляются в системный журнал (system logger). В UNIX это syslog (3), а в Windows NT это журнал событий (event log). Системный журнал не поддерживается в Windows 95.

error_reporting integer

устанавливает уровень сообщений об ошибках. Параметр является целым, представляющим битовую область. Добавьте те значения уровней сообщений об ошибках, которые вы хотите (табл. 5.1).

Таблица 5.1. Уровни сообщений об ошибках

open_basedir string

ограничивает файлы, которые могут открываться РНР в определенной директории.

Когда сценарий пытается открыть файл с помощью, например, fopen () или gzopen(), наличие/расположение файла проверяется. Когда файл находится за пределами определенной директории, РНР откажется открыть его. Все символьные ссылки определены, так что нет возможности избежать этого ограничения с помощью symlink. Специальное значение показывает, что каталог, в котором находится сценарий, используется как основной каталог. По умолчанию допускается открытие всех файлов.

gpc_order string

устанавливаетдопустимость Get/Post/Cookie в анализе. Установка по умолчанию этой директивы — «GPC». Установка ее в «GP», например, вынудит РНР полностью игнорировать Cookies и перезапишет любые переменные метода Get переменными метода Post с одинаковыми именами.

include_path string

определяет список каталогов, в котором будут располагаться файлы для функций require(), include() и fopen_with_path(). Формат подобен формату системной переменной окружения PATH: список каталогов разделяется двоеточием в UNIX или точкой с запятой в Windows. Например:

UNIX include_path

include_path=.:/home/httpd/php-library

Windows include_path

include_path=".;с:\www\phplibrary"

Значением по умолчанию этой директивы является только текущий каталог.

isapi_ext string

log_errors boolean

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

magic_quotes_gpc boolean

устанавливает состояние magic_quotes для GPC (Get/Post/Cookie) операций. Когдаmagie_quotes включено (on), все (одиночныекавычки), " (двойныекавычки), \ (обратные слеши) и нулевые значения записываются с обратной косой чертой автоматически. Если также включена magic_quotes_sybase, одиночная кавычка записывается с дополнительной одиночной кавычкой вместо обратной косой черты.

magic_quotes_runtime boolean

если magic_quotes_runtime разрешена, большинство функций, которые возвращают данные из любого внешнего источника разной природы, включая базы данных и текстовые файлы, будут иметь кавычки, записанные с обратной косой чертой. Если magic_quotes_sybase также включены, одиночная кавычка записывается с дополнительной одиночной кавычкой вместо обратной косой черты.

magic_quotes_sybase boolean

еслиmagic_quotes_sybase включена, при включенных magic_quotes_gpc или magic quotes_runtime, то одиночная кавычка записывается с дополнительной одиночной кавычкой вместо обратной косой черты.

max_execution_time integer

определяет максимальное время в секундах, допустимое для сценария, прежде чем он будет прекращен анализатором. Это помогает защититься от некорректно написанных сценариев

memory_limit integer

определяет максимальный размер памяти в байтах, допустимый для этого сценария. Это помогает запретить некорректно написанным сценариям использовать всю доступную память на сервере

nsapi_ext string

short_open_tag boolean

задают допустимость короткой формы тегов РНР (<? ?>). Если вы хотите использовать РНР совместно с XML, эту опцию необходимо отключить. При этом вы должны использовать длинную форму тегов

sql.safe__mode boolean

track_errors boolean

если опции разрешены, последнее сообщение об ошибке всегда будет представлено в глобальной переменной $php_errormsg.

track_vars boolean

если опция разрешена, входящая информация Get, Post и Cookie может быть найдена в глобальных ассоциативных массивах $HTTP_GET_VARS, $HTTP_POST_VARS и $HTTP_COOKIE_VARS, соответственно.

upload_tmp_dir string

временный каталог, используемый для хранения файлов при их загрузке на сервер. Должен допускать запись независимо оттого, каким пользователем РНР применяется.

user_dir string

основное имя каталога, используемого в домашнем каталоге пользователей для файлов РНР, например public_html.

warn_plus_overloading boolean

если разрешено, опция выдает при выводе РНР сообщение, когда оператор плюс (+) используется в строке. Это облегчает поиск сценариев, которые должны быть перезаписаны с заменой на (.).

<< Предыдущий параграф Следующий параграф >>
Оглавление