Устранение неполадок
Расширения и параметры 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
Доступны четыре версии: 8.4, 8.3, 8.2 и 8.1. Новые сайты по умолчанию используют 8.3.
Выберите новейшую версию, которую на самом деле поддерживает ваше программное обеспечение. Более новый PHP значительно быстрее и получает исправления безопасности в течение более длительного периода. Причина не переходить сразу на новейшую версию - это совместимость: старый плагин или кусок кода, написанный много лет назад, может полностью не работать с версией, на которой его никогда не тестировали.
Для изменения выберите версию и нажмите Apply Version. Изменение вступает в силу немедленно, без необходимости перезагрузки с вашей стороны и без простоев.
Сначала измените версию PHP на staging, кликните по сайту, а затем измените его на production. Если вы должны сделать это на живом сайте, делайте это, когда можете наблюдать, и знайте, что переключение обратно выполняется в один клик. См. Staging Environments.
Если изменение версии нарушит сайт, переключитесь обратно на предыдущую версию и прочитайте журнал. Ошибка назовет файл, который не смог запуститься. См. Изменение версии PHP и Журналы ошибок.
Параметры, которые вы можете изменить
На странице PHP отображаются пять параметров как выпадающие списки. Это те, которые на самом деле вызывают проблемы на практике, поэтому именно они выводятся.
| Параметр | По умолчанию | Доступные значения | Что он контролирует |
|---|---|---|---|
memory_limit | 256M | 128M, 256M, 512M, 1024M, 2048M | Сколько памяти может использовать один запрос |
max_execution_time | 30 | 30, 60, 120, 300, 600 | Сколько секунд может работать один запрос |
upload_max_filesize | 64M | 16M, 32M, 64M, 128M, 256M | Наибольший размер одного загружаемого файла |
post_max_size | 65M | 17M, 33M, 65M, 129M, 257M | Наибольший общий размер отправки формы |
max_input_vars | 3000 | 1000, 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() в корневом каталоге вашего веб-сайта. Это публикует ваши пути, ваши расширения и вашу конфигурацию для любого, кто его найдет, и автоматические сканеры ищут именно это имя файла. Если вы создали его для проверки чего-либо, удалите его немедленно после этого.