Каталог статей
Поиск по базе статей  
Статья на тему Интернет » Интересное в сети » PHP: секреты файла php.ini. Часть 4

 

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

 

 

В предыдущих статьях цикла мы начали рассматривать системные переменные или директивы РНР, которые устанавливаются через файл 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]

PostgreSQL по функциональности может соперничать с MySQL

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

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

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

pgsql.max_persistent = [-1/целое число] – задает количество одновременно открытых постоянных соединений.

pgsql.max_links = [-1/целое число] – задает ограничение общего количества открытых соединений (постоянных и обычных вместе).

pgsql.ignore_notice = [0/1] – опция появилась в РНР версии 4.3 и указывает интерпретатору игнорировать все сообщения про ошибки и замечания от СУБД.

pgsql.log_notice = [0/1] – разрешает вести лог всех сообщений от базы данных. Директива зависит от предыдущей, ignore_notice, и работает, только если она отключена.

[Sybase] и [Sybase-CT]

Sybase – мощная коммерческая база данных уровня предприятия

Sybase представляет собой очень мощную коммерческую систему управления базами данных уровня предприятия. Она часто используется для сбора и хранения огромных объемов информации в корпоративной среде: например, данных о продажах, бухгалтерских и других данных. Поддержка в РНР этой базы означает, что теперь есть возможность разрабатывать приложения для корпоративных порталов и интранета, напрямую интегрируя их с основным хранилищем данных. В одном из справочников по РНР я нашел указание, что функции для работы с Microsoft SQL Server идентичны и для Sybase (и наоборот), поэтому можно использовать только одно расширение. Хотя если вы работаете с последними версиями этих СУБД, рекомендую использовать для каждой базы свой модуль.

Часть директив, которые отвечают за управление постоянными соединениями, аналогична описанным выше, так что мы только упомянем их название и значения: sybase.allow_persistent = [On/Off], sybase.max_persistent = [-1/целое число], sybase.max_links = [-1/целое число].

sybase.interface_file = ["/usr/sybase/interfaces"/"путь к директории"] – изначально закомментированная опция, о которой ни слова не сказано в руководстве по РНР, но само название директивы подсказывает, что она может указывать путь к интерфейсным библиотекам Sybase.

sybase.min_error_severity = [10] – директива влияет на типы ошибок (их серьезность), которые выводятся пользователю (аналогично error_reporting для самого РНР). Аналогично следующая директива – sybase.min_message_severity = [10] – управляет типами сообщений, которые передаются пользователю.

sybase.compatability_mode = [Off/On] – включает режим совместимости с предыдущими версиями РНР (конкретнее – с РНР 3.0).

magic_quotes_sybase = [Off/On] – при включенной директиве одиночные кавычки экранируются путем добавления еще одной кавычки (удвоением). По умолчанию директива отключена, вместо нее используются общесистемные директивы magic_quotes_gpc и magic_quotes_runtime. При включении директивы она имеет более высокий приоритет, чем директива magic_quotes_gpc, и перекрывает ее. По умолчанию она отключена.

[dbx]

dbX – это один из методов абстрагирования от особенностей конкретной базы данных при разработке сайта

dbX – это один из методов абстрагирования от особенностей конкретной базы данных при разработке веб-приложения. Хотя известно множество других модулей, библиотек и классов для отделения логики приложения от функциональности конкретной СУБД, dbX является наиболее простым и изначально встроенным средством. В настоящее время dbX поддерживает почти все популярные базы данных – FrontBase (PHP 4.1.0), Microsoft SQL Server, MySQL, ODBC, PostgreSQL, Sybase-CT (PHP 4.2.0), Oracle (oci8, PHP 4.3.0) и SQLite (PHP 5). Несмотря на такую универсальность, в php.ini определяется всего одна директива для этого расширения.

dbx.colnames_case = ["unchanged"/"uppercase"/"lowercase"] – определяет, каким образом будут воспроизводиться названия столбцов в функции dbx_query(): по умолчанию регистр остается без изменений, «uppercase» и «lowercase» переводят их в верхний и нижний регистр соответственно.

[FrontBase]

