php ini что это

Все о файле php.ini

Где находится php.ini?

Местонахождение файла php.ini зависит от операционной системы, на которой работает сервер хостинг-провайдера. Чтобы узнать где он находится выполняем 4 простых шага:

php ini что это. Смотреть фото php ini что это. Смотреть картинку php ini что это. Картинка про php ini что это. Фото php ini что это

Как настроить php.ini?

Файл php.ini имеет такие правила синтаксиса «директива = значение». Если вы хотите добавлять комментарии (например, в которых указываете на что влияет данная настройка), то делайте после точки с запятой (все, что идет после этого знака не учитывается как команда). Вот пример:

max_execution_time = 40 ; Максимальное кол-во секунд исполнения скрипта

Далее рассматриваем основные настройки, которые можно сделать в файле php.ini:

Общие настройки

PHPengine = On ; Работа PHP-скриптов включена.

short_open_tag = On ; Разрешает упрощенно обрамлять PHP-код тагами

Precision = 12 ; Указывает сколько цифр будет после запятой, у чисел с плавающей точкой.

output_buffering = 4096 ; Автоматически будет включена буферизация вывода, с размером буфера указанным после «равно».

safe_mode = On ; Безопасный режим.

safe_mode_allowed_env_vars = PHP_ ; Разрешает пользователю работать только с переменными окружения, которые начинаются с PHP_. Если эта директива будет пустой (не будет иметь значения), то пользователи смогут изменять любые переменные окружения. Это может очень плохо сказаться на защите сценариев.

safe_mode_protected_env_vars = LD_LIBRARY_PATH ; Запрещает изменять переменные, которые перечисляются через запятую.

disable_functions = ; После знака «равно» нужно через запятую записать функции, которые вы хотите отключить (обычно это делается для безопасности)

disable_classes = ; После знака «равно» нужно через запятую записать классы, вызов которых вы хотите запретить (обычно это делается для безопасности)

Ограничение ресурсов

max_execution_time = 40 ; Максимальное время на выполнение скрипта (в секундах)

max_input_time = 40 ; Максимальное время в секундах, которое дается скрипту может на обработку данных, которые загружаются.

memory_limit = 16M ; Максимум памяти, которые выделяется для работы одного скрипта

Обработка ошибок и журналы

error_reporting = E_ALL | E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE ; Указывает перечень ошибок, которые можно выводить.

display_errors = On; Разрешает выводить ошибки прямо в браузер (часто используют для удобства отладки).

display_startup_errors = On ; Ошибки появляющиеся при страрте PHP разрешено показывать.

log_errors = On ; Ошибки разрешено записывать в файл журнала.

log_errors_max_len = 1024 ; Максимальное число символов, которое может составлять длинна журнала.

html_errors = On ; Разрешен вывод сообщений об ошибках в HTML.

error_log = filename ; Задается имя журнала ошибок.

Обработка данных

register_globals = On ; Включает возможность для обращения к переменным, которые поступают через GET/POST/Cookie/сессии, как к обычным переменным (например «$имяпеременной»).

post_max_size = 8M ; Устанавливает максимальный объём данных, который может быть принят.

magic_quotes_gpc = On ; Включает автоматическую обработку кавычек, которые поступают через POST/GET/Cookie.

auto_prepend_file = ; Содержимое файлов, указанных в этих директивах, PHP должен обрабатывать соответственно ДО выполнения сценария
auto_append_file = ; Содержимое файлов, указанных в этих директивах, PHP должен обрабатывать соответственно ПОСЛЕ выполнения сценария.

default_mimetype = «text/html» ; Задает кодировку для Content-type. По умолчанию будет использовано text/html без указания кодировки

doc_root = ; Задается корневая папка для PHP-сценариев.

extension_dir = «./» ; Задается папка, в которой будут хранится динамически загружаемые расширения.

Загрузка файлов

file_uploads = On ; Загрузка файлов на сервер разрешена.

upload_tmp_dir = ; Временная директория для файлов, которые загружаются.

upload_max_filesize = 2M ; Устанавливает максимальный размер файла, который можно загрузить.

Работа с сокетами

user_agent=»PHP» ; Задается переменная USER_AGENT, когда происходит подключение через сокет.

default_socket_timeout = 30 ; Максимальное время на прослушивание сокета (секунды).

Сессии

