首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Docker的PHP7高寒映像上安装php memcached扩展?

如何在Docker的PHP7高寒映像上安装php memcached扩展?
EN

Stack Overflow用户
提问于 2016-11-30 17:18:09
回答 3查看 37.9K关注 0票数 11

官方的php7码头映像有以下示例:

代码语言:javascript
运行
复制
FROM php:7.0-fpm
RUN apt-get update && apt-get install -y libmemcached-dev \
    && pecl install memcached \
    && docker-php-ext-enable memcached

我试着用FROM php:7.0-fpm-alpine

代码语言:javascript
运行
复制
RUN apk add --update --no-cache libmemcached-dev
RUN      pecl install memcached && docker-php-ext-enable memcached

PECL给出了这个错误:

pecl/memcached需要PHP (版本>= 5.2.0,版本<= 6.0.0,排除版本: 6.0.0),已安装版本为7.0.13

如何在高山上安装memcached php扩展?

EN

回答 3

Stack Overflow用户

发布于 2017-01-10 18:18:22

当前,dev:php 7分支包含此扩展的源。

要安装它,仍然可以使用docker-php-ext-*命令,但是您需要自己签出源代码。

底座安装

假设安装扩展所需的所有内容都已经安装,您可以这样做:

代码语言:javascript
运行
复制
RUN git clone -b php7 https://github.com/php-memcached-dev/php-memcached /usr/src/php/ext/memcached \
    && docker-php-ext-configure /usr/src/php/ext/memcached \
        --disable-memcached-sasl \
    && docker-php-ext-install /usr/src/php/ext/memcached \
    && rm -rf /usr/src/php/ext/memcached

这个块将克隆存储库,配置并安装扩展,然后自己清理。

先决条件

很可能您需要安装到包中才能构建扩展,我们可以通过以下操作添加和删除它们:

代码语言:javascript
运行
复制
ENV MEMCACHED_DEPS zlib-dev libmemcached-dev cyrus-sasl-dev git
RUN set -xe \
    && apk add --no-cache libmemcached-libs zlib \
    && apk add --no-cache \
        --virtual .memcached-deps \
        $MEMCACHED_DEPS \
    && git clone -b php7 https://github.com/php-memcached-dev/php-memcached /usr/src/php/ext/memcached \
    && docker-php-ext-configure /usr/src/php/ext/memcached \
        --disable-memcached-sasl \
    && docker-php-ext-install /usr/src/php/ext/memcached \
    && rm -rf /usr/src/php/ext/memcached \
    && apk del .memcached-deps

更新2017年5月17日

memcached已添加到php7 now的官方pecl库中(v3 -> php5 7/7.1,v2 -> php5)

这使得安装有点不同。

代码语言:javascript
运行
复制
FROM php:7.0-alpine

ENV MEMCACHED_DEPS zlib-dev libmemcached-dev cyrus-sasl-dev
RUN apk add --no-cache --update libmemcached-libs zlib
RUN set -xe \
    && apk add --no-cache --update --virtual .phpize-deps $PHPIZE_DEPS \
    && apk add --no-cache --update --virtual .memcached-deps $MEMCACHED_DEPS \
    && pecl install memcached \
    && echo "extension=memcached.so" > /usr/local/etc/php/conf.d/20_memcached.ini \
    && rm -rf /usr/share/php7 \
    && rm -rf /tmp/* \
    && apk del .memcached-deps .phpize-deps
票数 30
EN

Stack Overflow用户

发布于 2018-11-02 07:53:00

试试看。

代码语言:javascript
运行
复制
FROM php:7.2.10-fpm-alpine3.7


# Install PHP Extensions (igbinary & memcached)
RUN apk add --no-cache --update libmemcached-libs zlib
RUN set -xe && \
    cd /tmp/ && \
    apk add --no-cache --update --virtual .phpize-deps $PHPIZE_DEPS && \
    apk add --no-cache --update --virtual .memcached-deps zlib-dev libmemcached-dev cyrus-sasl-dev && \
# Install igbinary (memcached's deps)
    pecl install igbinary && \
# Install memcached
    ( \
        pecl install --nobuild memcached && \
        cd "$(pecl config-get temp_dir)/memcached" && \
        phpize && \
        ./configure --enable-memcached-igbinary && \
        make -j$(nproc) && \
        make install && \
        cd /tmp/ \
    ) && \
# Enable PHP extensions
    docker-php-ext-enable igbinary memcached && \
    rm -rf /tmp/* && \
    apk del .memcached-deps .phpize-deps
票数 21
EN

Stack Overflow用户

发布于 2022-05-24 16:51:59

这对我适用于Debian 11。

代码语言:javascript
运行
复制
FROM php:7.4.28-apache
RUN apt-get install -y libz-dev libmemcached-dev && \
    apt-get install -y memcached libmemcached-tools && \
    pecl install memcached && \
    docker-php-ext-enable memcached

您可以使用以下内容启动守护进程:

/etc/init.d/memcached start

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40894385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档