Что такое 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= Offdisable_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/Cookiefile_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 отключены)
Помощь
Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!