nginx — Docker — установить расширение php-memcached не работает?

Я пытался установить memcached в мой контейнер php-5.6, однако я не могу заставить его работать, так как не вижу расширения memcached в phpinfo () и, к тому же, почему-то жалуется на то, что не может найти memcache.so в коде.

есть мой docker-файл для сборки php

FROM php:5.6-fpm
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng12-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

RUN docker-php-ext-install mysqli mbstring pdo_mysql

# Download and Installing php libraries
RUN apt-get install -y memcached
RUN apt-get -y install php-pear php5-dev php5-memcached geoip-bin geoip-database libgeoip-dev php5-geoip

# Download and Installing php libraries
RUN pecl install geoip

# Download and Installing git and vim
RUN apt-get -y install git gcc

RUN pwd
RUN git clone --depth=1 git://github.com/phalcon/cphalcon.git
WORKDIR /var/www/html/cphalcon/build
RUN ./install

EXPOSE 9000
EXPOSE 11211

COPY ./php-fpm.d/www.conf /etc/php-fpm.d/www.conf
COPY ./php.ini  /usr/local/etc/php/php.ini
COPY ./php-fpm.conf /etc/php-fpm.conf
COPY ./phalcon.ini /usr/local/etc/php/conf.d/phalcon.ini
COPY ./geoip.ini /usr/local/etc/php/conf.d/geoip.ini
COPY ./memcached.ini /usr/local/etc/php/conf.d/memcached.ini

И мой файл составления докера

nginx:
build: ./.config/etc/nginx/
ports:
- 7000:80
links:
- php
- memcached:memcached
volumes_from:
- app

memcached:
image: memcached:latest

php:
build: ./.config/etc/php/
expose:
- 9000
links:
- mysql
- memcached:memcached
volumes_from:
- app

app:
image: php:5.6-fpm
#image: php:7.0-fpm
volumes:
- ./:/var/www/vhosts/example.com/httpdocs
command: "true"

Ошибка, которую я получаю в коде:

[36; 1mnginx_1 | [0mPHP сообщение: PHP фатальная ошибка: класс ‘memcache’ не найден в Unknown в строке 0 «при чтении заголовка ответа из восходящего потока, клиент: 192.168.99.1, сервер: www.example.dev, запрос:» GET / search HTTP / 1.1 «, upstream:» fastcgi: //172.17.0.5: 9000 «, хост:» 192.168.99.100:7000 «

Что здесь не так?

2

Решение

php Изображения поставляются с скомпилированным PHP, но основаны на образе Debian Jessie (и используют репозитории Debian). С apt-get install php5-memcachedВы устанавливаете memcached расширение для пакета дистрибутива PHP (который устанавливается по пути).

Вам необходимо установить memcached расширение через PECL (и его зависимости сборки через APT):

RUN apt-get update
RUN apt-get install -y libz-dev libmemcached-dev && \
pecl install memcached && \
docker-php-ext-enable memcached
5

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector