Перейти к содержимому
Перейти в KPanelПерейти в KPanel
Содержание
Устранение неполадок

Расширения и настройки PHP

Машинный перевод. Английский оригинал доступен.

Какие версии PHP и расширения предоставляет веб-хостинг KapsuleHost для сайтов на WordPress, WooCommerce и PHP, какие настройки можно менять самостоятельно и почему изменение может вступить в силу только через пять минут.

Статические сайты, а также сайты на Node.js и Python не используют PHP. Всё, что связано с PHP для сайта, находится в одном месте: Веб-сайты, выберите сайт, Параметры, затем PHP. На этой странице находится выбор версии, настройки, которые можно изменить, запуск Composer и журнал ошибок PHP.

Страница PHP для сайта в KPanel, с выбором версии и доступными настройками

Выбор версии PHP

Доступны для выбора четыре версии: 8.4, 8.3, 8.2 и 8.1. Для новых сайтов по умолчанию используется 8.3.

Выбирайте самую новую версию, которую действительно поддерживает ваше программное обеспечение. Более новый PHP заметно быстрее и дольше поддерживается обновлениями безопасности. Причина не переходить сразу на самую новую версию: совместимость. Старый плагин или кастомный код, написанный много лет назад, может полностью перестать работать на версии, с которой он никогда не тестировался.

Чтобы изменить версию, выберите её и нажмите Применить версию. Изменение вступает в силу немедленно, без необходимости перезапуска с вашей стороны и без простоя.

Сначала меняйте версию PHP на staging-окружении, пройдитесь по сайту, и только потом меняйте версию на продакшене. Если нужно делать это сразу на рабочем сайте, делайте это тогда, когда можете наблюдать за процессом, и помните, что вернуться к предыдущей версии можно в один клик. См. Тестовые окружения.

Если смена версии ломает сайт, переключитесь обратно на предыдущую версию и прочитайте журнал. В ошибке будет указан файл, который не удалось запустить. См. Изменение версии PHP и Журналы ошибок.

Настройки, которые можно изменить

На странице PHP доступны пять настроек в виде выпадающих списков. Это именно те параметры, которые на практике чаще всего вызывают проблемы, поэтому они и вынесены на видное место.

НастройкаПо умолчаниюДоступные значенияЧто контролирует
memory_limit256M128M, 256M, 512M, 1024M, 2048MСколько памяти может использовать один запрос
max_execution_time3030, 60, 120, 300, 600Сколько секунд может выполняться один запрос
upload_max_filesize64M16M, 32M, 64M, 128M, 256MМаксимальный размер одного загружаемого файла
post_max_size65M17M, 33M, 65M, 129M, 257MМаксимальный общий размер отправки формы
max_input_vars30001000, 3000, 5000, 10000Сколько полей может содержать одна отправка

Что именно вам нужно:

  • Загрузки не проходят выше определённого размера: увеличьте upload_max_filesize, а вместе с ним и post_max_size.
  • Большая форма или конструктор страниц теряет поля при сохранении: увеличьте max_input_vars. Эта проблема незаметна и крайне раздражает, потому что никакой ошибки не возникает. Лишние поля просто молча отбрасываются.
  • Страница обрывается на полпути без ошибки: увеличьте memory_limit. См. Лимит памяти WordPress.
  • Долгий импорт или экспорт прерывается по таймауту: увеличьте max_execution_time и подумайте о запуске задачи из командной строки. См. WP-CLI.

post_max_size должен быть больше, чем upload_max_filesize, потому что загружаемый файл передаётся внутри самого запроса. Если выбранная комбинация этому не соответствует, платформа автоматически увеличивает post_max_size за вас. Поэтому вы можете увидеть значение, которое сами не выбирали.

Почему изменение может вступить в силу только через пять минут

Это самое частое недоразумение на этой странице, поэтому стоит объяснить точно.

Ваши настройки записываются в файл .user.ini в корневом каталоге документов вашего сайта. PHP считывает этот файл, а затем кэширует его на 300 секунд, то есть на пять минут. Пока этот кэш не истечёт, PHP продолжает использовать прежние значения.

Поэтому после сохранения изменения:

  • Страница ещё до пяти минут будет показывать старый лимит.
  • phpinfo() ещё до пяти минут будет показывать старый лимит.
  • Принудительное обновление страницы не поможет. Очистка кэша браузера тоже не поможет.
  • Вам не нужно ничего перезапускать, и вы не можете это сделать. Просто подождите.

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