FrontBase – это еще одна мощная коммерческая СУБД, которая применяется для построения информационной платформы предприятия. Она разработана для большинства существующих платформ, и РНР-разработчик может столкнуться с необходимостью работы с FrontBase при создании специализированных приложений для бизнеса, внутрикорпоративных порталов или электронных магазинов. FrontBase поставляет самостоятельные модули для связи своей СУБД и РНР, которые можно свободно загрузить с сайта разработчика (/redir.php?url=www.frontbase.com%3C%2Fa%3E%29%2C причем присутствуют отдельно версии как для РНР 3.0, так и новое расширение для РНР 4.0 (4.1/4.2).

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

Постоянные соединения (директива fbsql.allow_persistent=[On/Off]) появились только в РНР 4.2.0, а в отличие от остальных СУБД число открытых соединений изначально ограничено 128 (директива fbsql.max_links = [128]). Как и для MySQL, присутствуют директивы для задания логина и пароля пользователя по умолчанию, а также хоста и базы данных для него (директивы fbsql.default_user, fbsql.default_password, fbsql.default_database и fbsql.default_host).

Как видите, РНР поддерживает работу со всеми популярными базами данных, причем на самом деле их существенно больше, так как не все модули требуют определения директив в файле php.ini. В следующей части материала мы рассмотрим директивы других модулей, которые могут пригодиться при разработке, – например, mbstring для работы со строками в кодировке Unicode, модуля для работы с расширением COM и, скорее всего, самые главные (после общесистемных и MySQL) директивы, отвечающие за настройку механизма сессий.

Ссылки по теме




Статья получена: hostinfo.ru
загрузка...

 

 

Наверх


Постоянная ссылка на статью "PHP: секреты файла php.ini. Часть 4":


Рассказать другу

Оценка: 4.0 (голосов: 16)

Ваша оценка:

Ваш комментарий

Имя:
Сообщение:
Защитный код: включите графику
 
 



Поиск по базе статей:





Темы статей






Новые статьи

Противовирусные препараты: за и против Добро пожаловать в Армению. Знакомство с Арменией Крыша из сэндвич панелей для индивидуального строительства Возможно ли отменить договор купли-продажи квартиры, если он был уже подписан Как выбрать блеск для губ Чего боятся мужчины Как побороть страх перед неизвестностью Газон на участке своими руками Как правильно стирать шторы Как просто бросить курить

Вместе с этой статьей обычно читают:

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

Если спросить веб-программиста, какой из всех файлов дистрибутива PHP является самым главным, многие могут ответить, что сам интерпретатор, библиотеки, расширения и т. д. Нет, самый важный файл — это php.ini: небольшой текстовый файлик, в котором содержатся все настройки РНР (директивы), конфигурации модулей расширения и переменные среды. Через файл конфигурации можно настроить РНР на максимальное быстродействие, отключить потенциально опасные функции и модули, ну и, ...

» Интересное в сети - 3141 - читать


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

В предыдущей статье цикла мы начали рассматривать системные переменные или директивы РНР, которые устанавливаются через файл php.ini и позволяют тонко настроить среду исполнения РНР. Сейчас мы продолжим знакомство с наиболее важными директивами – знание и понимание механизма их действия позволят вам полностью управлять работой РНР, построить более защищенную веб-ситему или повысить производительность своего приложения. Мы будем рассматривать конфигурацию РНР версии 5.

» Интересное в сети - 2149 - читать


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

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

» Интересное в сети - 1880 - читать


Секреты PHP-функций для работы с&nb p;массивами. Обработка данных и&nb p;сортировка

Итак, что же там с вашим менеджером, который был упомянут в анонсе статьи? Вы уже написали ту самую злополучную версию функции для перекодировки какого-то поля в XML-файле. Но вечером того же дня оказывается, что надо срочно поменять логику работы скрипта, который уже закачан на сервер, протестирован вашим инженерным составом и одобрен чуть ли не самим генеральным директором фирмы.

» Интересное в сети - 2176 - читать


Секреты PHP-функций для работы с&nb p;массивами. Создание массивов

Основное назначение массивов — быстрая обработка данных. Часто разработчики программного обеспечения выполняют с их помощью сортирование информации, манипулирование исходными данными и получение различных выборок из наборов данных. Бытует мнение, что функциональность массивов гораздо проще организовать с помощью применения «толстой» прослойки SQL-кода и обращения к внешним приложениям типа специализированных хранилищ данных.

» Интересное в сети - 2068 - читать



Статья на тему Интернет » Интересное в сети » PHP: секреты файла php.ini. Часть 4

Все статьи | Разделы | Поиск | Добавить статью | Контакты

© Art.Thelib.Ru, 2006-2024, при копировании материалов, прямая индексируемая ссылка на сайт обязательна.

Энциклопедия Art.Thelib.Ru