- Как изменить настройки конфигурации
- Изменение конфигурации PHP через реестр Windows
- Другие интерфейсы в PHP
- Изменение настроек PHP
- Изменение параметров PHP через файл .htaccess
- Изменение параметров PHP через скрипты
- Изменение параметров PHP через php.ini
- Изменение параметров PHP — директив php.ini
- Ручное редактирование php.ini
- Туториал: как работать с языком программирования PHP
Как изменить настройки конфигурации
Когда PHP используется как модуль Apache вы также можете менять настройки конфигурации, используя директивы в файлах конфигурации Apache (например, httpd.conf ) и файлах .htaccess . Для этого вам необходимы «AllowOverride Options» или «AllowOverride All» привилегии.
Есть несколько директив Apache, которые позволяют вам изменить конфигурацию PHP посредством файлов конфигурации Apache. Директивы для PHP_INI_ALL , PHP_INI_PERDIR , и PHP_INI_SYSTEM , вы можете увидеть в приложении Список директив php.ini
Устанавливает значение обозначенной директивы. Может использоваться только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR Для очистки предыдущих установленных значений используйте значение none.
Замечание: Не используйте php_value для установки логических значений. Вместо этого необходимо использовать php_flag (см. ниже).
Используется для установки директивам логических значений. Может быть использовано только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR .
php_admin_value name value
Устанавливает значение обозначенной директивы. Не может быть использовано в файлах .htaccess . Директивы любого типа, установленные с помощью php_admin_value не могут быть переопределены через .htaccess или ini_set() . Чтобы очистить предыдущее значение используйте значение none.
php_admin_flag name on|off
Используется для установки директивам логических значений. Не может быть использовано в файлах .htaccess . Директивы любого типа, установленные с помощью php_admin_flag не могут быть переопределены через .htaccess или ini_set() .
Пример #1 Пример конфигурации Apache
php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on
PHP константы не доступны вне PHP. К примеру, в httpd.conf вы не можете использовать константы PHP такие как E_ALL или E_NOTICE чтобы установить директиву error_reporting, так как они не будут иметь значения и будут приравниваться к 0. Используйте вместо этого соответствующие значения типа bitmask (битовая маска). Эти константы могут быть использованы в php.ini
Изменение конфигурации PHP через реестр Windows
При использовании PHP в Windows значения конфигурации могут быть изменены на уровне директории посредством реестра Windows. Значения конфигурации хранятся в ключе реестра HKLM\SOFTWARE\PHP\Per Directory Values, в под-ключах, включающих полный путь. К примеру, значения конфигурации для директории c:\inetpub\wwwroot могут храниться в ключе HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. Настройки для директории будут действительны для любых скриптов запущенных из этой директории или её поддиректории. Значения ключа должны иметь название конфигурационной директивы PHP и строковое значение. PHP константы в значениях игнорируются. Однако, только значения конфигурации изменяемые в PHP_INI_USER могут быть установлены таким образом, значения же PHP_INI_PERDIR не могут.
Другие интерфейсы в PHP
Независимо от того, как вы запускаете PHP, вы можете изменять некоторые значения во время выполнения ваших скриптов помощью ini_set() . Для более детальной информации смотрите документацию на странице функции ini_set() .
Если вам интересен полный список конфигурационных настроек вашей системы с текущими значениями, то вы можете запустить phpinfo() функцию, и получить результирующую страницу. Вы также можете получить доступ к значениям индивидуально сконфигурированных директив в процессе выполнения, используя ini_get() или get_cfg_var() .
Изменение настроек PHP
Каждый владелец сайта рано или поздно сталкивается с необходимостью изменения настроек PHP. Например, нужно изменить кодировку сайта, максимальный размер загружаемых файлов, время выполнения скрипта или объем доступной памяти. Для изменения таких параметров нужно прописать новые или изменить имеющиеся параметры в специальных файлах .htaccess, php.ini или самом скрипте. Рассмотрим самые распространенные параметры, полный список изменяемых опций доступен в официальной документации https://www.php.net/manual/ru/ini.list.php
default_charset
С помощью этого параметра можно задать кодировку сайта. Наиболее распространенные значения utf-8 (обычно используется по умолчанию) и cp1251 (чаще всего используется устаревшими сайтами).
display_errors
Параметр предназначен для настройки вывода ошибок. При значении on включает вывод ошибок, off соответственно выключает.
upload_max_filesize
Задает максимальный размер загружаемого файла. Обычно данный параметр задают вместе с post_max_size и memory_limit, так как если указанные директивы будут иметь значения ниже upload_max_filesize, то ошибка при загрузке файлов сохранится.
post_max_size
Определяет максимально допустимый размер данных, передаваемых в POST запросе. Этот параметр должен быть выше или равен значению upload_max_filesize.
memory_limit
Задает лимит оперативной памяти для скрипта. Мы не рекомендуем устанавливать высокие значения этого параметра для всего сайта, так как можно пропустить бесконтрольный рост использования оперативной памяти и ошибки в работе сайта.
При получении ошибки «out of memory» рекомендуем первостепенно выполнить оптимизацию скрипта с целью снижения использования памяти и только при невозможности этого, расширить объем доступной памяти для отдельного скрипта с помощью функции ini_set.
max_execution_time
Позволяет настроить максимальное время выполнения скрипта. Если какой-то скрипт не успевает выполняться за установленный срок, пользователь увидит ошибку «maximum execution time of 60 seconds exceeded».
Не рекомендуем устанавливать высокие значения этого параметра для всего сайта, так как это может привести к скоплению долгих запросов и полному зависанию сайта. При необходимости долгого выполнения отдельных запросов, оптимизируйте код сайта с целью увеличения скорости его выполнения, либо расширяйте лимит с помощью ini_set для отдельных запросов.
max_input_vars
Директива задает максимальное число входных переменных в одном запросе.
mbstring.func_overload
Директива предназначена для замены однобайтовых функций двухбайтовыми (например strlen на mb_strlen), без внесения изменений в код. Чаще всего используется в устаревших версиях Битрикс.
Стоит отметить, что с PHP 7.2 параметр объявлен устаревшим, в 8.0 был полностью удален.
mbstring.internal_encoding
Обычно, этот параметр используется совместно с mbstring.func_overload для установки кодировки двухбайтовых функций. Это устаревшая возможность, вместо этого разработчики рекомендуют использовать default_charset.
Изменение параметров PHP через файл .htaccess
Это основной способ изменения параметров PHP для нашего хостинга. Для изменения нужных параметров используйте php_value в файле .htaccess (рекомендуем вносить изменения в файл, который размещен в корневом каталоге сайта). Этим способом можно менять значения директив с пометками PHP_INI_ALL и PHP_INI_PERDIR.
php_value default_charset utf-8 php_value display_errors 1 php_value post_max_size 512M php_value upload_max_filesize 512M php_value memory_limit 512M php_value max_execution_time 600 php_value max_input_vars 10000
Указанные изменения распространяются на все подкаталоги, в которых расположен файл .htaccess. Получение 500 ошибки при входе на сайт, означает допущенную ошибку при редактировании файла.
Изменение параметров PHP через скрипты
Этот способ подходит для любого хостинга. Изменение параметров PHP происходит с помощью функции ini_set в скриптах. Таким способом можно поменять директивы с пометками PHP_INI_USER и PHP_INI_ALL из официальной документации.
ini_set('default_charset', 'utf-8'); ini_set('display_errors', '1'); ini_set('post_max_size', '512M'); ini_set('upload_max_filesize', '512M'); ini_set('memory_limit', '512M'); ini_set('max_execution_time', '600'); ini_set('max_input_vars', '10000');
Вариант изменения параметров PHP через скрипты очень удобен, так как можно расширять ресурсы оперативной памяти, времени выполнения, объем загружаемых файлов для отдельных сложных запросов, а для всего сайта будут использоваться стандартные параметры.
Изменение параметров PHP через php.ini
Вариант изменения параметров PHP посредством файла php.ini преимущественно применим для владельцев собственных серверов. Через php.ini можно изменить абсолютно любой параметр PHP (в том числе mbstring для Битрикс).
default_charset = utf-8 display_errors = 1 post_max_size = 512M upload_max_filesize = 512M memory_limit = 512M max_execution_time = 600 max_input_vars = 10000
Изменение параметров PHP — директив php.ini
В разделе Параметры модуля PHP панели управления хостингом размещена таблица с изменяемыми параметрами. Установите необходимые значения в соответствии с требованиями скриптов сайта и сохраните изменения.
Ручное редактирование php.ini
Для редактирования файла php.ini необходимо:
- загрузить на ваш компьютер файл php.ini, соответствующий вашей версии PHP, из директории /etc/php/version, например, с помощью файлового менеджера панели управления ;
- загрузить отредактированную версию файла php.ini в домашнюю директорию /home/идентификатор;
- перейти в раздел Управление веб-серверомпанели управления хостингом и выполнить перезапуск сервера, чтобы изменения вступили в силу.
При использовании собственного php.ini настройки PHP из панели управления хостингом работать не будут. Чтобы вернуться к автоматическим настройкам, нужно удалить php.ini из директории/home/идентификатор/ и перезапустить веб-сервер.
Для отдельных сайтов параметры PHP можно задать с помощью файла .htaccess и директив php_flag, php_value в соответствии с документацией PHP.