docker php安装redis扩展

news/2024/10/30 15:32:11/

有这么一个情况,我在docker中,安装了镜像,也启动了容器,容器有:nginx、mysql、redis、php

是一个基本的开发环境

容器启动成功,我们先连接一下,看看是否正常。

先保证这些都ok,我们再继续

 

mysql 使用Navicat Premium 连接成功!

 

redis 使用Redis Desktop Manager 连接成功!

网页访问localhost,index.php 设置为入口文件,代码就这样:

<?php
echo phpinfo();

页面上显示出了php相关的信息

那么到这里,我们就能确定,容器中的各项服务,都是正常运行的。

正题!

有这么一个问题啊,就是这个phpinfo 信息里,我们搜索redis,会发现并没有这个扩展,就会导致,php无法使用redis

所以,本期我们主要是做,如何在docker中安装php redis扩展

1. 先进入php容器

docker exec -it 容器ID bash

如果是windows环境,会提示:

the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'

我们只需要在前面加一个"winpty"即可:

winpty docker exec -it 容器ID bash

先看一下php扩展:

php -m

里面确实是没有redis的

2. 下载php redis扩展

wget https://pecl.php.net/get/redis-5.3.7.tgz

请注意,我这里下载的是 redis5.3.7,具体版本看实际情况

另外,我是将此文件,安装在 /tmp 目录里的,作为一个临时文件

3. 解压redis-5.3.7

先创建一个目录

mkdir redis

然后进行解压:

tar -zxvf redis-5.3.7.tgz -C redis

就将压缩包里的东西,都解压到了同目录下的redis目录里

我们可以输入 ls 看一下

ls

 进入 redis 看一下

#先进入redis目录
cd redis
#查看
ls 

能看到,redis-5.3.7就是我们解压好的

4. 执行phpize

先进入 redis-5.3.7目录

#查看当前位置
pwd

确定我们在这个目录位置,然后执行下面的命令:

/usr/local/bin/phpize

5. 指定php配置路径

先找到php-config 文件位置:

whereis php-config

然后执行:

./configure --with-php-config=/usr/local/bin/php-config

 最后出现这些就代表成功

creating libtool
appending configuration tag "CXX" to libtool
configure: patching config.h.in
configure: creating ./config.status
config.status: creating config.h

6. 编译安装

运行命令:

make

出现下面这样代表成功

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:- add LIBDIR to the `LD_LIBRARY_PATH' environment variableduring execution- add LIBDIR to the `LD_RUN_PATH' environment variableduring linking- use the `-Wl,--rpath -Wl,LIBDIR' linker flag- have your system administrator add LIBDIR to `/etc/ld.so.conf'See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------Build complete.
Don't forget to run 'make test'.

再运行命令:

make install

出现下面这样代表成功:

Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20210902/

7. php添加redis扩展

找到php配置文件

cd /usr/local/etc/php/conf.d

这里会看到 docker-php-ext-sodium.ini 直接进行编辑

vim docker-php-ext-sodium.ini

在下方加入 redis扩展:

extension=/usr/local/lib/php/extensions/no-debug-non-zts-20210902/redis.so

8. 再查看扩展

php -m

 

 

9. 重启容器

重启php容器后,我们再访问localhost看一下phpinfo里的信息

 搜索redis 能看到已经有这个扩展了

本期分享结束,喜欢的点个赞吧~


http://www.ppmy.cn/news/62098.html

相关文章

有三个线程T1,T2,T3,如何它们保证顺序执行?

目录 一、使用join方法 二、使用CountDownLatch&#xff08;闭锁&#xff09;&#xff1a; 三、使用单个线程池&#xff1a; 一、使用join方法 使用 join() 方法可以保证线程的顺序执行。在 Java 中&#xff0c;join() 方法是用来等待一个线程执行完成的方法&#xff0c;当调…

德国 DocuWare 文档管理软件平台

DocuWare 是一个先进的平台&#xff0c;可让您集中、快速、有效地管理、处理和利用业务信息。 我们的文档管理和工作流程解决方案的各项功能可以集成到任何 IT 系统中&#xff0c;可以数字化任何部门的手动或纸质业务流程。提高您公司的生产力&#xff0c;让您的团队更轻松地完…

《走进对象村4》之面向对象的第一大特性——封装

文章目录 &#x1f680;文章导读1、封装的概念2、访问限定修饰符3、如何进行封装4、封装的优点&#xff1a; &#x1f680;文章导读 在本篇文章中&#xff0c;将详细的对封装进行总结&#xff0c;文章仅仅是个人的一些理解&#xff0c;如果有错误的地方&#xff0c;还望指出看完…

易观千帆 | Q1运营报告:手机银行MAU超5.3亿,行业“内卷”超出想象

易观&#xff1a;由中国电子银行网、易观分析联合发布的“2023中国手机银行综合运营报告”显示&#xff1a;在经济企稳回升的大背景下&#xff0c;中国手机银行第一季度综合运营指数季度内呈平稳上升态势&#xff0c;手机银行活跃人数环比增幅逐月递增&#xff0c;促使活跃用户…

优先级队列priority_queue模拟实现

优先级队列priority_queue模拟实现 1.优先级队列介绍2.模拟实现 &#x1f31f;&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f;&#x1f31f; &#x1f680;&#x1f680;系列专栏&#xff1a;【C的学习】 &#x1f4dd;&#x1f4dd;本篇内容&#xff1a;…

ThingsBoard 接入摄像头方案

0、上图 废话不多说,先给大家来个效果图: 1、概述 最近,我在群里看到有很多兄弟向我咨询摄像头接入到tb的方案,这个就是找对人了,后续我会截图我当初做的东西,其实这个很简单,而且我这种方法是最好的,下面给大家一一道来。 我总结了下面几种情况,其实关键在于摄像头…

数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年4月刊

本文为大家整理了墨天轮数据社区2023年4月发布的优质技术文章&#xff0c;主题涵盖Oracle、MySQL、PostgreSQL等数据库的基础安装配置、故障处理、性能优化等日常实践操作&#xff0c;以及概念梳理、常用脚本、注意事项等总结记录&#xff0c;分享给大家&#xff1a; Oracle优…

Linux用户操作

查看用户&#xff1a;cat /etc/passwd(passwd是系统用户配置文件&#xff0c;存储了系统中所有用户的基本信息) 查看用户密码&#xff1a;cat /etc/shadow 查看用户组&#xff1a;cat /etc/group 查看用户组密码&#xff1a;cat /etc/gshaow 查看当前活跃的用户列表&#xff1a…