如何使用cli启用php5-redis?

时间:2017-09-20 18:54:51

标签: php docker redis dockerfile

我有一个docker容器,我看到所有的php模块:

root@7b995118fc27:~# php -m
[PHP Modules]
Core
ctype
curl
date
dom
ereg
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

我们可以看到该列表中没有php5-redis。 当我尝试安装它时,我收到一条消息,说它已经安装:

root@7b995118fc27:~# apt-get install php5-redis
Reading package lists... Done
Building dependency tree       
Reading state information... Done
php5-redis is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

我的php版本是5.6

root@7b995118fc27:~# php -v
PHP 5.6.31 (cli) (built: Sep 15 2017 01:12:36) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

所以唯一的结论(如果我没错)是安装了php5-redis但没有启用。

这就是我在Dockerfile中的内容:

FROM php:5-apache


RUN a2enmod rewrite
RUN a2enmod expires
RUN service apache2 restart
RUN apachectl -M


RUN apt-get update
RUN apt-get install -y php5-redis
RUN apt-get install -y redis-server
RUN php -m


COPY src/ /var/www/html
EXPOSE 80

CMD ["redis-server"]

那么,如何在这种情况下启用php5-redis?

1 个答案:

答案 0 :(得分:1)

您需要添加以下语句才能启用redis扩展名

RUN cp /etc/php5/mods-available/redis.ini /usr/local/etc/php/conf.d && ln -s /usr/lib/php5/20131226/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-20131226/redis.so