session.save_handler = files ; Уазывает, что информацию о сессиях нужно хранить в файлах

session.save_path = /tmp ; После знака «равно» нужно указать путь к папке в которой будет храниться информация о сессиях (важно чтобы она папка уже существовала)

session.use_cookies = 1 ; Разрешает использование cookie в сессиях

session.auto_start = 0 ; Запрещает инициализировать сессии при начале соединения

session.use_trans_sid = 1 ; Если пользователь отключил cookie, то во всех ссылках будет добавлен ID сессии

Динамические расширения

Работа с модулями MySQL

mysql.allow_persistent = On ; Разрешает устойчивые MySQL-соединения.

mysql.default_port = ; Порт для функции mysql_connect.

mysql.default_socket = ; Имя сокета для локальных соединений MySQL.

mysql.default_host = ; Имя хоста для функции mysql_connect.

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

Если вы создали собственный файл php.ini и поместили его в папке сайта

Источник

Файл конфигурации PHP (php.ini)

Описание встроенных директив файла php.ini

Этот список включает встроенные директивы php.ini которые вы можете использовать для настроки PHP. Директивы, которые обрабатываются модулями, перечислены и подробно описаны на страницах документаций соответствующих модулей.

ИмяПо умолчанию
async_send«0»

Опции языка и прочих настроек

ИмяПо умолчаниюПримечания
short_open_tag«1»
asp_tags«0»
precision«14»
y2k_compliance«1»
allow_call_time_pass_reference«1»Доступна с версии PHP 4.0.0.
expose_php«1»Только php.ini
zend.ze1_compatibility_mode«0»Доступна с версии PHP 5.0.0.

Краткое разъяснение конфигурационных директив.

Замечание: Поддержка тегов в стиле ASP выла добавлена в версии PHP 3.0.4.

Количество значащих цифр, отображаемых для десятичных дробей.

Включение совместимости с 2000 годом (создаст проблемы с несовместимыми браузерами).

Включена ли возможность жёсткой передачи аргументов по ссылке во время вызова функции. Этот метод является устаревшим и скорее всего не будет поддерживаться будущими версиями PHP/Zend. Рекоммендуемым методом указания, какие аргументы должны быть переданы по ссылке, является указание этого при объявлении функции. Вам рекоммендуется попытаться отключить эту опцию, чтобы убедиться, что ваши скрипты будут правильно работают без неё и что они будут работать с будущими версиями языка (вы будете получать предупреждение каждый раз, когда вы будете пользоваться этим методом, и аргументы будут передаваться по значению, а не по ссылке).

Передача аргументов по ссылке во время вызова функции была объявлена устаревшей из соображений чистоты кода. Функция может менять свои аргументы недокументированным способом, если бы не требовалось объявление передачи аргумента по ссылке. Чтобы избежать побочных эффектов, лучше явно указывать, какие аргументы передаются по ссылке только при объявлении функции.

Определяет, разрешено ли PHP выдавать факт своего присутствия на сервере (например, добавляя свою подпись в заголовок веб-сервера). Ни в коей мере это не является угрозой безопасности, но это даёт возможность определить, используете ли вы PHP на своём сервере.

Включает режим совместимости с Zend Engine 1 (PHP 4). Это влияет на клонирование, приведение типов и сравнение объектов

ИмяПо умолчанию
memory_limit«8M»

Краткое разъяснение конфигурационных директив.

Конфигурационные опции обработки данных

ИмяПо умолчаниюПримечания
track_vars«On»
arg_separator.output«&»
arg_separator.input«&»
variables_order«EGPCS»
register_globals«0»
register_argc_argv«1»
register_long_arrays«1»Доступна с версии PHP 5.0.0.
post_max_size«8M»Доступна с версии PHP 4.0.3.
gpc_order«GPC»
auto_prepend_fileNULL
auto_append_fileNULL
default_mimetype«text/html»
default_charset«»
always_populate_raw_post_data«0»Доступна с версии PHP 4.1.0.
allow_webdav_methods«0»

Краткое разъяснение конфигурационных директив.

Обратите внимание, что начиная с версии PHP 4.0.3, track_vars всегда включена.

Этот разделитель используется в генерируемых PHP URL’ах в качестве разделителя аргументов.

Список разделителей, используемых PHP для получения переменных из URL’ов.

Замечание: Каждый символ в этой директиве считается разделителем!

Устанавливает порядок обработки переменных EGPCS (Environment, GET, POST, Cookie, Server). Значением по умолчанию для этой директивы является «EGPCS». Установка её в «GP», к примеру, заставит PHP полностью игнорировать переменные окружения, cookie и сервера, а так же перезаписать любую GET-переменную POST-переменной с таким же именем.

Когда включено, переменные SERVER и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведёт к росту производительности.

Директивы PHP register_globals, register_long_arrays и register_argc_argv должны быть выключены для того, чтобы эта директива работала.

Регистрировать или нет переменные EGPCS (Environment, GET, POST, Cookie, Server) в качестве глобальных переменных.

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

Замечание: На поведение register_globals влияет директива variables_order.

Сообщает PHP, следует ли объявляеть переменные argv и argc (которые будут содержать GET-информацию).

См. также Использование PHP в командной строке. Эта директива стала доступна начиная с версии PHP 4.0.0 и до этого была всегда включена.

Эта директива стала доступна начиная с версии PHP 5.0.0.

Устанавливает максимальный допустимый размер POST-данных. Это свойство также влияет на закачиваемые файлы. Чтобы закачивать большие файлы, это значение должно быть выше upload_max_filesize.

Устанавливает порядок обработки переменных GET/POST/COOKIE. Значением по умолчанию для этой директивы является «GPC». Установка её в «GP», к примеру, приведёт к тому, что PHP будет полностью игнорировать cookies и перезапишет любую GET-переменную POST-переменной с таким же именем.

Замечание: Эта опция не доступна в PHP 4. Вместо неё используйте variables_order.

Специальное значение none отключает эту директиву.

Специальное значение none отключает эту директиву.

Начиная с версии 4.0b4, PHP всегда отправляет кодировку по умолчанию в заголовке Content-Type. Чтобы отключить отправку кодировки, просто установите её пустой строкой.

Разрешает обработку HTTP-запросов WebDAV при помощи PHP-скриптов (например PROPFIND, PROPPATCH, MOVE, COPY и т.д.). Эта директива не существует начиная с версии PHP 4.3.2. Если вы хотите получить POST-данные этих запросов, вы должны также включить always_populate_raw_post_data.

Конфигурационные Опции Путей и Директорий

ИмяПо умолчанию
include_path«.;/path/to/php/pear»
doc_rootNULL
user_dirNULL
extension_dir«/path/to/php»
cgi.fix_pathinfo«0»
cgi.force_redirect«1»
cgi.redirect_status_env«»
fastcgi.impersonate«0»
cgi.rfc2616_headers«0»

Краткое разъяснение конфигурационных директив.

Пример include_path в Unix

Пример include_path в Windows

«Корневая директория» PHP на этом сервере. Используется только в случае, если не пустая. Если PHP сконфигурирован с безопасный режим, файлы вне этой директории не обрабатываются. Если PHP не был скомпилирова с FORCE_REDIRECT, вам следует установить doc_root, если вы используете PHP в качестве CGI под любым веб-сервером (кроме IIS). Альтернативой является использование конфигурационной директивы cgi.force_redirect, речь о которой идёт ниже.

Which dynamically loadable extensions to load when PHP starts up.

Обеспечивает поддержку правильных PATH_INFO/PATH_TRANSLATED в CGI. Раньше PHP просто устанавливал PATH_TRANSLATED в SCRIPT_FILENAME и не обращал внимания на PATH_INFO. Для получения дополнительной информации о PATH_INFO, обратитесь к спецификации CGI. Установка этого значения в 1 заставит PHP CGI исправлять свой путь в соответствии со спецификацией. Значение 0 соответствует предыдущему поведению. По умолчанию установлен 0. Вы должны исправить свои скрипты так, чтобы они использовали SCRIPT_FILENAME вместо PATH_TRANSLATED.

Замечание: Пользователям Windows: Вы можете безопасно выключить её под IIS. Более того, вы должны это сделать. Чтобы заставить OmniHTTPD или Xitami работать, вы должны отключить эту директиву.

Если cgi.force_redirect включена и вы работаете не под веб-сервером Apache или Netscape (iPlanet), вам может понадобится установить переменную окружения, которую будет искать PHP чтобы убедится, что он может продолжать выполнение.

