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

使用Docker为PHP7.4环境配置memcached失败,如何解决?

部署memcached的调整步骤

1. 修改docker.yml配置

首先更新webserver服务的links配置,新增memcached服务关联:

webserver:
    # 原有其他配置不变
    links: 
      - database
      - memcached # 新增这行

再在services节点下新增memcached服务配置:

memcached:
    container_name: '${COMPOSE_PROJECT_NAME}-memcached'
    image: memcached:alpine
    restart: always
    ports:
      - "127.0.0.1:${HOST_MACHINE_MEMCACHED_PORT}:11211"

2. 编写PHP7.4对应的Dockerfile

在你./bin/php7.4/目录下的空Dockerfile中补充如下内容,安装PHP的memcached扩展:

# 基于官方PHP7.4 Apache镜像,如果你原有基础镜像有自定义内容,保留基础镜像配置即可
FROM php:7.4-apache

# 安装memcached扩展依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    libmemcached-dev \
    zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*

# 安装适配PHP7.4的memcached扩展
RUN pecl install memcached-3.2.0 \
    && docker-php-ext-enable memcached

# 如果你原有环境需要其他PHP扩展,比如mysqli、pdo_mysql,可以在这里补充安装
RUN docker-php-ext-install mysqli pdo_mysql

3. 补充环境变量

在你的项目.env配置文件中新增memcached端口配置:

HOST_MACHINE_MEMCACHED_PORT=11211

4. 重启容器生效

执行命令重建启动容器:
docker-compose down && docker-compose up -d --build

5. 验证配置

  • 新建PHP测试文件输出phpinfo(),搜索是否存在memcached扩展项
  • 测试服务连接:
<?php
$mem = new Memcached();
// Docker容器内部直接用memcached服务名作为连接地址,端口默认11211
$mem->addServer('memcached', 11211);
$mem->set('test', '部署成功', 60);
echo $mem->get('test');

如果输出部署成功即配置正常。

内容的提问来源于stack exchange,提问作者Usman Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:12:01