簡體   English   中英

Docker - 安裝php-memcached擴展無法正常工作?

[英]Docker - install php-memcached extension not working?

我一直在嘗試在我的php-5.6容器中安裝memcached,但是我無法讓它工作,因為我沒有在phpinfo()中看到memcached擴展,並且由於某種原因它正在抱怨它無法找到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

我的docker撰寫文件是

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致命錯誤:在第0行的Unknown中找不到類'memcache',同時從上游讀取響應頭,客戶端:192.168.99.1,服務器:www.example.dev,請求:“GET / search HTTP / 1.1 “,上游:”fastcgi://172.17.0.5:9000“,主持人:”192.168.99.100:7000“

這里出了什么問題?

php圖像提供了一個自定義編譯的PHP,但它基於Debian Jessie圖像(並使用Debian的存儲庫)。 使用apt-get install php5-memcached ,您可以為分發的PHP包安裝memcached擴展(在此過程中安裝)。

您需要通過PECL安裝memcached擴展(以及通過APT構建依賴關系):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM