You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Amazon Linux 2 aarch64架构下为PHP 8.x安装php-memcached?

如何在Amazon Linux 2 aarch64架构下为PHP 8.x安装php-memcached?

我完全理解你的处境——Amazon Linux 2的aarch64架构上,PHP 8.0/8.1确实没有官方预编译的php-pecl-memcached包,而且降级到已停止支持的PHP7.4显然不是理想选择,还要本地部署memcached而非依赖ElastiCache集群。下面给你几个可行的解决办法:

方法一:从源码编译安装(最推荐、可控性高)

这是目前最可靠的方案,因为官方没有预编译包,我们可以通过PECL拉取源码编译适配PHP8.x的扩展:

  1. 先准备编译依赖与对应PHP版本的开发工具
    首先确保你已经启用了目标PHP版本的Amazon Linux Extras仓库(比如以PHP8.1为例):

    sudo amazon-linux-extras enable php8.1
    sudo yum clean metadata && sudo yum update -y
    

    然后安装编译所需的工具和依赖包:

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

    注意:php-devel的版本必须和你当前使用的PHP版本一致,否则编译会失败。

  2. 通过PECL编译安装memcached扩展
    直接用pecl命令拉取源码并编译安装:

    sudo pecl install memcached
    

    安装过程中会弹出一些配置选项(比如是否启用SASL、JSON支持等),如果没有特殊需求,直接按回车选择默认即可。

  3. 将扩展添加到PHP配置中
    新建一个专门的扩展配置文件,避免修改主配置:

    echo "extension=memcached.so" | sudo tee /etc/php.d/40-memcached.ini
    
  4. 重启服务生效
    重启PHP-FPM和Apache服务(如果用的是Nginx则只重启php-fpm):

    sudo systemctl restart php-fpm httpd
    
  5. 验证安装结果
    执行以下命令,如果输出memcached则说明安装成功:

    php -m | grep memcached
    

方法二:使用第三方预编译RPM包(可选,需注意安全)

如果你不想自己编译,可以寻找针对Amazon Linux 2 aarch64的可信第三方RPM仓库,比如一些专注于PHP扩展的社区源。但要注意:第三方源可能存在安全风险,且版本更新不一定及时,所以仅作为备选方案。

基础准备:确保本地memcached服务已安装

不管用哪种方法,你都需要先在EC2实例上安装并启动本地memcached服务:

sudo yum install memcached -y
sudo systemctl enable --now memcached

我之前帮同事处理过类似的迁移场景,源码编译的方法稳定性很高,只要依赖包安装齐全,基本不会遇到大问题。如果编译过程中报错,先检查php-devel版本是否匹配,或者是否遗漏了某个依赖包。

备注:内容来源于stack exchange,提问作者Arth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 15:17:39