如何在 Amazon Linux 2 aarch64 上为 php 8.x 安装 php-memcached?

如何在 Amazon Linux 2 aarch64 上为 php 8.x 安装 php-memcached?

我正在将我们的网站从较旧的 Centos 服务器迁移到新的 EC2 实例(Amazon Linux 2,aarch64)。我想在 EC2 实例堆栈上安装 LAMP 堆栈和 memcached;这是我们在旧服务器上的设置

amzn2extra-php7.4 repo 有一个包 php-pecl-memcached.aarch64,但没有相应的包 amzn2extra-php8.0 或 amzn2extra-php8.1

我在网上找到的所有指南都是针对 PHP 7.4 的,而且似乎都使用了 php-pecl-memcached,我不想降级到不再受支持的 PHP 版本

我确实找到了一些文档关于如何安装支持 memcached 的 Amazon Elasticache 扩展,但它似乎只设计用于连接单独的托管集群,我想在同一台机器上安装 memcached

有解决方法吗?

答案1

由于 Amazon 存储库中没有 memcached 扩展,因此您必须按照以下步骤从 PECL 安装它。

启用亚马逊渠道:

sudo amazon-linux-extras enable php8.1 memcached1.5
sudo yum update

安装构建工具和依赖项:

sudo yum install -y gcc make php php-pear php-devel libmemcached libmemcached-devel zlib-devel memcached

从 PECL 安装 memcached 扩展:

sudo pecl update-channels
sudo pecl install memcached

按照屏幕上的提示和说明进行操作(按 Enter 使用默认选项)。

激活扩展:

echo extension=memcached.so | sudo tee -a /etc/php.ini
sudo systemctl restart httpd

现在确认扩展已加载

php --info | grep "memcached support"

请注意,这一切给你的是一个不受支持的memcached扩展,从现在开始您负责为其安装安全更新。

在生产环境中,我强烈建议使用 Ubuntu 镜像,因为它可以apt install php8.1-memcached memcached安装同样的东西并获得自动安全更新。

答案2

基于塞尔久的回应我还需要 php-igbinary 扩展:

pecl update-channels

pecl install igbinary
echo extension=igbinary.so | sudo tee -a /etc/php.ini

pecl install --configureoptions 'with-libmemcached-dir="no" with-zlib-dir="no" with-system-fastlz="no" enable-memcached-igbinary="yes" enable-memcached-msgpack="no" enable-memcached-json="no" enable-memcached-protocol="no" enable-memcached-sasl="yes" enable-memcached-session="yes"' memcached
echo extension=memcached.so | sudo tee -a /etc/php.ini

sudo systemctl restart httpd

确认两个扩展都已加载

php --info | grep "memcached support"
php --info | grep "igbinary"

相关内容