用Docker安装PHP7 fpm和memcached

这真让我抓狂。

我有一个与Docker的应用程序,我想安装与php7-fpm的memcached。

根据官方docker文件,我在我的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 🙂

对不起,我还没有被允许“评论”任何地方,所以我不得不作为“答案”发表。 在构build我们的php7容器时,我们从头开始构buildmemcache扩展。 也许我们的接近可以帮助你,或者指向你正确的方向。 Dockerhub中的文档确实似乎是错误的,试过pecl,在这里也没有工作。 所以这就是它在我们的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

谢谢您的回复。

是的,似乎memcached与php7不兼容,需要另一种方式来安装它。

在Laradock回购上快速locking之后,我用这种方式解决了问题:

 # 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 🙂