Сообщает PHP, какой тип заголовков использовать при отправке кода ответа HTTP. Если установлено в 0, PHP отправляет заголовок «Status:», который поддерживается Apache и другими веб-серверами. Если установлено в 1, PHP отправляет заголовок, соответствующий RFC 2616. Оставьте в значении 0, если вы не уверены в том, что это значит.

Конфигурационные Опции Закачивания Файлов

ИмяПо умолчаниюПримечания
file_uploads«1»Доступна с версии PHP 4.0.3.
upload_tmp_dirNULL
upload_max_filesize«2M»

Краткое разъяснение конфигурационных директив.

Временная директория, используемая для хранения файлов во время закачивания. Должна быть доступна для записи пользователю, от имени которого запущен PHP. Если не указана, используется директория по умолчанию для вашей системы.

Максимальный размер закачиваемого файла.

Конфигурационные Опции Общего SQL

ИмяПо умолчанию
sql.safe_mode«0»

Краткое разъяснение конфигурационных директив.

Источник

Настройка файла php.ini

Интерпретатор php может поставляться в виде модуля для Apache, выполнять скрипты из командной строки или в виде отдельного сервиса php-fpm. Эти сервисы отличаются своими возможностями, и предназначением, но для любого вида интерпретатора нужно задать базовые настройки, например, рабочая папка, включенные расширения, отображение ошибок и так далее. Все эти настройки задаются через файл php.ini. В этой инструкции мы рассмотрим как выполняется настройка файла php.ini в операционных системах Linux, хотя все информация подойдет и для Windows.

Если у вас еще не установлен интерпретатор языка программирования php, то вы можете ознакомиться со статьей установка lamp в Ubuntu 16.04.

Расположение и синтаксис php.ini

Для каждой версии интерпретатора конфигурационный файл php.ini находится в отдельной папке. Но все конфигурационные файлы находятся в папке /etc/php, например, /etc/php5:

php ini что это. Смотреть фото php ini что это. Смотреть картинку php ini что это. Картинка про php ini что это. Фото php ini что это

Если вы собираетесь использовать несколько из этих интерпретаторов, то вам придется указывать настройки для каждого из них отдельно. Вы можете убедиться, что в каждой из папок лежит файл php.ini.

Что касается синтаксиса файла, то он разделен на секции, сначала идет секция настройки php, которая разделена на подсекции в зависимости от типа настроек, дальше идут секции настройки разных модулей. Синтаксис самих настроек очень прост, он соответствует привычному синтаксису ini файлов. Строка начинается с имени настройки, затем следует знак равно, а за ним значение:

имя_настройки = значение_параметра

Символами [] обозначается имя секции, например, [PHP], а символ ; означает комментарий, он и все символы после него не читаются интерпретатором. А теперь рассмотрим как выполняется настройка php.ini и переберем самые важные параметры.

Настройка файла php.ini

Для удобства ориентирования мы разобьем все параметры по категориях в зависимости от их назначения. Вам будет достаточно найти нужный параметр и изменить его значение. А теперь откройте файл настроек php, например, для модуля apache и перейдем к настройке. Чтобы избежать ошибок не добавляйте новые строки, а ищите уже существующие и изменяйте значения на нужные:

sudo gedit /etc/php5/apache/php.ini

php ini что это. Смотреть фото php ini что это. Смотреть картинку php ini что это. Картинка про php ini что это. Фото php ini что это

Сначала идет немного информации о самом файле в виде комментариев, затем интересующие нас настройки.

Вывод ошибок в php

Настройка php 7 обычно начинается с конфигурации вывода ошибок. Все настройки вывода ошибок находятся в разделе Error handling and logging. По умолчанию вывод ошибок на экран во время выполнения скрипта отключен. Это сделано для того, чтобы пользователи не смогли увидеть ничего лишнего. Вместо этого, все ошибки записываются в лог файл. Если вы используете php на домашнем компьютере, то такие меры не нужны и вы можете сразу выводить все на экран:

php ini что это. Смотреть фото php ini что это. Смотреть картинку php ini что это. Картинка про php ini что это. Фото php ini что это

Замените off на on. В php используются различные типы ошибок, например, критические, предупреждения, ошибки синтаксиса, с помощью строки error_reporting вы можете включить вывод только определенных типов ошибок:

Если нужно объединить несколько типов ошибок, то используйте символ &, а для отключения отображения поставьте перед типом знак

