.user.ini — специальный файл для настройки PHP на каждый сайт в shared-хостинге. Работает в PHP 5.3+. На shared-хостинге глобальный php.ini не меняется (другие клиенты на том же сервере), но через .user.ini можно настроить только свой сайт.
Расположение
В корневой папке сайта (обычно public_html). Действует на текущую папку и подпапки. Для подсайтов — отдельный .user.ini в каждой папке.
Синтаксис
Текстовый формат, "параметр = значение":
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120
max_input_vars = 3000
display_errors = Off
log_errors = On
Какие параметры можно менять
Только категории PHP_INI_PERDIR и PHP_INI_USER:
memory_limit, upload_max_filesize, post_max_size, max_execution_time, max_input_time, max_input_vars, display_errors, log_errors, error_log, date.timezone, default_charset, mbstring.internal_encoding, session.save_path, session.cookie_lifetime, file_uploads, allow_url_fopen, expose_php.
disable_functions, open_basedir — PHP_INI_SYSTEM, только в php.ini.
Кеширование
Изменения вступают в силу не сразу — PHP читает .user.ini в среднем раз в 5 минут (user_ini.cache_ttl). Чтобы сразу — перезапустите PHP-FPM/Apache или подождите 5 минут.
Практика Sayt.uz
23% клиентов используют .user.ini — WordPress с большими медиа, e-commerce импорт, отладка. Топ параметров: upload_max_filesize 128M, memory_limit 512M, max_execution_time 300. Совет: на продакшене display_errors = Off, но log_errors = On — клиент не видит ошибок, вы видите в логе.