Устранение неполадок

Расширения и параметры PHP

Which PHP versions and extensions KapsuleHost web hosting provides, which settings you can change yourself, and why a change can take up to five minutes to appear.

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

Все, что связано с PHP для сайта, находится в одном месте: Websites, нажмите на сайт, Advanced, затем PHP. На этой странице находятся селектор версии, параметры, которые вы можете изменить, Composer runner и журнал ошибок PHP.

Вкладка PHP для сайта в KPanel

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

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

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

Для изменения выберите версию и нажмите Apply Version. Изменение вступает в силу немедленно, без необходимости перезагрузки с вашей стороны и без простоев.

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

Если изменение версии нарушит сайт, переключитесь обратно на предыдущую версию и прочитайте журнал. Ошибка назовет файл, который не смог запуститься. См. Изменение версии 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, но не появляются в форме панели. Если вы установили ее вручную и позже измените что-либо через панель, проверьте файл после этого.

Хостинг Kapsule использует 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: Tools, затем Site Health, затем Info, затем Server. Это список версии PHP и соответствующих лимитов.
  • Через SSH: php -v для версии и php -m для загруженных расширений. См. Добавление SSH ключей.

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

Связанные руководства

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

Напишите нам на support@kapsulehost.com или откройте чат в KPanel.

Открыть KPanel