. Приведенный выше пример отображает все ошибки (E_ALL), кроме сообщений об устаревших функциях (E_DEPRECATED). Вы можете отключить все типы использовав 0:

Включите запись ошибок php в лог файл, если не выводите их на экран:

Чтобы не засорять лог однотипными сообщениями можно игнорировать повторяющиеся ошибки в пределах одного исполнения:

Ограничения ресурсов

php ini что это. Смотреть фото php ini что это. Смотреть картинку php ini что это. Картинка про php ini что это. Фото php ini что это

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

Если указать 0, то скрипт может выполняться бесконечно. Вы также можете ограничить время, на протяжении которого скрипт будет загружать данные, 60 секунд:

Максимальное количество переменных в GET и POST:

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

Вы можете ограничить область действия php в системе с помощью опции openbase_dir, она указывает папку, выше которой скрипт не может получить доступ к файловой системе:

С помощью директив disable_functions и disable_classes вы можете отключить использование в скриптах определенных функций или классов, например, это может быть полезно для веб-хостингов. В этом примере мы отключаем использование функции ini_set, которая позволяет менять настройки php из скрипта:

Директории по умолчанию

php ini что это. Смотреть фото php ini что это. Смотреть картинку php ini что это. Картинка про php ini что это. Фото php ini что это

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

Папка с модулями php:

Папка для записи временных файлов:

Загрузка файлов

php ini что это. Смотреть фото php ini что это. Смотреть картинку php ini что это. Картинка про php ini что это. Фото php ini что это

Для того чтобы пользователи могли загружать свои файлы на сервер, например, фото, нужно включить эту функцию в php:

Максимальный размер загружаемого файла:

Максимальное количество файлов, которые может загрузить один скрипт:

Настройка php.ini практически завершена, нам остались лишь расширения.

Настройка расширений

Расширения позволяют очень сильно увеличить функциональность php. Например, благодаря расширениям вы можете использовать в своих скриптах базы данных mysql, postgresql, mysqli, sqlite, графическую библиотеку gd и многое другое. Все это включается в этом разделе.

Для включения расширения достаточно убрать комментарий перед строкой с его командой, например:

extension=php_mysql.so
extension=php_mbstring.so
extension=php_pgsql.so

php ini что это. Смотреть фото php ini что это. Смотреть картинку php ini что это. Картинка про php ini что это. Фото php ini что это

Обратите внимание, что для windows расширение будет иметь формат dll, но для linux нужно использовать so. В следующих секциях идет настройка каждого из расширений, но мы их рассматривать не будем потому что они обычно не требуют настройки.

Выводы

В этой статье мы рассмотрели как выполняется настройка php на сервере или обычном компьютере для разработки веб-сайтов. Файл настроек php имеет довольно простую структуру и с ним довольно не сложно справиться. После завершения всех настроек и сохранения изменений не забудьте перезагрузить веб-сервер или сервис php-fpm.

Вообще говоря, php-fpm это отдельная тема, потому что там есть много дополнительных настроек, и, возможно, мы рассмотрим его в одной из следующих статей. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Описание встроенных директив php.ini

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

Опции Httpd

Опции Httpd

ИмяПо умолчаниюМеняемоСписок изменений
async_send«0»PHP_INI_ALLДоступна, начиная с PHP 4.2.0. Удалена в PHP 4.3.0.

Языковые опции

Опции языка и прочих настроек

ИмяПо умолчаниюМеняемоСписок изменений
short_open_tag«1»PHP_INI_PERDIRPHP_INI_ALL в PHP php.iniДоступна с версии PHP 4.3.2.
exit_on_timeout«»PHP_INI_ALLДоступна с версии PHP 5.3.0.
expose_php«1»Только php.ini
zend.multibyte«0»PHP_INI_ALLДоступна с версии PHP 5.4.0
zend.script_encodingNULLPHP_INI_ALLДоступна с версии PHP 5.4.0
zend.detect-unicodeNULLPHP_INI_ALLДоступна с версии PHP 5.4.0
zend.signal_check«0»PHP_INI_SYSTEMДоступна с версии PHP 5.4.0
zend.assertions«1»PHP_INI_ALLДоступна с версии PHP 7.0.0.
zend.ze1_compatibility_mode«0»PHP_INI_ALLДоступна с версии PHP 5.0.0. Удалена в PHP 5.3.0
detect_unicode«1»PHP_INI_ALLДоступна с версии PHP 5.1.0. Переименована на zend.detect-unicode с версии PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

