php ini что это
Все о файле php.ini
Где находится php.ini?
Местонахождение файла php.ini зависит от операционной системы, на которой работает сервер хостинг-провайдера. Чтобы узнать где он находится выполняем 4 простых шага:
Как настроить 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_file | NULL | |
auto_append_file | NULL | |
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_root | NULL |
user_dir | NULL |
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_dir | NULL | |
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], а символ ; означает комментарий, он и все символы после него не читаются интерпретатором. А теперь рассмотрим как выполняется настройка php.ini и переберем самые важные параметры.
Настройка файла php.ini
Для удобства ориентирования мы разобьем все параметры по категориях в зависимости от их назначения. Вам будет достаточно найти нужный параметр и изменить его значение. А теперь откройте файл настроек php, например, для модуля apache и перейдем к настройке. Чтобы избежать ошибок не добавляйте новые строки, а ищите уже существующие и изменяйте значения на нужные:
sudo gedit /etc/php5/apache/php.ini
Сначала идет немного информации о самом файле в виде комментариев, затем интересующие нас настройки.
Вывод ошибок в php
Настройка php 7 обычно начинается с конфигурации вывода ошибок. Все настройки вывода ошибок находятся в разделе Error handling and logging. По умолчанию вывод ошибок на экран во время выполнения скрипта отключен. Это сделано для того, чтобы пользователи не смогли увидеть ничего лишнего. Вместо этого, все ошибки записываются в лог файл. Если вы используете php на домашнем компьютере, то такие меры не нужны и вы можете сразу выводить все на экран:
Замените off на on. В php используются различные типы ошибок, например, критические, предупреждения, ошибки синтаксиса, с помощью строки error_reporting вы можете включить вывод только определенных типов ошибок:
Если нужно объединить несколько типов ошибок, то используйте символ &, а для отключения отображения поставьте перед типом знак
. Приведенный выше пример отображает все ошибки (E_ALL), кроме сообщений об устаревших функциях (E_DEPRECATED). Вы можете отключить все типы использовав 0:
Включите запись ошибок php в лог файл, если не выводите их на экран:
Чтобы не засорять лог однотипными сообщениями можно игнорировать повторяющиеся ошибки в пределах одного исполнения:
Ограничения ресурсов
Если бы скрипты php никак не ограничивались в ресурсах, то они запросто могли бы перегрузить сервер и не дать ему нормально работать. Поэтому, по умолчанию php устанавливает жесткие ограничения, но, возможно, вам нужно будет их немного ослабить.
Если указать 0, то скрипт может выполняться бесконечно. Вы также можете ограничить время, на протяжении которого скрипт будет загружать данные, 60 секунд:
Максимальное количество переменных в GET и POST:
Следующий параметр задает максимальное количество памяти, которую может использовать один скрипт во время своего выполнения, в мегабайтах:
Вы можете ограничить область действия php в системе с помощью опции openbase_dir, она указывает папку, выше которой скрипт не может получить доступ к файловой системе:
С помощью директив disable_functions и disable_classes вы можете отключить использование в скриптах определенных функций или классов, например, это может быть полезно для веб-хостингов. В этом примере мы отключаем использование функции ini_set, которая позволяет менять настройки php из скрипта:
Директории по умолчанию
Файл настройки php.ini позволяет указать пути в файловой системе по умолчанию для различных действий. Вы можете задать папки где система будет искать скрипты, если вы попытаетесь подключить их с помощью инструкции include:
Папка с модулями php:
Папка для записи временных файлов:
Загрузка файлов
Для того чтобы пользователи могли загружать свои файлы на сервер, например, фото, нужно включить эту функцию в php:
Максимальный размер загружаемого файла:
Максимальное количество файлов, которые может загрузить один скрипт:
Настройка php.ini практически завершена, нам остались лишь расширения.
Настройка расширений
Расширения позволяют очень сильно увеличить функциональность php. Например, благодаря расширениям вы можете использовать в своих скриптах базы данных mysql, postgresql, mysqli, sqlite, графическую библиотеку gd и многое другое. Все это включается в этом разделе.
Для включения расширения достаточно убрать комментарий перед строкой с его командой, например:
extension=php_mysql.so
extension=php_mbstring.so
extension=php_pgsql.so
Обратите внимание, что для windows расширение будет иметь формат dll, но для linux нужно использовать so. В следующих секциях идет настройка каждого из расширений, но мы их рассматривать не будем потому что они обычно не требуют настройки.
Выводы
В этой статье мы рассмотрели как выполняется настройка php на сервере или обычном компьютере для разработки веб-сайтов. Файл настроек php имеет довольно простую структуру и с ним довольно не сложно справиться. После завершения всех настроек и сохранения изменений не забудьте перезагрузить веб-сервер или сервис php-fpm.
Вообще говоря, php-fpm это отдельная тема, потому что там есть много дополнительных настроек, и, возможно, мы рассмотрим его в одной из следующих статей. Если у вас остались вопросы, спрашивайте в комментариях!
Описание встроенных директив php.ini
Представленные здесь значения по умолчанию используются в случае, если не был подключен php.ini ; значения для боевого php.ini и для разработки могут различаться.
Опции Httpd
Имя | По умолчанию | Меняемо | Список изменений |
---|---|---|---|
async_send | «0» | PHP_INI_ALL | Доступна, начиная с PHP 4.2.0. Удалена в PHP 4.3.0. |
Языковые опции
Имя | По умолчанию | Меняемо | Список изменений | |
---|---|---|---|---|
short_open_tag | «1» | PHP_INI_PERDIR | PHP_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_encoding | NULL | PHP_INI_ALL | Доступна с версии PHP 5.4.0 | |
zend.detect-unicode | NULL | PHP_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. |
Краткое разъяснение конфигурационных директив.
Версия | Описание |
---|---|
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_PERDIR | PHP_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. Пути и Директории
Краткое разъяснение конфигурационных директив. Пример #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. Логирование включено по умолчанию. Закачивание Файлов
|