1. PHP 소스
도크를 위해서r 미러링은 최소이며, PHP의 소스 파일은 압축 패킷의 형태로 미러링되어 있으며, docker-php-source 빠른 스크립트를 제공하여 소스 파일의 압축 패킷의 압축 해제(extract) 및 압축 해제 후의 파일을 삭제(delete)하는 작업을 수행합니다.
예:
FROM php:7.1-apache
RUN docker-php-source extract \
# 여기에서 필요한 작업을 시작합니다 \
&& docker-php-source delete
주의: 삭제하지 않으면 압축 해제된 파일이 미러링된 파일 크기를 크게 늘릴 수 있습니다.
2. 설치 확장
2.1. 코어 확장
여기 주로 공식 docker-php-ext-confi를 사용하는데gure와 docker-php-ext-install 빠른 스크립트, 다음과 같습니다.
FROM php:7.1-fpm
RUN apt-get update \
# 의존 관계를 수동으로 설치해야 합니다
&& apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng-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
주의: 여기서 docker-php-ext-configure와 docker-php-ext-install은 이미 docker-php-source의 동작을 포함하고 있으므로 모든 작업을 수동으로 수행할 필요가 없습니다.
2.2. PECL 확장
일부 확장은 PHP 소스 파일에 포함되지 않기 때문에 PECL(PEAR을 통해 패키지)을 사용해야 합니다.pecl install로 확장 설치 후 docker-php로 제공-ext-enable 빠른 발다음 예시와 같이 확장을 사용합니다
FROM php:7.1-fpm
RUN apt-get update \
# 수동 설치 종속성
&& apt-get install -y libmemcached-dev zlib1g-dev \
# 설치에 필요한 확장
&& pecl install memcached-2.2.0 \
# 확장 사용하기
&& docker-php-ext-enable memcached
2.3. 기타 확장
PHP에 없는 것도 있고 PECL 확장 라이브러리에서 소스 번들을 확장하지 않고, 다음 예제처럼 확장 프로그램 소스를 다운로드하여 컴파일하여 설치할 수 있습니다
FROM php:5.6-apache
RUN curl -fsSL 'https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz' -o xcache.tar.gz \
&& mkdir -p xcache \
&& tar -xf xcache.tar.gz -C xcache --strip-components=1 \
&& rm xcache.tar.gz \
&& ( \
cd xcache \
&& phpize \
&& ./configure --enable-xcache \
&& make -j$(nproc) \
&& make install \
) \
&& rm -r xcache \
&& docker-php-ext-enable xcache
참고: docker-php-ext-* 스크립트는 임의의 절대 경로를 받아들인다(상대 경로를 지원하지 않기 때문에 시스템에 내장된 확장 프로그램과 구별할 수 있다). 따라서 위의 예에서도 다음과 같이 쓸 수 있다
FROM php:5.6-apache
RUN curl -fsSL 'https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz' -o xcache.tar.gz \
&& mkdir -p /tmp/xcache \
&& tar -xf xcache.tar.gz -C /tmp/xcache --strip-components=1 \
&& rm xcache.tar.gz \
&& docker-php-ext-configure /tmp/xcache --enable-xcache \
&& docker-php-ext-install /tmp/xcache \
&& rm -r /tmp/xcache
'개발 꿀팁 > PHP' 카테고리의 다른 글
php zip 압축 파일 읽기 (스트리밍 동작) (0) | 2022.07.27 |
---|---|
php 원형 페이지 (0) | 2022.07.27 |
PHP 구현 이분 검색 알고리즘 (0) | 2022.07.26 |
PHP 액세스 MySQL 쿼리 시간 초과 처리 (0) | 2022.07.26 |
phpset_error_handler() 중요 사용법 (0) | 2022.07.26 |