Файл конфигурации PHP — php.ini — является окончательным и самым прямым методом влияния на функциональность PHP. Файл php.ini считывается каждый раз при инициализации PHP  —  при перезапуске httpd для модульной версии или при каждом выполнении скрипта для CGI-версии. Если изменение не отображается, остановите и перезапустите httpd. Если изменение по-прежнему не отображается, примените phpinfo() для проверки пути к php.ini.

Конфигурационный файл снабжен комментариями и тщательно проработан. Ключи чувствительны к регистру, в отличие от значений ключевых слов. Пробельные символы, как и строки, начинающиеся с точки с запятой, игнорируются. Булевы значения могут быть представлены в виде 1/0, Yes/No, On/Off или True/False. Использование значений по умолчанию в php.ini-dist приведет к разумной установке PHP, в которую можно будет внести правки позже.

Ниже мы расскажем о важных настройках в php.ini, которые могут понадобиться для парсера PHP.

short_open_tag = Off

Короткие открытые теги выглядят следующим образом: <? ?>. Этот параметр должен быть установлен в Off, если вы хотите использовать функции XML.

safe_mode = Off

Если этот параметр установлен в On, вы, вероятно, компилировали PHP с флагом --enable-safe-mode. Безопасный режим наиболее актуален для использования CGI.

safe_mode_exec_dir = [DIR]

Эта опция актуальна, только если включен безопасный режим. Ее можно установить с помощью флага --with-exec-dir во время процесса сборки Unix. PHP в безопасном режиме выполняет внешние двоичные файлы только из этого каталога, по умолчанию  —  это /usr/local/bin. Этот процесс не имеет ничего общего с обслуживанием обычной PHP/HTML-веб-страницы.

safe_mode_allowed_env_vars = [PHP_]

Эта опция устанавливает, какие переменные среды пользователи могут изменять в безопасном режиме. По умолчанию это только те переменные, перед которыми стоит “PHP_”. Если эта директива пуста, то большинство переменных можно изменять.

safe_mode_protected_env_vars = [LD_LIBRARY_PATH]

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

disable_functions = [function1, function2…]

Приятным дополнением к конфигурации PHP4, перекочевавшим и в PHP5, является возможность отключения выбранных функций в целях безопасности. Раньше для этого приходилось вручную редактировать код на языке C, на основе которого был создан PHP. Файловая система и сетевые функции, вероятно, первыми подвергнутся риску, потому что возможность записывать файлы и изменять систему через HTTP  —  это всегда небезопасно.

max_execution_time = 30

Функция set_time_limit() не будет работать в безопасном режиме, поэтому max_execution_time основной способ заставить скрипт прерваться в безопасном режиме. В Windows вы должны прерывать выполнение на основе максимально потребленной памяти, а не времени. Вы также можете использовать настройки таймаута Apache, но то же будет применяться и к не-PHP файлам на сайте.

error_reporting = E_ALL & ~E_NOTICE

Значение по умолчанию  —  E_ALL & ~E_NOTICE; все ошибки, кроме уведомлений. Серверы разработки должны быть настроены, по крайней мере, на значение по умолчанию. Только производственные серверы могут иметь меньшее значение.

error_prepend_string = [“”]

Оформление настройки error_append_string позволяет изменить цвет сообщений об ошибках, чтобы он отличался от остального кода.

warn_plus_overloading = Off

Эта настройка выдает предупреждение, если оператор + используется со строками, как в значении формы.

variables_order = EGPCS

Этот параметр конфигурации заменяет gpc_order. Обе версии устарели, как и register_globals. Он устанавливает порядок различных переменных: Environment, GET, POST, COOKIE и SERVER (или Built-in). Вы можете изменить этот порядок. Переменные будут перезаписываться последовательно слева направо, причем самая правая будет каждый раз “побеждать”. Это означает, что если вы оставили настройки по умолчанию и случайно использовали одно и то же имя для переменной среды, переменной POST и переменной COOKIE, то в конце процесса это имя будет принадлежать переменной COOKIE. В реальной практике такое случается нечасто.

register_globals = Off

Этот параметр позволяет вам решить, хотите ли вы регистрировать переменные EGPCS как глобальные. Сейчас эта опция уже устарела, и, начиная с PHP4.2, этот флаг по умолчанию установлен в Off. Используйте вместо этого суперглобальные массивы. Все основные листинги кода на страницах этого руководства используют суперглобальные массивы.

gpc_order = GPC

Эта настройка считается устаревшей.

magic_quotes_gpc = On

Эта опция экранирует кавычки во входящих данных GET/POST/COOKIE. Если вы используете много форм, которые отправляют данные сами себе или другим формам и отображают значения форм, возможно, вам понадобится установить эту директиву в On или приготовиться к применению addslashes() для данных строкового типа.

magic_quotes_runtime = Off

Эта опция экранирует кавычки во входящей базе данных и строках текста. Помните, что SQL добавляет косые черты к одинарным кавычкам и апострофам при хранении строк и не удаляет их при возврате. Если эта настройка находится в Off, вам необходимо применять stripslashes() при выводе любого типа строковых данных из базы данных SQL. Если для параметра magic_quotes_sybase установлено значение On, то этот параметр должен быть в режиме Off.

magic_quotes_sybase = Off

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

auto-prepend-file = [путь/к/файлу]

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

auto-append-file = [путь/к/файлу]

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

include_path = [DIR]

Если вы установите это значение, вы сможете включать или затребовать файлы только из этих каталогов. Каталог include обычно находится под корнем вашего документа; это обязательное условие, если вы работаете в безопасном режиме. Установите значение . , чтобы включить файлы из того же каталога, в котором находится ваш скрипт. Каталоги разделяются двоеточиями: .:/usr/local/apache/htdocs:/usr/local/lib.

doc_root = [DIR]

Если вы используете Apache, вы уже задали корень документа для этого сервера или виртуального хоста в httpd.conf. Установите это значение здесь, если вы используете безопасный режим или хотите включить PHP только на части вашего веб-сайта (например, только в одном подкаталоге корневого каталога документов).

file_uploads = [on/off]

Включите этот флаг, если будете загружать файлы с помощью PHP-скрипта.

upload_tmp_dir = [DIR]

Не раскомментируйте эту строку, если не осознаете последствий HTTP-загрузок!

session.save-handler = files

За исключением редких случаев, вам не стоит менять эту настройку. Не трогайте ее.

ignore_user_abort = [On/Off]

Этот параметр определяет, что произойдет, если посетитель сайта нажмет кнопку “Стоп” в браузере. По умолчанию установлено значение On, что означает выполнение сценария до завершения или тайм-аута. Если изменить значение параметра на Off, скрипт прервется. Этот параметр работает только в режиме модуля, но не CGI.

mysql.default_host = имя хоста

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

mysql.default_user = имя пользователя

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

mysql.default_password = пароль

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

Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен

Предыдущая статьяРуководство по структурам данных и алгоритмам: введение и настройка среды
Следующая статьяНастройка Apache для PHP