Самостоятельное редактирование .user.ini

Вы можете редактировать .user.ini напрямую через SFTP или SSH, если вам так удобнее или если вам нужна директива, которую не предоставляет панель. Файл находится в корневом каталоге документов вашего сайта. См. Доступ по SFTP.

Формат: одна директива на строку:

memory_limit = 512M
max_execution_time = 120

Есть два важных ограничения того, что может .user.ini:

Он работает только для директив, которые PHP позволяет задавать на уровне каталога или пользователя. Все пять вышеперечисленных настроек подходят под это условие. Директивы, которые можно задать только на уровне системы, такие как disable_functions или загрузка расширения через extension=, игнорируются в файле .user.ini. Ошибки при этом не возникает, они просто ничего не делают, из-за чего люди тратят на это целый день.

Панель считывает обратно только простые ключи. Директивы, содержащие точку, такие как opcache.enable или date.timezone, учитываются PHP, но не отображаются в форме панели. Если вы задали такую директиву вручную, а затем что-то изменили через панель, проверьте файл после этого.

Веб-хостинг KapsuleHost работает на nginx, а не на Apache. Файлы .htaccess никто не читает. Директивы PHP, размещённые в файле .htaccess, такие как php_value memory_limit, здесь совершенно ничего не делают. Используйте .user.ini или панель. См. WordPress и .htaccess.

Какие расширения доступны

Стандартная сборка широкая и включает всё, что запрашивают WordPress, WooCommerce и большинство PHP-приложений.

Базы данных: mysqli, pdo_mysql, sqlite3, pdo_sqlite Изображения: gd, imagick, exif Кэширование: Zend OPcache, redis, memcached Текст и локаль: mbstring, iconv, intl, gettext, ctype XML и данные: dom, simplexml, xml, xmlreader, xmlwriter, xsl, json Сеть: curl, soap, sockets, ftp, openssl Математика и криптография: bcmath, sodium, hash, random Файлы и система: fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer

Один момент, различающийся между версиями: расширение imap присутствует в 8.3 и более ранних версиях, но отсутствует в 8.4, поскольку оно было удалено из самого PHP в этом релизе. Если у вас есть приложение, которому оно всё ещё нужно, оставайтесь на версии 8.3 либо перенесите это приложение на современную библиотеку для работы с почтой.

Не установлены: драйверы PostgreSQL, MongoDB, Xdebug, mcrypt, а также коммерческие загрузчики кода, такие как ionCube и SourceGuardian.

Вы не можете самостоятельно включать или отключать расширения из панели. Если вашему приложению нужно что-то, чего нет в списке, откройте заявку в поддержку и опишите, что именно вы используете. Возможность добавления зависит от конкретного расширения. См. Создание заявки в поддержку.

Проверка того, что на самом деле загружено

Вместо того чтобы гадать:

  • В WordPress: Инструменты, затем Здоровье сайта, затем Информация, затем Сервер. Там указана версия PHP и соответствующие лимиты.
  • Через SSH: php -v для версии и php -m для загруженных расширений. См. Добавление SSH-ключей.

Не оставляйте файл phpinfo() в корневом каталоге вашего сайта. Он раскрывает ваши пути, расширения и конфигурацию любому, кто его найдёт, а автоматические сканеры ищут именно такое имя файла. Если вы создали такой файл, чтобы что-то проверить, удалите его сразу после этого.

Похожие материалы

Это было полезно?

Вы ИИ? Читайте эту страницу в Markdown

Похожие статьи

Мой сайт не загружается: контрольный список диагностикиРаботайте по этим шагам по порядку. Каждый шаг либо определяет причину, либо исключает её. Большинство проблем решаются на шаге 5.…Сайт недоступен: как связать то, что вы видите, с причинойЭто общее для всех продуктов дерево диагностики для сайта, который не загружается. KapsuleHost предоставляет несколько продуктов, и быстрее всего найти причину…Использование Cloudflare или другого прокси с KapsuleHostИспользование Cloudflare или другого прокси-сервиса с KapsuleHost Как разместить сторонний прокси-сервис или CDN перед сайтом KapsuleHost, включая две настройки…Медленная работа сайта и лимиты ресурсовЧто на самом деле ограничивает ваш тариф хостинга, что происходит при достижении каждого лимита и как понять, является ли медленный сайт проблемой ресурсов или…

Всё ещё нужна помощь?

Спросите Kora, она знает ваш аккаунт, или свяжитесь с нашей командой.

Связаться с намиНаписать в поддержку