Директивы файла php.ini
В этой статье мы с Вами рассмотрим основные директивы файла php.ini. Данный файл содержит настройки языка php. При работе с файлом необходимо учитывать, что все директивы файла чувствительны к регистру символов. Необходимо обращать особое внимание на использование заглавных и строчных букв.
engine = On
Директива разрешает (On) или запрещает (Off) работу скриптов на РНР под управлением сервера Apache
short_open_tag = On
Директива разрешает (On) или запрещает (Off) использование коротких тегов
asp_tags = Off
Директива запрещает (On) или запрещает (Off) использование тегов в стиле ASP «% %»
Precision = 12
Директива задает число значащих цифр после запятой для чисел с плавающей точкой
output_buffering = 4096
Директива включает буферизацию вывода с одновременным указанием размера буфера вывода в байтах. Включенная директива (output_buffering = On) позволяет посылать заголовки, в том числе и cookie после вывода текста. В случае если размер буфера не указан, используется максимально возможный размер буфера
implicit_flush = Off
Действие этой директивы аналогично вызову функции flush (функция, очищающая буфер вывода РНР) после каждого применения функций print или echo. И после каждого HTML-блока. Использование указанной директивы серьезно замедляет выполнение скриптов, поэтому по умолчанию она отключена, и использовать ее рекомендуется только в целях отладки
allow_call_time_pass_reference = Off
Эта директива определяет, возможна ли передача аргументов функциям по ссылке при выполнении скрипта. В РНР 5 по умолчанию отключена. Постольку в более ранних версиях языка указанная директива по умолчанию находилась во включенном состоянии, при переходе на РНР 5 возможны проблемы с выполнением этих скриптов (будут появляться предупреждения всякий раз, когда аргумент передается ненадлежащим образом)
safe mode = Off
Директива отключает (Off) или включает (On) безопасный режим
disable functions =
Директива позволяет запрещать вызовы некоторых функций и действует независимо от того, установлен безопасный режим или нет. Список запрещаемых функций создается в виде имен функций, которые разделены запятыми
disable classes =
Директива позволяет запрещать вызовы некоторых классов и действует независимо от того, установлен безопасный режим или нет. Список запрещаемых классов создается в виде имен классов, которые разделены запятыми
highlight.string = #000000
highlight.comment = #FF8000
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000ВВ
highlight.html = #000000
Набор данных директив определяет цвета, используемые для раскраски синтаксиса РНР при вызове функций highlight.string () И highlight_file ()
max execution time = 30
Директива определяет, что максимальное возможное время выполнения скрипта составляет 30 секунд
max_input_time = 60
Директива задает максимальное время, которое скрипт может потратить на обработку запрошенных данных
memory_limit = 8М
Директива определяет, что максимальный объем памяти, выделяемый одному сценарию, составляет 8 Мбайт
error_reporting =
Директива error_reporting задается в виде битового поля, т. е. ее значение устанавливается с помощью нижеперечисленных констант, объединенных оператором I (OR):
Е - ALL (все предупреждения и ошибки);
E_ERROR (фатальные ошибки во время выполнения);
E_WARNING (некритические ошибки - предупреждения - во время выполнения);
E_PARSE (ошибки трансляции);
E_NOTICE (замечания во время выполнения, которые сообщают о возможных логических ошибках в скрипте; к этому типу ошибок относятся, к примеру, предупреждения об использовании неинициализированных переменных);
E_CORE_ERROR (фатальные ошибки при старте РНР);
E_CORE_WARNING (предупреждения при старте РНР);
E_COMPILE_ERROR (фатальные ошибки при компиляции);
E_CQMPILE_WARNING (предупреждения при компиляции);
E_USER_ERROR (ошибки, вызванные действиями пользователя);
Е- USER - WARNING (предупреждения, вызванные действиями пользователя);
E_USER_NOTICE (замечания, вызванные действиями пользователя).
Таким образом, для того, чтобы отображались все ошибки, за исключением замечаний о возможных логических ошибках в сценарии, нужно установить директиву Error - reporting следующим образом:
error_reporting = E_ALL & ~E_NOTICE
Для того чтобы показывать только ошибки, директива должна быть настроена так, как показано ниже:
error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = Off
Директива запрещает вывод ошибок и предупреждений в браузер. При отладке приложений следует включить эту директиву, в реальной же работе лучше ее отключить (в РНР 5 по умолчанию она отключена), поскольку при включенной display_errors посетитель может получить доступ к закрытой информации. Вместо этой директивы можно использовать журнализацию
display_startup_errors = Off
Директива отключает (Off) или включает (On) отображение ошибок, возникающих при старте РНР
log_errors = Off
Директива отключает (Off) или разрешает (On) сохранение сообщений об ошибках в файле журнала
log_errors_max_len = 1024
Директива задает максимальную длину файла журнала
track errors = Off
Директива отключает (Off) или включает (On) сохранение сообщения о последней ошибке в переменной $php_errormsg
html errors = Off
Директива отключает (Off) или включает (On) вывод возможных сообщений об ошибках в HTML
error_log = filename
Данная директива позволяет вести журнал в файле filename
variables order = "EGPCS"
Эта директива определяет порядок регистрации переменных GET, POST, Cookie, Environment и серверных переменных (соответственно G, Р, С, Е, S). Регистрация осуществляется путем чтения этой строки слева направо. По умолчанию в РНР 5 директиве присвоено значение GPCS
Если установить директиве variables - order значение GP, то регистрация переменных будет проводиться только для переменных, передаваемых методами POST и GET. При этом все переменные, передаваемые через cookie, а также серверные переменные и переменные окружения будут игнорироваться
register_globals = Off
Данная директива отключает (Off) или включает (On) возможность регистрации EGPCS-переменных как глобальных переменных. Использование глобальных переменных может создать "дыры" в защите сценария, поэтому по умолчанию эта директива отключена
Директива register_globals является одним из самых дискуссионных моментов в языке РНР. С одной стороны, ее использование действительно может породить реальные проблемы с защитой РНР-сценариев при ненадлежащем учете возможных ошибочных ситуаций, и многие разработчики справедливо отмечают, что написание скриптов без использования глобальных переменных на 90% уменьшает уязвимость скриптов к различного рода атакам. С другой стороны, на заре возникновения РНР. не одна тысяча пользователей доверилась разработчикам языка (до версии РНР 4.3 эта директива была по умолчанию включена), в силу чего в настоящее время имеются миллионы функционирующих скриптов, написанных с использованием глобальных переменных. (Стоит отметить, что в обучающих целях иногда совершенно нелишне писать скрипты с использованием глобальных переменных, поскольку их замена на суперглобальные массивы сильно ухудшает наглядность кода)
В настоящий момент у всех хост-провайдеров эта директива включена и, по-видимому, будет оставаться включенной еще долгое время, поскольку в противном случае может нарушиться преемственность кода
register_long_arrays = Off
Директива, разрешающая (On) или запрещающая (Off) использование для передачи переменных из форм длинных массивов вида $HTTP_GET_VARS, $HTTP_POST_VARS и т. д. Если данная директива отключена, следует пользоваться новыми суперглобальными массивами вида $_GET, $_POST и т. д.
Выставленное по умолчанию значение (Off) для этой директивы, является весьма спорным, поскольку реальных опасений с точки зрения защиты при включенной директиве register_long_arrays возникать не должно. Многие же разработчики предпочитают в силу привычки использовать суперглобальные массивы вида $HTTP_GET_VARS вместо $_GET. Если же указанная директива выключена, естественно, такой код не работает
post_max_size = 8М
Директива определяет максимальный размер данных, преданных методом POST
magic_quotes_gpc = Off
Данная директива позволяет отключить (Off) или включить (On) автоматическую обработку «магических» кавычек и апострофов, в данных GET, POST, Cookie
magic_quotes_runtime = Off
Директива позволяет отключить (Off) или включить (On), возможность выполнения заключенных в «магические» кавычки команд ("something")
auto_prepend_file = auto_append_file =
Содержимое файлов, указанных в этих директивах, РНР должен обрабатывать соответственно до и после выполнения сценария
default_mimetype = "text/html"
Эта директива указывает, какую информацию РНР сообщает браузеру об используемой кодировке в заголовке content-type. По умолчанию используется text/html без указания кодировки
file_uploads = On
Директива, разрешающая (On) или запрещающая (Off) загрузку файлов на сервер
upload_tmp_dir =
Директива устанавливает временную директорию для загружаемых файлов
upload_max_filesize = 2М
Директива, задающая максимальный размер загруженных файлов
allow_url_fopen = On
Директива, разрешающая (On) или запрещающая (Off) использование URL (http://, ftp://) как файлов
Указанная директива обязательно должна быть включена при работе с сокетами
user_agent="PHP"
Директива, задающая значение переменной USER - AGENT, предоставляемой сервером при подключении с использованием сокета
default socket timeout = 60
Директива, задающая максимальное время ожидания ответа в сокет, в секундах
Для автоматической загрузки динамических расширений extension необходимо задать следующим образом: extension=modulename.extension
директиву, к примеру, для Windows можно написать так:
Extension=msql.dll
А для UNIX так:
extension=msql.so
Здесь задается только имя, без указания пути. Если необходимо указать путь, следует использовать вышеописанную директиву extension_dir
define_syslog_variables = Off
Директива, определяющая, следует (On) или нет (Off) использовать различные переменные демона syslog, такие как $LOG_PID, $LOG_CRON и т. д. Для ускорения работы данную директиву рекомендуется отключать, а при необходимости использовать функцию define_syslog_variables
function SMTP = localhost
Эта директива предназначена только для использования в среде Windows и задает используемый SMTP-сервер
sendmail from = admin@localhost
Эта директива предназначена только для использования в среде Windows и задает поле From по умолчанию
sendmail_path = \usr\sbin\sendmail -t -i
mysq1.a11ow_persistent = On
Директива разрешает (On) или запрещает (Off) соединения
mysq1.defau1t_port =
Директива, определяющая порт, заданный по умолчанию для функции rnysq1_connect. При незаданном значении функция mysql_connect использует переменную $MYSQL_TCP_PORT или запись mysql-tcp в каталоге jetcjservices, а затем заданную во время компиляции константу MYSQL - PORT (именно в таком порядке)
mysql.default_socket =
Директива, определяющая имя сокета для локальных соединений при незаданном значении используется значение по умолчанию
mysql.default_host =
Директива, задающая имя хоста по умолчанию для mysql_connect ()
mysql.default_user =
Директива, задающая имя пользователя базы данных по умолчанию. Это значение используется при установлении соединения с сервером базы данных, если имя пользователя не передано в качестве аргумента функции mysql_connect ()
mysql.default-password =
Директива, задающая пароль пользователя базы данных по умолчанию. Это значение используется при установлении соединения с сервером базы данных, если имя пользователя не передано в качестве аргумента функции mysql_connect ()
Хранить пароль в файле настроек РНР вряд ли стоит, поскольку любой пользователь, имеющий права на запуск РНР, может узнать пароль путем выполнения сценария echo cfg_get_var ("mysql.defaUlt_password") в безопасном режиме три последние директивы не работают.
bcmath.scale = 0
Директива, определяющая число десятичных цифр для всех bcmath-функций (математические функции произвольной точности)
session.save handler = Files
Директива, определяющая, каким образом хранить данные сессий (по умолчанию - в файлах)
session.save_path = /tmp
Если в предыдущей директиве указан режим хранения данных в файлах, то в этой директиве указывается каталог, в который помещаются файлы сессий
session.use cookies = 1
Директива, определяющая, можно ли использовать Cookies (по умолчанию использование Cookies разрешено)
session.name = PHPSESSID
Директива, задающая имя сессии по умолчанию
session.auto start = 0
Директива, разрешающая или запрещающая инициализацию сессии при старте (по умолчанию отключена)
session.cookie lifetime = 0
Определяет время жизни Cookie по умолчанию. Если директива принимает значение 0, то срок жизни Cookie длится до закрытия браузера
session.cookie_path = /
Директива, задающая. Путь, по которому сохраняются идентификаторы Cookie
session.cookie domain =
Определяет домен для Cookie (параметр по умолчанию для функции setcookie)
session.serialize_handler = php
Функция, используемая для сериализации данных. Значение php задает стандартную функцию
session.gc_probability = 1
Директива, определяющая вероятность того, что при очередном запуске сценария, работающего с сессиями, будет вызвана функция "сборки мусора" для очистки сессий, уже не применяемых пользователем
session.gc_maxlifetime = 1440
Директива задает время в секундах, после которого сохраненные данные будут автоматически удалены сборщиком мусора
session.referer check =
Директива, определяющая, нужно ли проверять HTTP-Referer на предмет того, не является ли идентификатор сессии фальшивым
session.cache lirniter = nocache
Директива, устанавливающая одно из значений кэширования НТТР. Может принимать следующие значения: nocache, private, public
session.cache_expire = 180
Директива, задающая количество минут, по истечении которого документ будет считаться устаревшим. По истечении данного времени документ не может использоваться при кэшировании, и требуется его повторная загрузка из источника
session.use trans sid = 1
Директива, определяющая, нужно ли использовать поддержку так называемых переходящих SID (идентификаторов сессии). Иначе говоря, необходимо ли поддерживать сессии, если пользователь отключил Cookies в браузере
Указанная директива работает только в том случае, если РНР был скомпилирован с включенной опцией --enable-trans-sid
session.hash function = 0
Директива, определяющая выбор хеш-функций для сессий. Значение 0 соответствует функции MD5, значение 1 - функции SHA-1
assert.active = On
Директива, определяющая, работает ли функция проверки assert (), выясняющая, не являются ли некоторые утверждения ложными
assert.warning = On
Директива, определяющая, нужно ли генерировать предупреждения для каждой неудавшейся проверки выражений функцией assert ()
assert.bail = Off
Директива, определяющая, следует ли завершать программу (On) или нет (Off) в случае неудачного выполнения функции assert ()
assert.callback = 0
Директива, определяющая пользовательскую функцию, которая будет вызвана при неудавшейся проверке функцией assert (). По умолчанию - значение равно нулю, т. е. пользовательские функции не применяются
pfpro.defaulthost = "test.signio.com"
Директива, задающая URL-aдpec прокси-сервера
pfpro.defaultport = 44З
Директива задает порт по умолчанию для прокси-сервера
pfpro.defaulttimeout = 30
Директива задает тайм-аут для прокси-сервера
pfpro.proxyaddress =
IP-aдpec прокси-сервера по умолчанию
pfpro.proxyport =
Порт прокси-сервера по умолчанию
pfpro.proxylogon = Логин для прокси-сервера
pfpro.proxypassword = Пароль для прокси-сервера
use_system_read = Оn
Директива, разрешающая использование функции read при работе с сокетами


