php - 无法在 php docker 映像中启用 ldap 扩展
问题描述
我正在使用 docker 图像来构建一个 wordpress 网站。它使用 3 个图像,php、wordpress 和 mysql。我正在使用的插件之一需要安装并启用 ldap 扩展。当我尝试激活插件时,它一直说 ldap 未安装。我被卡住了,需要帮助才能让它工作。
这是 yaml 文件。
version: '3.3'
services:
php:
build: .
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_files:/var/www/html
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: 11111111
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 11111111
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: 11111111
volumes:
wordpress_files:
db_data:
这是 php docker 镜像文件。
FROM php:7.4.1-fpm
RUN \
apt-get update && \
apt-get install -y libicu-dev && \
apt-get install libldap2-dev -y && \
docker-php-ext-install intl && \
docker-php-ext-enable intl && \
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
docker-php-ext-install ldap && \
docker-php-ext-enable ldap
解决方案
php/wordpress 的 docker 镜像不提供任何额外的 PHP 扩展或其他库,即使流行插件需要它们。
有无数可能的插件,它们可能需要 PHP 支持的任何扩展。包括存在的每个 PHP 扩展都会显着增加图像大小。
如果您需要额外的 PHP 扩展,您需要从这个创建自己的图像。php 图像的文档解释了如何编译附加扩展。
此外,wordpress Dockerfile有一个这样做的例子。
推荐阅读
- ios - iOS 键盘下的空白区域
- java - 无法在 Java 中同时使用 STDIN 和 STDERR 读取程序输出
- c++ - 从文件中读取所有数据
- java - 如何在 Smali 中将 iput-object 布尔值设置为 true?
- ios - 更改焦点上的文本字段
- java - foreach:为什么不能在外面声明元素变量?
- c++ - 在右值和左值引用中创建函数时,有没有办法避免重复代码?
- java - Spring RestTemplate 如何将 POJO 与 application/x-www-form-urlencoded 一起使用?
- php - 在三个相关表中计算几个字段并分组
- c# - 从 Mono 中的 BrowserCapabilitiesFactory 获取“无法使用来自 typeref 的令牌 0100028 解析类型”