Каталог статей
Ваш сайт тормозит не из-за слишком большого трафика, а, вероятно, потому что бэкэнд Memcached вообще не работает!
Это самая неприятная часть: вы обновились до PHP 8.4, но сервер Memcached не отвечает, и страницы загружаются черепашьим темпом. Причина на самом деле довольно проста — несоответствие расширений, просроченные ключи и неправильный порядок зависимостей. Ниже я подробно опишу решение, чтобы вы могли исправить всё за один раз.
Корень проблемы
После обновления PHP до версии 8.4, если расширение Memcached не справляется с нагрузкой, оно сразу же выдаст ошибку.
Многие люди упустили это из виду. packages.sury.org Проблема заключалась в истекшем сроке действия ключа GPG, из-за чего не удалось загрузить установочный пакет.
Хуже того, Memcached зависит от... igbinary И msgpackПорядок загрузки необходимо строго соблюдать; в противном случае это все равно что ставить кусочки пазла не на свои места, что приведет к сбою всей системы.

Обновить ключ GPG
Первый шаг — восстановить исходный ключ.
curl -sSL https://packages.sury.org/php/README.txt | bash -x
apt update
Этот шаг эквивалентен повторной выдаче пропуска в систему; без него все последующие установки будут отклонены.
Согласно официальной документации Debian, истечение срока действия ключей — распространённая проблема, и их необходимо регулярно обновлять.
Установите расширение Memcached для PHP 8.4.
Следующий шаг — установка расширения.
apt install -y php8.4-memcached
Обратите внимание, что версия должна точно соответствовать PHP 8.4; в противном случае возникнет ошибка "неопределенный символ".
Согласно официальной документации библиотеки расширений PHP, для обеспечения совместимости Memcached требует перекомпиляции в версиях 8.x.
Обработка запросов к конфигурационному файлу
В процессе установки появится всплывающее окно. memcached.ini Подсказки для выбора.
Ничего здесь менять не нужно, просто нажмите Enter и выберите значение по умолчанию. NСохраните существующую конфигурацию.
Это потому что ГестияCP У него уже есть собственный конфигурационный файл; принудительное его перезаписывание приведет лишь к ошибке в панели управления.
Исправить порядок загрузки расширений зависимостей
Это решающий шаг.
phpdismod -v 8.4 memcached
phpdismod -v 8.4 msgpack
phpdismod -v 8.4 igbinary
phpenmod -v 8.4 igbinary
phpenmod -v 8.4 msgpack
phpenmod -v 8.4 memcached
Порядок должен быть следующим:igbinary → msgpack → memcached.
Если порядок модулей неверен, Memcached сразу же сообщит об ошибке «невозможно загрузить модуль».
Это подтвердили бесчисленные разработчики на Stack Overflow.
Перезапустить службу
Последний шаг — перезапуск.
systemctl restart php8.4-fpm
systemctl restart memcached
Этот шаг подобен нажатию кнопки обновления в системе; только тогда все настройки действительно вступят в силу.
Проверьте, прошла ли установка успешно.
выполненный:
php8.4 -m | grep memcached
Если в выходных данных содержится memcachedЭто означает, что расширение успешно загружено.
Это означает, что ваша панель HestiaCP наконец-то восстановила поддержку кэширования, и производительность веб-сайта немедленно улучшится.
Заключение: Моя точка зрения
Технические проблемы никогда не бывают самым страшным; по-настоящему страшно не знать, в чем именно заключается проблема.
Проблема с неработающим Memcached может показаться сложной, но на самом деле она сводится к трем основным моментам:Сопоставление версий, обновление ключей, порядок зависимостей.
Решение этой проблемы сродни ремонту высокоточного двигателя: если каждая деталь находится на своем месте, вся машина может снова завестись.
В наш век информационной перенасыщенности производительность веб-сайта является конкурентным преимуществом. Кэширование — это не просто желательная функция, а краеугольный камень, определяющий пользовательский опыт.
Поэтому не позволяйте мелким ошибкам в конфигурации парализовать ваш бизнес. Освоив эти шаги, вы сможете полностью решить проблему и снова обеспечить бесперебойную работу вашего веб-сайта.
Ценность технологии заключается не в её сложности, а в её точности. Истинное мастерство заключается в точном решении проблем.
Блог Хоуп Чен Вейлян ( https://www.chenweiliang.com/ Статья "Решение проблемы с не отвечающим сервером Memcached в PHP 8.4 в HestiaCP", размещенная здесь, может оказаться вам полезной.
Добро пожаловать, чтобы поделиться ссылкой на эту статью:https://www.chenweiliang.com/cwl-33848.html
