簡體   English   中英

未捕獲的錯誤:在docker容器中找不到類“ Memcached”

[英]Uncaught Error: Class 'Memcached' not found in docker container

我正在嘗試將php7 slim應用程序部署到docker中。 這是我的Dockerfile的樣子:

FROM php:7.1.2-apache

RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
    php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" && \
    php composer-setup.php && \
    php -r "unlink('composer-setup.php');" && \
    mv composer.phar /usr/local/bin/composer


ADD sourcecode  /var/www/html

RUN composer install
RUN sed -i 's/DocumentRoot.*$/DocumentRoot \/var\/www\/html\/src/' /etc/apache2/sites-enabled/000-default.conf

這是Memcached初始化的代碼片段

<?php
global $config;

$cache_settings = $config['settings']['memcached'];

$memcached = new Memcached;
$memcached->addServer($cache_settings['host'], $cache_settings['port']) or die ("CANNOT connect to memcached");

我也有Memcached和Mysql容器正在運行。 所有人員都通過docker-compose文件啟動。 但是,當我請求應用程序頁面時,會出現以下錯誤:

未捕獲的錯誤:在類中找不到類“ Memcached”

如何解決此問題?

您可能缺少memcached軟件包。

您可以按以下方式安裝它:apt-get install memcached

嘗試添加:

RUN apt-get update && apt-get install -y libz-dev libmemcached-dev && rm -r /var/lib/apt/lists/* RUN pecl install memcached RUN echo extension=memcached.so >> /usr/local/etc/php/conf.d/memcached.ini

FROM php:7.1.2-apache

暫無
暫無

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

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