如何在Docker化的WordPress中启用LDAP?
如何为Docker中的WordPress容器启用PHP LDAP扩展
首先明确:你没办法在已经运行的容器里完成PHP LDAP扩展的编译安装——官方的wordpress:latest镜像是预编译好的成品,没有包含编译PHP所需的工具链和依赖,直接在容器里执行编译步骤会遇到大量依赖缺失的问题,而且这种修改也没法持久化(容器重启就没了)。所以正确的做法是自定义一个包含LDAP扩展的WordPress镜像,然后用这个自定义镜像来启动容器。
下面是具体的实现步骤:
1. 创建自定义Dockerfile
在你的docker-compose.yml所在目录下,新建一个名为Dockerfile的文件,内容如下:
# 基于官方WordPress镜像构建 FROM wordpress:latest # 安装编译LDAP扩展所需的依赖和工具 RUN apt-get update && apt-get install -y \ libldap2-dev \ && rm -rf /var/lib/apt/lists/* # 编译并安装PHP LDAP扩展 RUN docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \ && docker-php-ext-install ldap
简单解释:
libldap2-dev是LDAP扩展编译依赖的核心库文件docker-php-ext-configure和docker-php-ext-install是官方PHP镜像自带的辅助脚本,能帮你快速处理PHP扩展的编译配置与安装流程
2. 修改docker-compose.yml配置
把原来wordpress服务的image字段替换成build: .,让Docker Compose自动使用当前目录的Dockerfile构建自定义镜像:
version: '3' services: db: # 保留你原来的db服务配置 <...> wordpress: depends_on: - db # 替换image为build指令,指定构建目录为当前目录 build: . ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress
3. 重新启动容器
执行下面的命令,让Docker Compose构建新镜像并重启服务(--build会强制重新构建镜像):
docker-compose up --build -d
验证LDAP扩展是否启用
容器启动后,你可以进入容器确认扩展是否安装成功:
# 先通过docker ps查看你的WordPress容器名称,替换下面的<container-name> docker exec -it <container-name> bash # 在容器内执行命令查看已启用的PHP扩展 php -m | grep ldap
如果输出ldap,说明扩展已经成功启用。
内容的提问来源于stack exchange,提问作者Arthur Attout
相关产品推荐
相关产品推荐