Changelog for asp_tags

ВерсияОписание
7.0.0Удалена из PHP.

precision integer Количество значащих цифр, отображаемых для чисел с плавающей точкой. serialize_precision integer Количество сохраняемых значащих цифр при сериализации чисел с плавающей точкой. y2k_compliance boolean Включение совместимости с 2000 годом (создаст проблемы с несовместимыми браузерами) allow_call_time_pass_reference boolean

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

Передача аргументов по ссылке во время вызова функции была объявлена устаревшей из соображений чистоты кода. Функция может менять свои аргументы недокументированным способом, если бы аргумент не объявлялся передаваемым по ссылке. Чтобы избежать побочных эффектов, лучше явно указывать, какие аргументы передаются по ссылке только при объявлении функции.

Эта директива позволяет отключить некоторые функции по причинам безопасности. Она принимает список имен функций, разделенный запятыми. disable_functions не подвержена влиянию безопасного режима.

Только внутренние функции могут быть отключены с помощью этой директивы. Пользовательские функции ей не подвержены.

Включает режим совместимости с Zend Engine 1 (PHP 4). Это влияет на клонирование, приведение типов (объекты без свойств приводятся к FALSE или 0) и сравнение объектов. В этом режиме объекты по умолчанию передаются по значению вместо ссылки.

Эта возможность была помечена УСТАРЕВШЕЙ и БЫЛА УДАЛЕНА в версии PHP 5.3.0.

Разрешает парсинг исходных файлов в многобайтных кодировках. Включение zend.multibyte требуется для использования кодировок символов подобных SJIS, BIG5 и т.д., содержащих специальные символы в многобайтных строковых данных. Совместимые с ISO-8859-1 кодировки, например UTF-8, EUC и т.д., не требуют эту опцию.

Данное значение будет использовано, только при отсутствии директивы declare(encoding=. ) в начале скрипта. При использовании кодировок несовместимых с ISO-8859-1, нужно использовать опции и zend.multibyte и zend.script_encoding.

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

Эта директива только для Apache1 mod_php, которая заставляет потомка Apache завершиться, если произошел тайм-аут исполнения скрипта PHP. Такой тайм-аут приводит к внутреннему вызову longjmp() в Apache1, который оставляет некоторые расширения в несогласованном состоянии. По завершении процесса все неснятые блокировки или память будут очищены.

Ограничения ресурсов

Ограничения ресурсов

ИмяПо умолчаниюМеняемоСписок изменений
memory_limit«128M»PHP_INI_ALL«8M» до PHP 5.2.0, «16M» в PHP 5.2.0

Краткое разъяснение конфигурационных директив.

Эта директива задает максимальный объем памяти в байтах, который разрешается использовать скрипту. Это помогает предотвратить ситуацию, при которой плохо написанный скрипт съедает всю доступную память сервера. Для того, чтобы убрать ограничения, установите значение этой директивы в -1.

Настройка производительности

Настройка производительности

ИмяПо умолчаниюМеняемоСписок изменений
realpath_cache_size«16K»PHP_INI_SYSTEMДоступна с версии PHP 5.1.0.
realpath_cache_ttl«120»PHP_INI_SYSTEMДоступна с версии PHP 5.1.0.

Краткое разъяснение конфигурационных директив.

Определяет размера кэша realpath, используемого в PHP. Это значение должно быть увеличено на системах, в которых PHP открывает большое количество файлов соответственно количеству выполняемых файловых операций.

Размер равный общему числу байт, хранящимся в строках путей, плюс размер данных связанных с кешируемым элементом. Это значит, что для хранения длинных путей в кэше, размер этого кэша должен быть больше. Это значение не определяет напрямую количество разных путей, которые могут быть закэшированы.

Размер, необходимый для кэширования, зависит от системы.

Время (в секундах) в течение которого будет использован кэш realpath для указанного файла или директории. Для систем с редко меняющимися файлами это значение можно увеличить.

Обработка данных

Конфигурационные опции обработки данных

