docker php安装redis扩展

news2024/11/17 5:54:38

有这么一个情况,我在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 variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during 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.coloradmin.cn/o/503523.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spring框架一】——Spring框架简介

系列文章目录 Spring框架简介 系列文章目录前言一、什么是Spring框架&#xff1f;二、Spring框架的优势1.简化开发流程&#xff1a;Spring提供了许多现成的功能&#xff0c;可以使得开发人员在构建应用程序时减少编写重复代码的工作。2.提高可维护性&#xff1a;Spring框架采用…

chatgpt搜索脚本

安装地址 https://greasyfork.org/zh-CN/scripts/459997 注意事项 &#xff01;&#xff01;注意&#xff1a;如果你在360相关浏览器上使用插件。360搜索将不会生效&#xff0c;因为已被浏览器禁用在so.com网址上使用。 &#xff01;&#xff01;尽量选择tampermonkey脚本管…

面试华为测试岗,收到offer后我却毫不犹豫拒绝了....

我大学学的是计算机专业&#xff0c;毕业的时候&#xff0c;对于找工作比较迷茫&#xff0c;也不知道当时怎么想的&#xff0c;一头就扎进了一家外包公司&#xff0c;一干就是2年。我想说的是&#xff0c;但凡有点机会&#xff0c;千万别去外包&#xff01; 在深思熟虑过后&am…

Android性能优化专家需求量大,人才缺口呼之欲出

前言 Android性能优化是Android应用开发中一个非常重要的环节。一款高性能、流畅的应用可以提高用户体验和满意度&#xff0c;提升应用的用户留存率和活跃度。而在今天&#xff0c;移动设备日趋普及&#xff0c;市场竞争日益激烈&#xff0c;优秀的性能已经成为了Android应用不…

Android安卓手机APP应用自有keystore签名证书怎么生成?

Android安卓keystore签名证书怎么生成&#xff1f; 1、安装JRE环境 Oracle官方下载jre安装包&#xff1a;https://www.caochai.com/article-4206.html &#xff0c;并记住安装的目录&#xff1b; 2、打开电脑上的cmd命令提示符工具&#xff0c;先进入jre安装目录&#xff1b…

宿主机(Windos)上文件上传至Ubuntu (linux)

因为我想在ubuntu20.04 上安装Sublime Text ,然而我不想在ubuntu 上下载安装因为太简单了。 我想在windos 上下载好linux 版本&#xff0c;然后发送到ubuntu上&#xff08;和ubuntu上下载安装多了一个上传的过程&#xff09;&#xff0c;我决定挑战一下 第一步进入VM 后打开你…

【Linux学习】多线程——互斥 | 线程安全

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《Linux学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 互斥 | 线程安全 &#x1f969;线程不安全&#x1f35a;线程不安全的原因 &#x1f969;线程互斥…

网络编程五--自定义应用层协议

写在前面 前面回声服务器/客户端介绍了如何通过对收发IO的控制实现回声服务器/客户端。 在服务器端应用层的处理&#xff08;协议&#xff09;可以看作是“回声操作”&#xff0c;即回发客户端发来的消息。而在客户端应用层的处理&#xff08;协议&#xff09;则只是简单显示…

Mysql获取指定时间范围数据

MySQL获取某个时间范围内的数据 TO_DAYS(date)函数。 to_days()&#xff1a;返回从0000年至当前日期的总天数。 目录 1、今天(TO_DAYS()) 2、今天昨天(TO_DAYS()) 3.近7天(DATE_SUB()) 5.本月(DATE_FORMAT()) 6.上一月(PERIOD_DIFF()) 7.本季度 8.上季度 9.本年 ​1…

MyBatis介绍、创建与使用

文章目录 一、MyBatis是什么二、学习 MyBatis 的意义三、配置 MyBatis 开发环境&#xff08;一&#xff09;配置 MyBatis 的相关依赖&#xff08;二&#xff09;配置数据库连接字符串和 MyBatis&#xff08;保存的 XML 目录&#xff09;1. 创建并编辑配置文件2. 配置 MyBatis 的…

[GFCTF 2021]ez_calc day3

