当前位置: 首页 > 工具软件 > PHP Docker > 使用案例 >

docker 环境配置 php+nginx+redis

公孙联
2023-12-01

1、docker安装
docker pull php:8.1-fpm 拉取PHP镜像
sudo yum update 更新yum源

sudo yum install -y yum-utils device-mapper-persistent-data lvm2 安装utils等

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

官网地址:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
阿里云地址:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2、镜像拉取安装
docker pull nginx 拉取nginx镜像 不加版本号默认拉取最新
docker pull php 拉取PHP镜像 不加版本号默认拉取最新
docker pull mysql 拉取mysql镜像 不加版本号默认拉取最新
docker pull redis 拉取mysql镜像 不加版本号默认拉取最新
docker pull swoole 拉取mysql镜像 不加版本号默认拉取最新

3、创建PHP容器,创建nginx容器并指向PHP容器

docker run --name  php81-fpm -v D:/docker/www:/usr/share/nginx/html/www  -d php:8.1-fpm     

创建PHP容器,这里记得看一下自己镜像的版本 --name后接的是要起的容器名

docker run --name nginx_web -p 8085:80 -d -v D:/docker/www:/usr/share/nginx/html/www:ro -v D:/docker/nginx/conf/conf.d:/etc/nginx/conf.d:ro --link php81-fpm:php  nginx

运行nginx 指定容器端口 -d 后台运行(守护进程) –name nginx_web:将容器命名为nginx_web -v 将主机中当前指定目录 挂载到docker容器的对应目录 --link指向或者说链接 容器php81-fpm(注意这里用容器名)

docker ps -a 查看容器启用情况

4、安装PHP扩展
docker exec -it php81-fpm /bin/bash 进入容器实例

docker exec -it 容器名 /bin/bash 进入容器 linux是/bash win是/bin/bash

1)docker-php-ext-install mysql 安装mysql扩展
2)docker-php-ext-install mysqli 安装mysqli扩展

3)

pecl install lzf 
pecl install zstd       
pecl install igbinary
apt-get install -y  cmake
pecl install redis

apt-get install -y             \
        libcurl4-openssl-dev       \
        libssl-dev                 \
        supervisor                 \
        unzip                      \
        zlib1g-dev                 \
        --no-install-recommend

s 安装基础包 避免swoole、redis 安装报错

4)pecl install swoole 安装swoole扩展
5)安装redis扩展
docker-php-ext-install redis 一条命令搞定,若不成功采用以下步骤

cd 到根目录

mkdir /tmp      

创建一个下载文件存放文件夹

curl -L -o /tmp/redis.tar.gz https://codeload.github.com/phpredis/phpredis/tar.gz/5.3.7        

写这个笔记的时候目前最新5.3.7

cd /tmp   

然后

tar -zxvf redis.tar.gz   

进入tmp文件夹 解压下载的文件

mv phpredis-5.0.2 /usr/src/php/ext/

将文件迁移到php扩展文件夹下 若ext文件夹没有则自己创建一下

cd /usr/src/php/ext/phpredis-5.0.2

进入该文件夹

whereis phpize  

查询phpize文件位置一会要用路径进行执行

whereis php-config

查询php-config文件位置一会要用路径进行执行

/usr/local/bin/phpize

执行这个文件路径,会生成一些东西(根据自己服务器实际情况变更路径,请勿死脑筋copy)

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

执行该命令(根据自己服务器实际情况变更路径,请勿死脑筋copy)

make && make install  

进行创建并安装
在php.ini里增加extension=redis.so 后重启PHP

5、安装redis
docker pull redis 拉取redis镜像

docker run -p 6379:6379 --name redisOne -v D:/docker/redis/data:/data -v D:/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf

创建一个redis容器并指定现实文件夹(自行创建注意文件夹位置规范) 关联docker文件夹

docker exec -it 容器名 /bin/bash  

进入redis容器

cat /etc/hosts 获取当前redis IP

在PHP根目录创建文件

$redis = new Redis();
$redis->connect('172.17.0.4', 6379);
$count = $redis->exists('count') ? $redis->get('count') : 1;
echo $count;
echo $redis->get("guanliyang");

执行返回 秒数则执行成功
至此docker nginx+php+mysql+redis+swoole初步配置完成

 类似资料: