Файл конфигурации 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 = пароль
Пароль по умолчанию, который будет использоваться при подключении к серверу базы данных, если не указан другой пароль.
Читайте также:
Читайте нас в Telegram, VK и Яндекс.Дзен