ИмяПо умолчаниюМеняемоСписок изменений
arg_separator.output«&»PHP_INI_ALLДоступна с версии PHP 4.0.5.
arg_separator.input«&»PHP_INI_PERDIRДоступна с версии PHP 4.0.5.
variables_order«EGPCS»PHP_INI_PERDIRPHP_INI_ALL в PHP = 5.6.0; пустая для PHP arg_separator.output string

Этот разделитель используется в генерируемых PHP URL в качестве разделителя аргументов.

Список разделителей, используемых PHP для получения переменных из URL.

Каждый символ в этой директиве считается разделителем!

Эта директива регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST. Добавление производится слева направо, новые значения перезаписывают старые.

Когда включено, переменные SERVER и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведет к росту производительности.

Директивы PHP register_globals, register_long_arrays и register_argc_argv должны быть выключены для правильной работы этой директивы. Начиная с версии PHP 5.1.3 стало необязательно выключать register_argc_argv.

Использование переменных SERVER и ENV проверяется на стадии компиляции, поэтому их использование с помощью, например, переменных переменных не запустит их инициализацию.

Регистрировать или нет переменные EGPCS (Environment, GET, POST, Cookie, Server) в качестве глобальных переменных.

Начиная с версии » PHP 4.2.0, значением по умолчанию для этой директивы является off.

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

На поведение register_globals влияет директива variables_order.

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

PHP разрешает сокращения значений байт, включая K (кило), M (мега) и G (гига). PHP автоматически преобразует все эти сокращения. Будьте осторожны с превышением диапазона 32-битных целых значений (если вы используете 32-битную версию), так как это приведет к ошибке вашего скрипта.

Специальное значение none отключает эту директиву.

Специальное значение none отключает эту директиву.

По умолчанию PHP выводит название кодировки в заголовке Content-Type. Если передавать кодировку не требуется, просто оставьте эту опцию пустой.

Не рекомендуется устанавливать default_charset в пустое значение.

Доступна с PHP 5.6.0. Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто.

Доступна с PHP 5.6.0. Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто.

Доступна с PHP 5.6.0. Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто. В это случае используется default_charset.

This feature was DEPRECATED in PHP 5.6.0, and REMOVED as of PHP 7.0.0.

Пути и Директории

Конфигурационные Опции Путей и Директорий

ИмяПо умолчаниюМеняемоСписок изменений
include_path«.;/path/to/php/pear»PHP_INI_ALL
open_basedirNULLPHP_INI_ALLPHP_INI_SYSTEM в PHP php.ini
zend_extensionNULLТолько php.ini
zend_extension_debugNULLТолько php.iniДоступна до PHP 5.3.0.
zend_extension_debug_tsNULLТолько php.iniДоступна до PHP 5.3.0.
zend_extension_tsNULLТолько php.iniДоступна до PHP 5.3.0.
cgi.check_shebang_line«1»PHP_INI_SYSTEMДоступна с версии PHP 5.2.0.
cgi.fix_pathinfo«1»PHP_INI_SYSTEMДоступна с версии PHP 4.3.0. PHP_INI_ALL до версии PHP 5.2.1.
cgi.force_redirect«1»PHP_INI_SYSTEMДоступна с версии PHP 4.2.0. PHP_INI_ALL до версии PHP 5.2.1.
cgi.redirect_status_envNULLPHP_INI_SYSTEMДоступна с версии PHP 4.2.0. PHP_INI_ALL до версии PHP 5.2.1.
cgi.rfc2616_headers«0»PHP_INI_ALLДоступна с версии PHP 4.3.0.
fastcgi.impersonate«0»PHP_INI_SYSTEMДоступна с версии PHP 4.3.0. PHP_INI_ALL до версии PHP 5.2.1.
fastcgi.logging«1»PHP_INI_SYSTEMДоступна с версии PHP 4.3.0. PHP_INI_ALL до версии PHP 5.2.1.

Краткое разъяснение конфигурационных директив.

Пример #1 include_path в Unix

Пример #2 include_path в Windows

Использование . в include_path позволяет задавать относительные пути для подключения файлов, так как точка означает текущую директорию. Однако, более эффективно использовать include ‘./file’, чем заставлять PHP каждый раз проверять текущую директорию при подключении каждого файла.

Переменные окружения могут отличаться между различными серверными API, так как сами эти окружения отличаются друг от друга.

Ограничивает указанным деревом каталогов файлы, которые могут быть доступны для PHP, включая сам файл. Эта директива НЕ подвержена влиянию безопасного режима.

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

