php vem com algumas extensões
Utilizar a palavra-chave estivador-php-ext-instalar o arquivo diretamente na Dockerfile
RUN docker-php-ext-install -j$(nproc) iconv \
&& 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-install pdo_mysql \
&& docker-php-ext-install bcmath \
&& docker-php-ext-install sockets \
&& docker-php-ext-install zip \
&& docker-php-ext-install sysvmsg
extensão PECL
No site https://pecl.php.net extensão pode usar pecl instalar instalação, por exemplo Redis swoole e outras extensões, prestar atenção se há necessidade de comando uso pecl no espelho quando o comando para instalar, não instale
RUN pecl install swoole-4.2.12 \
&& docker-php-ext-enable swoole \
&& pecl install inotify-2.0.0 \
&& docker-php-ext-enable inotify
Depois pecl instalar irá iniciar o https://pecl.php.net o pacote de download e instalação, de modo a seguir também são possíveis.
RUN wget http://pecl.php.net/get/redis-${PHPREDIS_VERSION}.tgz -O /tmp/redis.tar.tgz \
&& pecl install /tmp/redis.tar.tgz \
&& rm -rf /tmp/redis.tar.tgz \
&& docker-php-ext-enable redis
Faça o download das extensões do pacote de instalação
Algumas extensões são as duas principais maneiras não quiser instalar ou usar o código-fonte, você pode usar esse caminho. Na verdade, a essência do acima de dois métodos é para baixar e instalar métodos, assim eles terão phpize confirmar a existência de tais ordens, se não for configurado variáveis de ambiente phpize tem que escrever o caminho inteiro. , Mas também para ver se a instalação comando make
O seguinte é baixar swoft método de instalação de extensão swoole
RUN wget https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz -O swoole.tar.gz \
&& mkdir -p swoole \
&& tar -xf swoole.tar.gz -C swoole --strip-components=1 \
&& rm swoole.tar.gz \
&& ( \
cd swoole \
&& phpize \
&& ./configure --enable-mysqlnd --enable-sockets --enable-openssl --enable-http2 \
&& make -j$(nproc) \
&& make install \
) \
&& rm -r swoole \
&& docker-php-ext-enable swoole
O seguinte é o site oficial para baixar método de extensão php
FROM php:5.6-cli
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
instruções mais detalhadas, por favor espelho janela de encaixe php ilustrar
o uso deste método para observar o seguinte:
- último comando Run não pode ter uma barra, caso contrário, um erro, como o seguinte
&& docker-php-ext-enable xcache \
- O mais certeza de baixar os mesmos sufixos de pacotes e descompactado, ou descompactado quando vai reclamar
- O primeiro passo para os parâmetros wget é -O, não -o, maiúscula. O hup janela de encaixe está errado
problema
- pergunta 1
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
ERROR: `phpize' failed
Solutions, autoconf instalação. centos usar o yum, unbantu usando o apt-get, alpino é apk
RUN apk update \
&& apk add autoconf \
&& docker-php-ext-install pcntl \
&& pecl install redis-5.0.0 \
&& docker-php-ext-enable redis
COPY . /var/www/html
COPY ./docker/nginx-php7/sites-enabled /etc/nginx/sites-enabled
- Pergunta 2
erro em nenhum compilador C aceitável encontrado em $ PATH quando ./configure
configure: error: in `/var/www/html/redis':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
Solução; instalar o gcc
apk add gcc
- Pergunta 3
também está em erro quando ./configure, compilador C não pode criar executáveis
configure: error: in `/var/www/html/redis':
configure: error: C compiler cannot create executables
See `config.log' for more details
Desde que eu estou usando soluções de espelhamento alpino um estivador agradar referem-se a solução da seguinte forma:
apk add gcc g++
Mais de três problema é que tenho que encontrou durante a instalação Redis tempo prolongado, Dockerfile segue
FROM richarvey/nginx-php-fpm:latest
RUN apk update \
&& apk add autoconf \
&& apk add gcc g++\
&& apk add make \
&& docker-php-ext-install pcntl \
&& wget https://pecl.php.net/get/redis-5.0.1.tgz -O redis.tgz \
&& mkdir -p redis \
&& tar -xf redis.tgz -C redis --strip-components=1 \
&& rm redis.tgz \
&& ( \
cd redis \
&& phpize \
&& ./configure --with-php-config=/usr/local/bin/php-config \
&& make -j$(nproc) \
&& make install \
) \
&& rm -r redis \
&& docker-php-ext-enable redis
COPY . /var/www/html
COPY ./docker/nginx-php7/sites-enabled /etc/nginx/sites-enabled