2016-07-19 9 views
1

PHP의 내선/모듈을 사용하지 않으려면 내가 같은 "sqlite3를, PDO .."등의 내 PHP-FPM 이미지 내부에 해제되지 않은 PHP 모듈을하고자하는 방법.도커 - 나는 PHP API를하고 있어요

나는 도커 초보자이며, 사용하지 않는 PHP 모듈을 사용하지 않는 것이 가장 좋은 방법이 아니라면 docker-php-ext-enable과 비슷한 것이 있는지 알고 싶습니다.

+0

'php.ini' 파일은 어떻습니까? – JustOnUnderMillions

+0

https://hub.docker.com/_/php/ – JustOnUnderMillions

+0

나는/usr/local/etc/php에 커스텀 php.ini 파일을 가지고있다. 위의 링크에서 도움이되는 것을 찾을 수 없습니다. PHP는 기본 모듈을 제공하며 일부는 비활성화하려고합니다. –

답변

0

예, 가능합니다. 당신이 iconv, mcryptgd 확장과 PHP-FPM 이미지를 갖고 싶어

는, 예를 들어 https://hub.docker.com/_/php/

에서 촬영, 당신은 당신이 좋아하는 기본 이미지를 상속하고, 같은 자신의 Dockerfile을 쓸 수 있습니다 이 :

FROM php:7.0-fpm 
RUN apt-get update && apt-get install -y \ 
     libfreetype6-dev \ 
     libjpeg62-turbo-dev \ 
     libmcrypt-dev \ 
     libpng12-dev \ 
    && docker-php-ext-install -j$(nproc) iconv mcrypt \ 
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ 
    && docker-php-ext-install -j$(nproc) gd 

수동으로 확장에 대한 종속성을 설치해야합니다 기억하십시오. 확장 프로그램에 사용자 정의 configure 인수가 필요한 경우이 예제와 같이 docker-php-ext-configure 스크립트를 사용할 수 있습니다.

+0

이미 설치 한 후 비활성화하거나 제거하는 방법이 있습니까? –

1

마침내 요점을 발견했습니다.

도커 PHP 컨테이너 안에는 등록 된 모든 모듈이 아래 경로 아래의 구성 파일에 있습니다.

docker exec -it php_container_name bash 

당신은 php -m 모든 활성화 된 모듈을 나열 할 수 있습니다 :

:

그리고 그 폴더에 cd, 당신은 관련된 설정 파일을 볼 수있는 용기에

/usr/local/etc/php/conf.d/*.ini 

bash

cd /usr/local/etc/php/conf.d/ 
ls 

# output 
docker-php-ext-mcrypt.ini docker-php-ext-mysqli.ini  
docker-php-ext-opcache.ini opcache-recommended.ini 
docker-php-ext-zip.ini 

일부 내선 ension 모듈은 disabled 일세을, 예를 들면, 그 안에 그 .ini 파일을 이동 :

mkdir disalbled 
mv docker-php-ext-opcache.ini disabled 
mv opcache-recommended.ini 

마지막으로 눌러 Ctrl+D 컨테이너를 종료 한 다음 변경 작동하게 할 수있는 컨테이너를 다시 시작합니다.

docker restart php_container_name 

당신은 컨테이너에 들어갈 그리고, 관련 확장자가 없어 볼 php -m를 실행할 수 있습니다.

+0

오타가'mkdir disalbled'입니다. 편집 내용이 편집 된 문자가 10 개 이상이어야하기 때문에 변경할 수 없습니다. –