Ограничение, определяемое open_basedir является именем директории начиная с версии PHP 5.2.16 и 5.3.4. Предыдущие версии использовали это значение в качестве префикса. Это означает, что «open_basedir = /dir/incl» также разрешит доступ к «/dir/include» и «/dir/incls«, если они существуют. Если вы захотите ограничить доступ только указанной директорией, поставьте в конце слеш. Например: open_basedir = /dir/incl/

По умолчанию все файлы могут быть открыты.

«Корневая директория» PHP на этом сервере. Используется только в случае, если не пустая. Если PHP сконфигурирован с безопасный режим, файлы вне этой директории не обрабатываются. Если PHP не был скомпилирован с FORCE_REDIRECT, вам следует установить doc_root, если вы используете PHP в качестве CGI под любым веб-сервером (кроме IIS). Альтернативой является использование конфигурационной директивы cgi.force_redirect, речь о которой идет ниже.

Какие динамически загружаемые расширения должны быть загружены при старте PHP.

Имя динамически загружаемого расширения Zend (например, APD), которое должно быть загружено при старте PHP.

Вариант zend_extension для расширений, скомпилированных с отладочной информацией до PHP 5.3.0.

Вариант zend_extension для потокобезопасных расширений, скомпилированных с отладочной информацией до PHP 5.3.0.

Вариант zend_extension для потокобезопасных расширений.

Пользователям Windows: При использовании IIS эта опция должна быть отключена. Тоже самое необходимо для OmniHTTPD и Xitami.

Если cgi.force_redirect включена и вы работаете не под веб-сервером Apache или Netscape (iPlanet), вам может понадобиться установить переменную окружения, которую будет искать PHP чтобы убедиться, что он может продолжать выполнение.

Установка этой переменной может повлечь за собой проблемы с безопасностью, так что вы должны знать, что вы делаете.

Сообщает PHP, какой тип заголовков использовать при отправке кода ответа HTTP. Если установлено в 0, PHP отправляет » RFC 3875 заголовок «Status:», который поддерживается Apache и другими веб-серверами. Если установлено в 1, PHP отправляет заголовки, соответствующие » RFC 2616.

Если эта опция включена и вы используете PHP в окружении CGI (например, PHP-FPM), то вместо использования HTTP-заголовков ответа в стиле RFC 2616, нужно использовать их эквивалент из стандарта RFC 3875, например, вместо header(«HTTP/1.0 404 Not found»); нужно использовать header(«Status: 404 Not Found»);

Оставьте в значении 0, если вы не уверены в том, что это значит.

Включает логирование SAPI при использовании FastCGI. Логирование включено по умолчанию.

Закачивание Файлов

Конфигурационные Опции Закачивания Файлов

ИмяПо умолчаниюМеняемоСписок изменений
file_uploads«1»PHP_INI_SYSTEMPHP_INI_ALL в PHP file_uploads boolean

Временная директория, используемая для хранения файлов во время закачивания. Должна быть доступна для записи пользователю, от имени которого запущен PHP. Если не указана, используется директория по умолчанию для вашей системы.

Если к указанной директории нет прав на запись, PHP откатится обратно к системной временной директории, используемой по умолчанию. Если включена директива open_basedir, то для успешной загрузки файлов системная директория по умолчанию должна быть разрешена.

Максимальный размер закачиваемого файла.

Максимально разрешенное количество одновременно закачиваемых файлов. Начиная с PHP 5.3.4, пустые поля загрузки не рассматриваются этим ограничением.

Общий SQL

Конфигурационные Опции Общего SQL

ИмяПо умолчаниюМеняемоСписок изменений
sql.safe_mode«0»PHP_INI_SYSTEM

Краткое разъяснение конфигурационных директив.

Если включена, функции соединения с базой данных, использующие значения по умолчанию, будут использовать эти значения вместо любых передаваемых аргументов. Для значений по умолчанию смотрите документацию по функциям подключения соответствующей базы данных.

Особые настройки для ОС Windows

Особые опции конфигурации для ОС Windows

ИмяПо умолчаниюМеняемоСписок изменений
windows_show_crt_warning«0»PHP_INI_ALLДоступна начиная с PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

При включении данной директивы будут отображаться предупреждения Windows CRT. Данные предупреждения ранее показывались по умолчанию до версии PHP 5.4.0.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *