PHP: секреты файла php.ini. Часть 4

Автор статьи: Александр Лозовюк

>

 

PHP: секреты файла php.ini. Часть 4

[директивы конфигурации РНР, отвечающие за работу с базами данных]
материал подготовил: Александр Лозовюк
04.08.2005
 

В предыдущих статьях цикла мы начали рассматривать системные переменные или директивы РНР, которые устанавливаются через файл php.ini и позволяют тонко настроить среду исполнения РНР. большинство модулей и расширений, как поставляемых в стандартном дистрибутиве, так и в виде дополнительного набора PECL, используют файл php.ini для хранения своих конфигураций. Вместе с тем этот файл универсальный, то есть он изначально включает все директивы для большинства модулей, даже если они не подключены и не используются. В принципе это может немного сказаться на скорости загрузки (если PHP используется как CGI-модуль), поэтому в случае настройки РНР под себя (для конкретного проекта) вы можете удалить ту часть директив, которые гарантированно не используются. Но это достаточно тонкая и опасная процедура, ведь удаление нужной директивы может привести к неработоспособности РНР или неверной работе сайта, а то и к существенному ослаблению защиты сервера. Поэтому, прежде чем вносить какие-либо изменения в файл php.ini, советуем внимательно изучить его структуру и предназначение отдельных директив. В этом вам, надеемся, поможет этот цикл статей. Мы будем рассматривать конфигурацию РНР версии 5.0.х, так что, если у вас более ранняя версия, некоторые директивы могут отсутствовать. Напомним, что директивы для отдельных модулей находятся в секциях, обозначаемых как [название секции], например: [ODBC] отвечает за настройки связи с базами данных через механизм ODBC, а [MySQL] - за настройку параметров доступа к серверу MySQL.

имена директив могут отличаться от общесистемных - для отдельных модулей они могут иметь вид имя_модуля.имя_директивы. Так же как и для остальных параметров, директивы отдельных модулей можно в большинстве случаев устанавливать не только через php.ini, но и с помощью уже описанной функции ini_set().

При рассмотрении файла php.ini невольно приходит мысль, что по нему можно делать исследование на тему "На каких СУБД работают веб-сайты" - если РНР не умеет работать с какой-то СУБД (система управления базами данных), это почти стопроцентно означает, что она непригодна для массового рынка веб-сайтов. Основное место среди всех секций с директивами занимают настройки модулей для работы с базами данных. Мы уже рассмотрели в предыдущей статье директивы конфигурации ODBC, MySQL и MySQLI, сейчас же продолжим рассмотрение конфигураций доступа к PostgresSQL, Sybase, dbX и FrontBase.

[PostgresSQL]

 

Эта секция описывает конфигурацию популярной СУБД с открытым кодом (лицензия BSD) PostgreSQL, которая в принципе позиционируется как альтернатива MySQL. Если вашему приложению требуется особая функциональность от базы данных (абстрактные типы данных, транзакции, триггеры и хранимые процедуры, использующие в том числе и специальную версию языка Perl), то эта база будет идеальным выбором, особенно учитывая ее открытость. Для веб-приложений связка PostgreSQL+РНР может понадобиться в случае интеграции портала с уже существующей корпоративной системой или для создания каких-то уникальных сервисов, приложений электронной коммерции и т. д. Да, еще один момент - разработчики не рекомендуют использовать РНР версий 4.0.х совместно с PostgreSQL, так как в модуле для этой версии присутствует ряд недоработок - рекомендуется использовать версии 4.1 и выше. Несмотря на серьезную функциональность, набор директив довольно скромный.

pgsql.allow_persistent = [On/Off] - уже почти традиционная опция, разрешающая использовать постоянные соединения для уменьшения нагрузки на сервер СУБД. По умолчанию опция разрешена.

pgsql.auto_reset_persistent = [Off/On] - специфическая для этой БД директива, позволяющая механизму установления соединений определять работающие открытые постоянные соединения и использовать их или же автоматически удалять нерабочие (broken) ссылки и создавать новые соединения. Эти проверки работают только при вызове функции pg_pconnect() и немного снижают производительность, замедляя установку нового соединения, поэтому изначально опция

Алексей Волков

0 Комментариев

Нет комментариев!

Пока нет комментариев, но вы можете стать первым, кто прокомментировал данный пост

Оставить комментарий

Только зарегистрированные пользователи могут оставлять комментарии.