Решение проблемы зависания сервера Memcached в HestiaCP с PHP 8.4

Ваш сайт тормозит не из-за слишком большого трафика, а, вероятно, потому что бэкэнд Memcached вообще не работает!

Это самая неприятная часть: вы обновились до PHP 8.4, но сервер Memcached не отвечает, и страницы загружаются черепашьим темпом. Причина на самом деле довольно проста — несоответствие расширений, просроченные ключи и неправильный порядок зависимостей. Ниже я подробно опишу решение, чтобы вы могли исправить всё за один раз.

Корень проблемы

После обновления PHP до версии 8.4, если расширение Memcached не справляется с нагрузкой, оно сразу же выдаст ошибку.

Многие люди упустили это из виду. packages.sury.org Проблема заключалась в истекшем сроке действия ключа GPG, из-за чего не удалось загрузить установочный пакет.

Хуже того, Memcached зависит от... igbinary И msgpackПорядок загрузки необходимо строго соблюдать; в противном случае это все равно что ставить кусочки пазла не на свои места, что приведет к сбою всей системы.

Решение проблемы зависания сервера Memcached в HestiaCP с PHP 8.4

Обновить ключ 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

Чтобы раскрыть еще больше скрытых трюков🔑, присоединяйтесь к нашему каналу в Telegram!

Поделитесь и поставьте лайк, если вам понравилось! Ваши репосты и лайки — наша постоянная мотивация!

 

发表 评论

Ваш адрес электронной почты не будет опубликован. 必填 项 已 用 * 标注

Наверх