Uncaught Error: Class 'Memcached' not found in docker container
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 文件启动。但是当我请求我的应用程序页面时,我收到此错误:
Uncaught Error: Class 'Memcached' not found in ...
我该如何解决这个问题?
您可能缺少 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
之后
我正在尝试将 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 文件启动。但是当我请求我的应用程序页面时,我收到此错误:
Uncaught Error: Class 'Memcached' not found in ...
我该如何解决这个问题?
您可能缺少 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
之后