2016-10-19 2 views
2

나는 laradock으로 도커를 설치했습니다.Laradock : php7 ldap 지원 확장을 활성화/설치하는 방법은 무엇입니까?

Call to undefined function Adldap\ldap_explode_dn() 

내가 내 고정 표시기 작업 공간을 입력하고 설치하려고 하는가 :

나는 다음과 같은 패키지

"adldap2/adldap2-laravel": "^2.1" 

나는 다음과 같은 오류를 사용하고 있습니다?

docker-compose exec workspace bash 

어떻게 설치해야합니까? apt-get 또는 apt-cache에서 php7.0-ldap 패키지를 찾을 수없는 것 같습니다 ...

도커 작성 또는 도커 파일 중 하나를 편집하여 활성화 할 수 있습니까? (PHP-FPM/Dockerfile-70

편집 : 제공 솔루션)와 (DockerFile-70 전체 내용

# 
#-------------------------------------------------------------------------- 
# Image Setup 
#-------------------------------------------------------------------------- 
# 
# To edit the 'php-fpm' base Image, visit its repository on Github 
# https://github.com/LaraDock/php-fpm 
# 
# To change its version, see the available Tags on the Docker Hub: 
# https://hub.docker.com/r/laradock/php-fpm/tags/ 
# 

FROM laradock/php-fpm:7.0--1.2 

MAINTAINER Mahmoud Zalt <[email protected]> 

# 
#-------------------------------------------------------------------------- 
# Mandatory Software's Installation 
#-------------------------------------------------------------------------- 
# 
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....) 
# are installed on the base image 'laradock/php-fpm' image. If you want 
# to add more Software's or remove existing one, you need to edit the 
# base image (https://github.com/LaraDock/php-fpm). 
# 

# 
#-------------------------------------------------------------------------- 
# Optional Software's Installation 
#-------------------------------------------------------------------------- 
# 
# Optional Software's will only be installed if you set them to `true` 
# in the `docker-compose.yml` before the build. 
# Example: 
# - INSTALL_ZIP_ARCHIVE=true 
# - ... 
# 

##################################### 
# xDebug: 
##################################### 

ARG INSTALL_XDEBUG=false 
RUN if [ ${INSTALL_XDEBUG} = true ]; then \ 
    # Install the xdebug extension 
    pecl install xdebug && \ 
    docker-php-ext-enable xdebug \ 
;fi 

# Copy xdebug configration for remote debugging 
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini 

##################################### 
# MongoDB: 
##################################### 

ARG INSTALL_MONGO=false 
RUN if [ ${INSTALL_MONGO} = true ]; then \ 
    # Install the mongodb extension 
    pecl install mongodb && \ 
    docker-php-ext-enable mongodb \ 
;fi 

##################################### 
# ZipArchive: 
##################################### 

ARG INSTALL_ZIP_ARCHIVE=false 
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \ 
    # Install the zip extension 
    pecl install zip && \ 
    docker-php-ext-enable zip \ 
;fi 

##################################### 
# PHP Memcached: 
##################################### 

ARG INSTALL_MEMCACHED=false 
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \ 
    # Install the php memcached extension 
    curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \ 
    && mkdir -p memcached \ 
    && tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \ 
    && (\ 
     cd memcached \ 
     && phpize \ 
     && ./configure \ 
     && make -j$(nproc) \ 
     && make install \ 
    ) \ 
    && rm -r memcached \ 
    && rm /tmp/memcached.tar.gz \ 
    && docker-php-ext-enable memcached \ 
;fi 

##################################### 
# PHP Aerospike: 
##################################### 

ARG INSTALL_AEROSPIKE_EXTENSION=false 
ENV INSTALL_AEROSPIKE_EXTENSION ${INSTALL_AEROSPIKE_EXTENSION} 
# Copy aerospike configration for remote debugging 
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini 
RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \ 
    # Install the php aerospike extension 
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/luciano-jr/aerospike-client-php/archive/ master.tar.gz" \ 
    && mkdir -p aerospike-client-php \ 
    && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \ 
    && (\ 
     cd aerospike-client-php/src/aerospike \ 
     && phpize \ 
     && ./build.sh \ 
     && make install \ 
    ) \ 
    && rm /tmp/aerospike-client-php.tar.gz \ 
;fi 

##################################### 
# Opcache: 
##################################### 
ARG INSTALL_OPCACHE=false 
RUN if [ ${INSTALL_OPCACHE} = true ]; then \ 
    docker-php-ext-install opcache && \ 
    docker-php-ext-enable opcache \ 
;fi 

# Copy opcache configration 
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini 

##################################### 
# LDAP: 
##################################### 
RUN \ 
    apt-get update && \ 
    apt-get install libldap2-dev -y && \ 
    #rm -rf /var/lib/apt/lists/* && \ 
    docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 
    docker-php-ext-install ldap 



# 
#-------------------------------------------------------------------------- 
# Final Touch 
#-------------------------------------------------------------------------- 
# 

ADD ./laravel.ini /usr/local/etc/php/conf.d 
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/ 

RUN rm -r /var/lib/apt/lists/* 

RUN usermod -u 1000 www-data 

WORKDIR /var/www/laravel 

CMD ["php-fpm"] 

EXPOSE 9000 

답변

6

에 체크를 아웃 : 기본적으로

https://github.com/docker-library/php/issues/75

당신이 필요로하는 php-fpm 도커 파일에 다음과 같이 입력하십시오 :

RUN \ 
    apt-get update && \ 
    apt-get install libldap2-dev -y && \ 
    rm -rf /var/lib/apt/lists/* && \ 
    docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 
    docker-php-ext-install ldap 
+0

나는 snippent로 php-fpm/Dockerfile-70을 업데이트했다. rm -rf/var/lib/apt/lists/* && \는 오류를 일으키는 것 같습니다. 그게 내가 php-fpm을 편집 한 후에 만들지 못하게 해준다. :: rm : '/ var/lib/apt/lists/*'를 제거 할 수 없다 : 파일이나 디렉토리가 없다. – koalaok

+0

@koalaok 그냥 그 줄을 안전하게 제거 할 수있다. 크기를 줄이기위한 정리 작업. 왜 그것이 작동하지 않을지 너무 확실하지 않습니다. 전체 Dockerfile은 어떻게 생겼습니까? – ChadSikorra

+0

laradock git repo의 가장 일반적인 Dockerfile-70입니다. 어쨌든 나는 그 줄이 이미 아래에 몇 줄이 있음을 알았다. "마지막 접촉". 편집자로 Dockerfile 70을 제 질문에 붙여 넣습니다. – koalaok

관련 문제