目录 此时我脑袋产生了几个问题&#xff1a; 但是尝试了几个弱密码发现不对&#xff0c;找一下有没有代码泄露的点。 咦发现ctrlu查看的源码和f12显示的竟然不一样我丢&#xff0c;涨知识了。 js大小写有漏洞之前遇见过 <!--if(req.body.username.toLowerCase() ! admin…

Maven与spring学习

目录 该如何学习Maven&#xff0c;是先该学习spring还是先学习Maven 能讲一下该如何学习Maven吗&#xff1f; 火狐浏览器有能让网页翻译成为中文的插件吗 秋田和柴犬是同一个狗吗 该如何学习Maven&#xff0c;是先该学习spring还是先学习Maven 学习Maven可以与学习Spring同…

FPGA学习总结7:选择译码器实现

本博客以modelsim平台为例&#xff0c;实现了一个三八译码器&#xff1b; Step1.在modelsim创建新的工程&#xff1b; file-》new-》project&#xff0c;给工程命名&#xff0c;添加相应的文件&#xff1b; Step2.添加事先准备的源文件和Testbench文件&#xff1b; 3-8译码器…

p72 内网安全-域横向 CSMSF 联动及应急响应初识

数据来源 演示案例 MSF&CobaltStrike 联动 ShellWEB 攻击应急响应朔源-后门,日志WIN 系统攻击应急响应朔源-后门,日志,流量临时给大家看看学的好的怎么干对应 CTF 比赛 案例1 - MSF&CobaltStrike联动Shell CS下载与安装&#xff1a;cobaltstrike的安装与基础使用_co…

数字信号处理4

昨天是星期天&#xff0c;休息了一天&#xff0c;今天继续学习&#xff1a; 1、连续幅度信号的量化&#xff1a; 一个数字信号是一个数字序列&#xff0c;也就是说这个数字信号就可以用有限个数字来表示。 量化&#xff1a;通过把每个样本值表示为一个有限的数字&#xff0c…

CRM系统建设中需关注哪些关键节点?

随着数字化时代的到来&#xff0c;企业越来越依赖于互联网技术和数据管理&#xff0c;而客户关系管理&#xff08;CRM&#xff09;系统已经成为企业实现数字化转型和提升客户体验的关键工具之一。然而&#xff0c;在构建CRM系统的过程中&#xff0c;一些企业常常被一些关键节点…

键树(Keyword Tree)操作(插入删除查询)-双链树C语言实现_20230508

键树(Keyword Tree)操作&#xff08;插入/删除/查询)-双链树C语言实现_20230508 前言 键树称为数字查找树或者搜索提示树&#xff0c;树的度数d≥2&#xff0c;树中每个结点储存的不是完整的关键字&#xff0c;而是只含有组成关键字的符号&#xff0c;常见情况为字符或数字。…

wsl2 ubuntu ip 自动同步到windows端的vscode remote ssh(wsl2 ubuntu 静态ip 固定ip)

环境信息 ​ wsl2 中linux版本&#xff1a;ubuntu ​ windows版本&#xff1a; win10/win11 问题描述 最近装了wsl2&#xff0c;使用vscode远程连接wsl2时遇到了如下问题&#xff1a; 1、wsl2的ip无法固定 2、wsl2的ssh服务不能自动开启。 尝试了网上许多方法&#xff0c;…

Vue核心 Vue生命周期

1.18. Vue生命周期 1.18.1. 引出生命周期 生命周期 又名生命周期回调函数、生命周期函数、生命周期钩子是什么: Vue在关键时刻帮我们调用的一些特殊名称的函数。生命周期函数的名字不可更改&#xff0c;但函数的具体内容是程序员根据需求编写的。生命周期函数中的this指向是…

JUC并发编程与源码分析笔记13-AbstractQueuedSynchronizer之AQS

前置知识 公平锁和非公平锁可重入锁自旋思想LockSupport数据结构之双向链表设计模式之模板设计模式 AQS入门级别理论知识 是什么 AbstractQueuedSynchronizer&#xff1a;抽象的队列同步器。 用来实现锁或其他同步器组件的公共基础部分的抽象实现&#xff0c;是重量级基础框…