docker php 容器安装redis和mongodb扩展

本文提供了在PHP环境中安装Redis和MongoDB扩展的详细步骤,包括进入Docker容器、安装依赖、编译扩展、启用配置以及重启服务。通过这些步骤,开发者可以成功地在PHP8.2版本中安装并验证phpredis和mongodb扩展的安装完成。

一、背景

很多项目(几乎所有)都有用到redis和mongodb来存储数据,php没有自带这些扩展,需要手动安装

二、PHP redis扩展安装步骤

这里以php8.2版本容器为例,以下命令中‘php82’均为容器名称,需要更换为你自己的实际名称,使用容器ID也可以

1. 进入容器

docker exec -it php82 /bin/bash

2. 安装Redis依赖库

apt-get update
apt-get install -y git unzip
apt-get install -y git build-essential

 3. 克隆phpredis源代码并切换到合适的分支(根据你的PHP版本选择)

git clone https://github.com/phpredis/phpredis.git
cd phpredis

4. 构建和安装扩展

phpize
./configure
make && make install

5. 在PHP配置文件中启用扩展

echo "extension=redis.so" >> /usr/local/etc/php/conf.d/docker-php-ext-redis.ini

6. 重新启动 php-fpm 服务

docker restart php82

完成上面步骤,使用 `php -m | grep redis` 查看是否安装完成

如上图所示,即 php redis 扩展安装完成
 

三、PHP mongodb扩展安装步骤

1. 进入容器

docker exec -it php82 /bin/bash

2. 安装Redis依赖库

apt-get install -y libssl-dev

3. 下载并编译MongoDB扩展

pecl install mongodb

4. 在PHP配置文件中启用MongoDB扩展

echo "extension=mongodb.so" >> /usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini

5. 重新启动 php-fpm 服务

docker restart php82

完成上面步骤,使用 `php -m | grep mongodb` 查看是否安装完成

 如上图所示,即 php mongodb 扩展安装完成

PS:

如果extension_dir和php使用的目录不同,做如下操作:

php -i | grep extension_dir

会得到扩展所在绝对目录路径

查看php配置文件具体位置

php --ini

注意使用Loaded Configuration File地址,编辑php配置文件

sudo vim /usr/local/php8.2/etc/php.ini

新增extension扩展时,可以写上扩展所在的绝对路径:

查看扩展安装是否成功

php -m

 

至此,小功告成,继续下一步探索吧~

### 使用 Docker 部署 Redis MongoDB 的方法 #### 创建必要的目录结构 为了确保数据持久化以及配置文件的安全存储,建议先创建相应的挂载点。对于 MongoDB 可以执行如下命令来准备所需路径: ```bash mkdir -p /mnt/data/docker/mongo-cluster/mongos/{data,conf} ``` 这一步骤同样适用于 Redis 数据库,可以参照相同的方式建立对应的文件夹。 #### 安装 Docker 环境 在目标机器上安装最新的 Docker 版本是必不可少的前提条件之一。可以通过 YUM 包管理器来进行操作: ```bash sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` 完成上述软件包的安装之后,记得启动并设置 Docker 开机自启服务[^2]。 #### 启动 Redis 实例 通过指定容器名称、端口映射、内存限制以及其他参数运行 Redis 容器实例。下面是一个具体的例子说明如何利用官方镜像快速搭建一个带有特定配置项的服务节点: ```bash docker run --restart=always \ --log-opt max-size=100m \ --log-opt max-file=2 \ -p 6379:6379 \ --name redis \ -v /data/sql/redis/etc/redis/redis.conf:/etc/redis/redis.conf \ -v /data/sql/redis/data:/data \ -d redis:6.2.7-alpine3.16 \ redis-server /etc/redis/redis.conf ``` 此命令不仅设置了日志轮转策略还指定了主机上的配置文件位置以便于后续调整优化[^3]。 #### 运行 MongoDB 服务 同样的方式也可以应用于 MongoDB 的部署过程之中。这里给出了一条完整的指令用于启动单节点模式下的数据库进程: ```bash sudo docker run --name some-mongo \ -p 27017:27017 \ -v /data/sql/mongo/data/db:/data/db \ -d mongo:8.0.3 ``` 这条语句实现了基本功能的同时也保障了外部访问权限的有效控制。 #### 自定义网络与资源分配 如果希望进一步增强系统的稳定性性能表现,则可以根据实际需求构建专属虚拟子网,并合理规划各组件间的通信机制及硬件资源配置情况。例如,在启动 Redis 时还可以额外加入 `--net` 参数关联到预先设定好的桥接网络;同时借助 `-m` 标记限定最大可用 RAM 大小等措施提升整体效率[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值