2016-09-06 6 views
0

это сводит меня с ума.Установите PHP7 fpm и memcached с помощью Docker

У меня есть приложение с Docker, и я пытаюсь установить memcached с php7-fpm.

По official docker documentation у меня в Dockerfile:

# PHP Version 
FROM php:7.0-fpm 

... 

# Install Memcached 
RUN apt-get install -y libmemcached-dev && \ 
pecl install memcached && \ 
docker-php-ext-enable memcached 

Но я получил эту ошибку:

pecl/memcached requires PHP (version >= 5.2.0, version <= 6.0.0, excluded versions: 6.0.0), installed version is 7.0.9 

Я не хочу, чтобы переключиться на PHP 5.6. Есть идеи? ...

Спасибо заранее, ребята !!!

M :)

ответ

3

К сожалению, я пока не разрешено «комментарий» в любом месте, так что я должен отправить это как «ответ». Мы строим расширение memcache с нуля при создании нашего контейнера php7. Возможно, наш подход помогает вам или указывает на правильное направление. Документация в Dockerhub действительно кажется ошибочной, проверенной, и она не сработала и здесь. Так вот как это выглядит в нашем Dockerfile:

RUN apt-get update && apt-get install -y \ libmemcached11 \ libmemcachedutil2 \ libmemcached-dev \ libz-dev \ git \ && cd /root \ && git clone -b php7 https://github.com/php-memcached-dev/php-memcached \ && cd php-memcached \ && phpize \ && ./configure \ && make \ && make install \ && cd .. \ && rm -rf php-memcached \ && echo extension=memcached.so >> /usr/local/etc/php/conf.d/memcached.ini \ && apt-get remove -y build-essential libmemcached-dev libz-dev \ && apt-get remove -y \ libmemcached-dev \ libz-dev \ && apt-get autoremove -y \ && rm -rf /var/lib/apt/lists/* \ && apt-get clean

1

спасибо за ваш ответ.

Да, кажется, что memcached несовместим с php7 и нужен другой способ его установки.

После быстрого замок на Laradock repo я решил таким образом, я отправляю код:

# PHP Version 
FROM php:7.0-fpm 

# Install the PHP extensions we need 
RUN apt-get update && \ 
apt-get install -y --no-install-recommends \ 
    curl \ 
    libmemcached-dev \ 
    libz-dev \ 
    libpq-dev \ 
    libjpeg-dev \ 
    libpng12-dev \ 
    libfreetype6-dev \ 
    libicu-dev \ 
    libssl-dev \ 
    libmcrypt-dev && \ 
    docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr && \ 
    docker-php-ext-install gd mysqli opcache intl 

    ..... 

# Install Memcached 
RUN 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 

Может быть может быть полезным для кого-то :)

Еще раз спасибо

M :)

 Смежные вопросы

  • Нет связанных вопросов^_^