Что такое php.ini?

Как создать и использовать собственный файл php.ini на виртуальном хостинге (suPHP).

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

Защита php.ini от публичного доступа

Если вы размещаете php.ini внутри public_html, обязательно закройте к нему доступ извне. Откройте (или создайте) файл .htaccess в корневой папке сайта — например, /home/user/public_html, где user — ваше имя пользователя в cPanel — и добавьте следующий блок:

<Files php.ini>
order allow,deny
deny from all
</Files>

Это предотвратит просмотр файла php.ini через браузер.

Важно

Если PHP работает в режиме CGI или suPHP, использование директив php_flag, php_admin_flag, php_value и подобных в файле .htaccess недопустимо — это приведёт к ошибке 500 Internal Server Error.

Применение php.ini ко всему сайту

По умолчанию пользовательский php.ini действует только в той директории, где он расположен. Чтобы он применялся ко всему сайту, добавьте одну из следующих строк в файл .htaccess — перед блоком <Files> — в зависимости от вашего сервера:

Для большинства серверов:

suPHP_ConfigPath /home/user/public_html

Для серверов hostde6 и hostde15:

lsapi_phpini /home/user/public_html

Замените user на ваше реальное имя пользователя в cPanel.

Права доступа к файлам

Права Значение
644 Владелец может писать, остальные — только читать (по умолчанию для файлов)
444 Только чтение для всех, включая собственные скрипты
755 Стандартные права для папок (менять не требуется)

При правах 644 запись в файлы разрешена только скриптам, работающим в рамках вашего аккаунта. Права 444 добавляют дополнительный уровень защиты, запрещая запись даже вашим собственным скриптам — это необязательно, но допустимо.

Общее правило: не меняйте права доступа при установке скриптов, даже если инструкция требует это сделать. Шаг с CHMOD можно смело пропускать.

Пример php.ini с основными параметрами

Синтаксис: директива = значение — строки, начинающиеся с ;, являются комментариями и игнорируются PHP.

  • safe_mode = Off
  • disable_functions = — запрет выполнения указанных функций PHP в целях безопасности
  • max_execution_time = 30 — максимальное время выполнения скрипта в секундах
  • memory_limit = 16M — максимальный объём оперативной памяти, доступный скрипту
  • error_reporting = E_ALL & ~E_NOTICE — показывать все ошибки, кроме замечаний
  • display_errors = On — вывод ошибок в браузер (удобно при отладке)
  • variables_order = "EGPCS" — порядок регистрации переменных: E = встроенные, G = GET, P = POST, C = Cookie, S = сессии
  • register_globals = On — доступ к переменным GET/POST/Cookie/сессий как к обычным переменным
  • post_max_size = 55M — максимальный объём принимаемых POST-данных
  • magic_quotes_gpc = On — автоматическое экранирование кавычек из POST/GET/Cookie
  • file_uploads = On — разрешить загрузку файлов
  • ;upload_tmp_dir = — временная директория для загружаемых файлов (не забудьте создать её, если задаёте)
  • upload_max_filesize = 5M — максимальный размер загружаемого файла
  • session.save_handler = files — хранить данные сессий в файлах
  • session.save_path = /tmp — директория для файлов сессий (создайте её при необходимости)
  • session.use_cookies = 1 — использовать cookie для работы с сессиями
  • session.name = PHPSESSID — имя cookie, используемое для идентификации сессии
  • session.auto_start = 0 — не запускать сессию автоматически при каждом запросе
  • session.cookie_lifetime = 0 — сессионная cookie удаляется при закрытии браузера
  • session.use_trans_sid = 1 — автоматически добавлять ID сессии к ссылкам (если cookie отключены)

Помощь

Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!

Обновлено:
Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам