【问题标题】:How to install LDAP in Docker php-fpm alpine如何在 Docker php-fpm alpine 中安装 LDAP
【发布时间】:2020-11-05 21:20:38
【问题描述】:

知道如何在 dockerfile 中安装 php Ldap 扩展

来自 php:7.2-fpm-alpine

我尝试了以下

RUN docker-php-ext-configure ldap --prefix=/usr/local/php --with-ldap=/usr/lib/i386-linux-gnu
RUN docker-php-ext-install ldap

但是当我构建 docker 时,我收到错误消息

配置:错误:找不到 ldap.h

错误:服务“php”构建失败:命令“/bin/sh -c docker-php-ext-install ldap”返回非零代码:1

PS:这里是高山,所以“apt-get”在这里不起作用,而是“apk add”

【问题讨论】:

    标签: php docker ldap alpine php-extension


    【解决方案1】:

    你可以试试ldb-dev alpine package。`

    FROM php:7.2-fpm-alpine
    RUN apk add --no-cache ldb-dev
    

    PHP configure not finding LDAP header libraries

    【讨论】:

    • 我试过了,还是说“配置:错误:找不到 ldap.h”
    • 你检查过那个标签的答案吗?还建议添加ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so
    【解决方案2】:

    如果您遇到配置:错误:找不到 ldap.h 尝试在基于 Alpine 的 Dockerfile 中添加这一行

    RUN apk add ldb-dev libldap openldap-dev
    

    【讨论】:

    • 仅供参考。适用于php:7-4-fpm-alpine
    【解决方案3】:

    这对我有用:

    FROM php:7.4.9-fpm-alpine3.12
            
    COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/bin/
    
    # Install PHP extensions
    RUN install-php-extensions ldap
    

    【讨论】:

    • 我也可以将它与 php:7.4-fpm-alpine 一起使用
    【解决方案4】:

    使用以下 dockerfile 修复:

    FROM php:7.2-fpm-alpine
    
    # Install composer
    RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
    
    # lumen packages
    RUN apk add openldap-back-mdb
    RUN apk add --update --virtual .build-deps autoconf g++ make zlib-dev curl-dev libidn2-dev libevent-dev icu-dev libidn-dev openldap libxml2-dev
    
    RUN docker-php-ext-install intl soap
    RUN docker-php-ext-install mbstring tokenizer mysqli pdo_mysql json hash iconv
    RUN apk --update --no-cache add php7-ldap libldap php-ldap  openldap-clients openldap openldap-back-mdb
    
    RUN apk add --no-cache ldb-dev
    RUN ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \
    && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so
    #RUN docker-php-ext-configure ldap --prefix=/usr/local/php --with-ldap=/usr/lib/libldap.so
    #RUN docker-php-ext-install ldap
    ARG DOCKER_PHP_ENABLE_LDAP
    
    RUN echo -n "With ldap support:          " ; if [[ "${DOCKER_PHP_ENABLE_LDAP}" = "on" ]] ;      then echo "Yes"; else echo "No" ; fi && \
        if [ -z ${DOCKER_USER_UID+x} ]; then echo "DOCKER_USER_UID is unset"; DOCKER_USER_UID=1000; else echo "DOCKER_USER_UID is set to '$DOCKER_USER_UID'"; fi && \
        if [ -z ${DOCKER_USER_GID+x} ]; then echo "DOCKER_USER_GID is unset"; DOCKER_USER_GID=1000; else echo "DOCKER_USER_GID is set to '$DOCKER_USER_GID'"; fi
    
    # Enable LDAP
    RUN if [ "${DOCKER_PHP_ENABLE_LDAP}" != "off" ]; then \
          # Dependancy for ldap \
          apk add --update --no-cache \
              libldap && \
          # Build dependancy for ldap \
          apk add --update --no-cache --virtual .docker-php-ldap-dependancies \
              openldap-dev && \
          docker-php-ext-configure ldap && \
          docker-php-ext-install ldap && \
          apk del .docker-php-ldap-dependancies && \
          php -m; \
        else \
          echo "Skip ldap support"; \
        fi
    
    
    
    
    RUN pecl install raphf propro
    RUN docker-php-ext-enable raphf propro
    RUN pecl install pecl_http
    RUN echo -e "extension=raphf.so\nextension=propro.so\nextension=iconv.so\nextension=http.so" > /usr/local/etc/php/conf.d/docker-php-ext-http.ini
    RUN rm -rf /usr/local/etc/php/conf.d/docker-php-ext-raphf.ini
    RUN rm -rf /usr/local/etc/php/conf.d/docker-php-ext-propro.ini
    RUN rm -rf /tmp/*
    
    
    COPY ./app /var/www/html/
    
    RUN chown -R www-data:www-data /var/www/html/
    RUN chmod -R 755 /var/www/html/
    
    WORKDIR /var/www/html/
    RUN composer install
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-07
      • 2018-03-31
      • 2023-01-14
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      相关资源
      最近更新 更多