躺着看云飘 發表於 2023-8-22 21:20:00

docker 搭建php环境(踩坑经验!!)

<div>
<p><span style="color: rgba(51, 102, 255, 1); font-size: 16px"><strong>本次安装的推荐配置:</strong></span></p>
<ul>
<li><span style="font-size: 16px">CentOS 7 (迅雷种子 http://ftp.nara.wide.ad.jp/pub/Linux/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.torrent)</span></li>
<li><span style="font-size: 16px">nginx 1.24.0</span></li>
<li><span style="font-size: 16px">mysql 5.7.43</span></li>
<li><span style="font-size: 16px">php 7.4.3-fpm</span></li>
<li><span style="font-size: 16px">redis 7.2.0</span>&nbsp;&nbsp;</li>
</ul>
</div>
<div><strong><span style="color: rgba(255, 0, 0, 1)">2023年12月21日:后面发现,一定要加上 docker run的时候一定要加上 --ip 172.18.10.1用来固定ip,不然重启变变,这样容器新增端口后,不用重新run,直接端口调用全部端口。</span></strong></div>
<div>&nbsp;</div>
<div><span style="font-size: 16px"><strong><span style="color: rgba(51, 102, 255, 1)">一、虚拟机<strong>安装</strong><strong>centos7</strong></span></strong></span></div>
<div>vm虚拟机需要4g内存,网络使用桥接模式设置静态ip、50G硬盘、1cpu、2核<span style="color: rgba(255, 0, 0, 1)">(踩坑经验:太低配置重启后会开不了机)</span></div>
<div>https://blog.csdn.net/Z1576796635/article/details/128878299</div>
<div>https://blog.csdn.net/CLONS/article/details/130012899</div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230922145449084-1400316806.png"></p>
<p>&nbsp;</p>
</div>
<div>&nbsp;</div>
<div><span style="color: rgba(0, 0, 0, 1)">开机后</span></div>
<div>
<div><code>uname -r </code>查看版本要在3.10以上</div>
<div>
<div>更新系统组件 <code>yum -y update</code></div>
<div>&nbsp;</div>
<div>
<p>yum报错:Could not retrieve mirrorlist&nbsp;</p>
<p>备份/etc/yum.repos.d/CentOS-Base.repo后执行&nbsp;</p>
<p>wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo</p>
</div>
<div>&nbsp;</div>
<div><span style="font-size: 16px"><strong><span style="color: rgba(51, 102, 255, 1)">二、安装docker</span></strong></span></div>
<div>
<div>删除旧docker</div>
<div>
<div><code>yum remove docker docker-common docker-selinux docker-engine</code></div>
<div>
<div>安装工具</div>
<div>
<div><code>yum install -y yum-utils device-mapper-persistent-data lvm2</code></div>
<div>
<div>配置docker的yum源</div>
<div>
<div><code>yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo</code></div>
<div>
<pre>国内:sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo</pre>
</div>
<div>
<div>安装docker</div>
<div>
<div><code>sudo yum install -y docker-ce</code></div>
<div>
<div>启动docker</div>
<div>
<div><code>systemctl start docker</code></div>
<div>
<div>设置开机启动</div>
<div>
<div><code>systemctl enable docker</code></div>
<div>&nbsp;</div>
<div>
<div>设置镜像国内加速<span style="color: rgba(255, 0, 0, 1)">(踩坑经验:设置多个源头,不然会很慢)</span></div>
<div><span style="color: rgba(0, 0, 0, 1)">创建文件</span></div>
<div>
<div><code>sudo mkdir -p /etc/docker</code></div>
<div>输入源头url</div>
<div><code>tee /etc/docker/daemon.json &lt;&lt;-'EOF'</code></div>
<div><code>{</code></div>
<div><code>"registry-mirrors": [</code></div>
<div><code>"https://mirror.ccs.tencentyun.com",</code></div>
<div><code>"https://docker.mirrors.ustc.edu.cn/",</code></div>
<div><code>"https://hub-mirror.c.163.com/",</code></div>
<div><code>"https://reg-mirror.qiniu.com/"</code></div>
<div><code>]</code></div>
<div><code>}</code></div>
<div><code>EOF</code></div>
<div>&nbsp;</div>
<div>2024年7月5日:上述源无效,可去阿里云搜“容器镜像服务”,管理,获得专属链接</div>
<div>&nbsp;</div>
<div>重启配置</div>
<div><code>sudo systemctl daemon-reload</code></div>
<div>重启docker</div>
<div><code>sudo systemctl restart docker</code></div>
<div>&nbsp;</div>
<div>
<div>设置容器局域网,容器间相互访问 <span style="color: rgba(255, 0, 0, 1)">(心得:容器互相访问,不用通过宿主机,更快)</span></div>
<div>
<div><code>docker network create my_network</code></div>
<div>查看局域网是否创建成功</div>
<div><code>docker network ls</code></div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202308/663897-20230822210343125-1987057067.png"></p>
<p>&nbsp;</p>
<p><span style="color: rgba(51, 102, 255, 1); font-size: 16px"><strong>三、安装php</strong></span></p>
<p>下载php镜像</p>
<div><code>docker pull php:7.4.3-fpm</code>&nbsp;<span style="color: rgba(255, 0, 0, 1)">(踩坑经验:后面要带fpm)</span></div>
<div>&nbsp;</div>
<div>使用镜像生成临时容器 ,名为:test_php7.4.3,用来拷贝配置文件<span style="color: rgba(255, 0, 0, 1)">(踩坑经验:空文件夹做共享,会将容器的配置文件清空)</span></div>
<div>
<div><code>docker run -it --name test_php7.4.3-fpm -d php:7.4.3-fpm&nbsp;</code></div>
<div>&nbsp;</div>
<div>使用 docker ps 命令查看是否创建成功</div>
<div>&nbsp;</div>
<div>
<div>创建需要被共享的文件夹</div>
<div><code>mkdir -p /data/php7.4.3 &amp;&amp; cd /data/php7.4.3</code></div>
</div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202308/663897-20230822211007815-1340932968.png"></p>
<p>&nbsp;</p>
<div>将镜像内文件拷贝出来</div>
<div>(左边是容器,会连同文件夹一起复制过去,右边是放进哪个文件夹里)</div>
<div><code>docker cp [临时容器id]:/usr/local/etc /data/php7.4.3</code></div>
<div>&nbsp;</div>
<div>
<div>启动正式容器</div>
<div><code>docker run &nbsp;\</code></div>
<div><code>--network my_network &nbsp;\</code></div>
<div><code>--name prod_7.4.3-fpm &nbsp;\</code></div>
<div><code>--restart=always &nbsp;\</code></div>
<div><code>-v /data/php7.4.3/etc:/usr/local/etc \</code></div>
<div><code>-v /data/nginx1.24.0/html:/var/www/html \</code></div>
<div><code>-d php:7.4.3-fpm</code></div>
<div>备注:--restart=always 重启自动启动容器</div>
<div>&nbsp;</div>
<div>
<div>没问题后,停止临时镜像,并删除临时镜像</div>
<div><code>docker stop [临时容器id]</code></div>
<div><code>docker rm [临时容器id]</code></div>
<div>&nbsp;</div>
<div>
<div>php开通 mysql pdo 扩展,php连接mysql会用到</div>
<div>进入php容器后</div>
<div>查看php扩展模块</div>
<div><code>php -m</code></div>
<div>安装扩展</div>
<div><code>docker-php-ext-install pdo pdo_mysql&nbsp;</code></div>
</div>
</div>
</div>
</div>
</div>
<p><code class="language-php">docker<span class="token operator">-php<span class="token operator">-ext<span class="token operator">-configure pcntl <span class="token operator">--enable<span class="token operator">-pcntl <span class="token operator">&amp;&amp; docker<span class="token operator">-php<span class="token operator">-ext<span class="token operator">-install pcntl</span></span></span></span></span></span></span></span></span></code></p>
<p><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator">docker-php-ext-install&nbsp; bcmath</span></span></span></span></span></span></span></span></span></p>
<p><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator"><span class="token operator">docker-php-ext-install gd</span></span></span></span></span></span></span></span></span></p>
<p><span style="font-size: 16px"><strong><span style="color: rgba(51, 102, 255, 1)">四、安装nginx</span></strong></span></p>
<p><span style="color: rgba(255, 0, 0, 1)">理论:全部容器不做端口映射!!用nginx转发,如3306,最好把nginx装在宿主机上!!!</span></p>
<p><span style="color: rgba(0, 0, 0, 1)">下载镜像</span></p>
<div><code><span style="color: rgba(0, 0, 0, 1)">docker pull nginx:1.24.0</span></code></div>
<div>&nbsp;</div>
<div><span style="color: rgba(0, 0, 0, 1)"><span style="color: rgba(0, 0, 0, 1)">镜像生成临时容器</span></span>(用来拷贝配置文件)</div>
<div>
<div><code>docker run -it --name test_nginx1.24.0 -d nginx:1.24.0</code></div>
<div>&nbsp;</div>
<div>
<div>使用docker ps&nbsp; 查询是否启动成功</div>
<div>&nbsp;</div>
<div>
<div>创建需要被共享的文件夹</div>
<div><code>mkdir -p /data/nginx1.24.0/conf/cert</code></div>
<div><code>mkdir -p /data/nginx1.24.0/conf/conf.d</code></div>
<div><code>mkdir -p /data/nginx1.24.0/html</code></div>
<div><code>mkdir -p /data/nginx1.24.0/log</code></div>
<div><code>mkdir -p /data/nginx1.24.0/ssl</code></div>
<div>&nbsp;</div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202308/663897-20230822211634189-1579449312.png"></p>
<p>&nbsp;</p>
</div>
</div>
<div>&nbsp;</div>
<div>
<div>将镜像内文件拷贝出来</div>
<div>(左边是容器,会连同文件夹一起复制过去,右边是放进哪个文件夹里)</div>
<div><code>docker cp [临时容器id]:/etc/nginx/conf.d &nbsp;/data/nginx1.24.0/conf</code></div>
<div><code>docker cp [临时容器id]:/etc/nginx/nginx.conf /data/nginx1.24.0/conf/nginx.conf</code></div>
<div><code>docker cp [临时容器id]:/usr/share/nginx/html /data/nginx1.24.0</code></div>
<div>&nbsp;</div>
<div>
<div>启动正式容器</div>
<div><code>docker run &nbsp;\</code></div>
<div><code>--network my_network &nbsp;\</code></div>
<div><code>-p 80:80 \</code></div>
<div><code>-p 443:443 \</code></div>
<div><code>--name prod_nginx1.24.0 &nbsp;\</code></div>
<div><code>--restart=always &nbsp;\</code></div>
<div><code>-v /data/nginx1.24.0/conf/nginx.conf:/etc/nginx/nginx.conf \</code></div>
<div><code>-v /data/nginx1.24.0/conf/cert:/etc/nginx/cert \</code></div>
<div><code>-v /data/nginx1.24.0/ssl:/etc/nginx/ssl/ &nbsp;\</code></div>
<div><code>-v /data/nginx1.24.0/conf/conf.d:/etc/nginx/conf.d \</code></div>
<div><code>-v /data/nginx1.24.0/log:/var/log/nginx \</code></div>
<div>-v /data/nginx1.24.0/html:/var/www/html \</div>
<div><code>-d nginx:1.24.0</code></div>
<div>备注:--restart=always 重启自动启动容器</div>
<div>-v /data/nginx1.24.0/html:/usr/share/nginx/html \ 改成&nbsp;&nbsp;-v /data/nginx1.24.0/html:/var/www/html \ 跟php目录一样,配置网站时不用两个地址</div>
<div>&nbsp;</div>
<div>
<div>没问题后,停止临时镜像,并删除临时镜像</div>
<div><code>docker stop [临时容器id]</code></div>
<div><code>docker rm [临时容器id]</code></div>
<div>&nbsp;</div>
<div>如果要新增映射端口,可以进入到nginx容器,后面那个自己修改</div>
<div>/var/lib/docker/containers/61b0179cd4493b7a690e470c63b3fc34dd6bb09f4d5d09a1c91e9c3f38b6511f</div>
<div><span style="color: rgba(255, 0, 0, 1)">或者使用命令</span></div>
<div>
<p><span style="color: rgba(255, 0, 0, 1)">例如,假设已启动的容器的名称为 "my-container",要将容器的 80 端口映射到宿主机的 8080 端口上,可以执行以下命令:</span></p>
<div class="code-toolbar">
<pre class="language-bash"><span style="color: rgba(255, 0, 0, 1)"><code class="language-bash"><span class="token function">docker container update --publish-add <span class="token number">8080:80 my-container</span></span></code></span></pre>
</div>
</div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230918113120429-754248870.png"></p>
<p>&nbsp;修改这两个文件</p>
</div>
<div>&nbsp;</div>
</div>
</div>
</div>
</div>
</div>
<p><span style="font-size: 16px"><strong><span style="color: rgba(51, 102, 255, 1)">五、安装mysql</span></strong>&nbsp;</span></p>
<div>下载镜像&nbsp;</div>
<div><code>docker pull mysql:5.7.43</code></div>
<div>&nbsp;</div>
<div>
<div>开启临时镜像(用来拷贝配置文件)</div>
<div><code>docker run -it --name test_mysql5.7.43 -e MYSQL_ROOT_PASSWORD=root -v /etc/localtime:/etc/localtime:ro -d mysql:5.7.43</code></div>
<div>&nbsp;</div>
<div>
<div>创建需要被共享的文件夹</div>
<div><code>mkdir -p /data/mysql5.7.43/conf</code></div>
<div>mkdir -p /data/mysql5.7.43/log</div>
<div>mkdir -p /data/mysql5.7.43/lib/mysql</div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230913164518916-1563231289.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div>将镜像内文件拷贝出来</div>
<div>(左边是容器,会连同文件夹一起复制过去,右边是放进哪个文件夹里)</div>
<div><code>docker cp [临时容器id]:/var/log /data/mysql5.7.43</code></div>
<div><code>docker cp [临时容器id]:/var/lib/mysql /data/mysql5.7.43/lib</code></div>
<div><code>docker cp [临时容器id]:/etc/mysql/conf.d /data/mysql5.7.43/conf</code></div>
<div><code>docker cp [临时容器id]:/etc/mysql/mysql.conf.d /data/mysql5.7.43/conf</code></div>
<div>&nbsp;</div>
<div>
<div>启动正式容器</div>
<div><code>docker run &nbsp;\</code></div>
<div><code>--network my_network &nbsp;\</code></div>
<div><code>--name prod_mysql5.7.43 &nbsp;\</code></div>
<div><code>--restart=always &nbsp;\</code></div>
<div><code>-p 3306:3306 &nbsp;\</code></div>
<div><code>-v /data/mysql5.7.43/log:/var/log \</code></div>
<div><code>-v /data/mysql5.7.43/lib/mysql:/var/lib/mysql \</code></div>
<div><code>-v /data/mysql5.7.43/conf:/etc/mysql \</code></div>
<div><code>-v /etc/localtime:/etc/localtime:ro \</code></div>
<div><code>-e MYSQL_ROOT_PASSWORD=root123456 \</code></div>
<div><code>-d mysql:5.7.43</code>&nbsp;</div>
<div>&nbsp;</div>
<div>备注:--restart=always 重启自动启动容器</div>
<div>&nbsp;</div>
<div>如果root密码错误,用root登录后修改</div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230913173545358-632520492.png"></p>
</div>
<div>&nbsp;</div>
<div>
<div>没问题后,停止临时镜像,并删除临时镜像</div>
<div><code>docker stop [临时容器id]</code></div>
<div><code>docker rm [临时容器id]</code></div>
<div>&nbsp;</div>
<div>
<div># 进入容器</div>
<div><code>docker exec -it [容器id] bash</code></div>
<div>mysql -uroot -p</div>
<div># 创建用户并开启远程登录</div>
<div><code>CREATE USER 'user_tp'@'%' IDENTIFIED BY 'user_tp_123456';</code></div>
<div># 创建数据库并设置字符集</div>
<div><code>CREATE DATABASE `tp_test` CHARACTER SET 'utf8mb4';</code></div>
<div># 给账号授权数据库</div>
<div><code>GRANT ALL PRIVILEGES ON `tp_test`.* TO 'user_tp'@'%';</code></div>
<div># 刷新权限</div>
<div><code>FLUSH PRIVILEGES;</code></div>
<div>&nbsp;</div>
<div>或者直接将root开启远程连接</div>
<div>mysql -uroot -p</div>
<div>
<pre class="prettyprint prettyprinted"><span class="pln">GRANT ALL ON <span class="pun">*.*<span class="pln"> TO <span class="str">'root'<span class="pun">@<span class="str">'%'<span class="pln"> IDENTIFIED BY <span class="str">'root123456&nbsp;'<span class="pln"> WITH GRANT OPTION<span class="pun">;<br></span></span></span></span></span></span></span></span></span></span></pre>
<pre class="prettyprint prettyprinted"><span class="pln">FLUSH PRIVILEGES<span class="pun">;</span></span></pre>
<pre class="prettyprint prettyprinted"><span class="pln"><span class="pun"><span class="pln"><span class="str"><span class="pun"><span class="str"><span class="pln"><span class="str"><span class="pln"><span class="pun">&nbsp;</span></span></span></span></span></span></span></span></span></span></pre>
</div>
<div>&nbsp;</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><span style="color: rgba(0, 0, 0, 1)">使用远程工具连接mysql,并建立一个user用户表,后面用来测试</span></p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202308/663897-20230822213057725-378475638.png"></p>
<p>&nbsp;</p>
<p>&nbsp;如果需要开启binlog日志</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230922174738198-1064251723.png"></p>
<p>&nbsp;</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230922174748353-1242125323.png"></p>
<p>&nbsp;我一般不开启</p>
<p>&nbsp;</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230922174717155-564713565.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: rgba(51, 102, 255, 1); font-size: 16px"><strong>六、运行php项目</strong></span></p>
<p>将php项目通过ftp上传到&nbsp;&nbsp;/data/nginx1.24.0/html (上面配置了这个地址会共享到容器内对应的文件夹)</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202308/663897-20230822212330356-916042897.png"></p>
<p>&nbsp;</p>
<p>&nbsp;新增一个网站配置</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202308/663897-20230822212436951-1765462940.png"></p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230906220507297-2023381025.png"></p>
<p>&nbsp;</p>
<p>下图这样配置,带不带index.php都可以访问,上面那个带了访问不了。</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230907000815078-200989874.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>hosts新增一行 (你的windows电脑)</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202308/663897-20230822212743733-1766006096.png"></p>
<p>&nbsp;</p>
<p>重启docker</p>
<p><code>systemctl restart docker</code></p>
<p>&nbsp;</p>
<p>在php项目中,新增一个访问数据库的代码</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202308/663897-20230822213159694-281235679.png"></p>
<p>&nbsp;项目连接mysql&nbsp;</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202308/663897-20230822213244639-481410783.png"></p>
<p>&nbsp;</p>
<p>打开浏览器测试</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202308/663897-20230822213332147-854918563.png"></p>
<p>&nbsp;</p>
<p><span style="color: rgba(51, 102, 255, 1); font-size: 18px"><strong>安装redis</strong></span></p>
<div>docker pull redis:7.2.0</div>
<div>
<div>mkdir -p /data/redis7.2.0/conf</div>
<div>mkdir -p /data/redis7.2.0/data</div>
<div>touch&nbsp;/data/redis7.2.0/conf/redis.conf</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>
<div>启动正式容器</div>
<div>docker run &nbsp;\</div>
<div>--network my_network &nbsp;\</div>
<div>--name prod_redis7.2.0 &nbsp;\</div>
<div>--restart=always &nbsp;\</div>
<div>--log-opt max-size=100m &nbsp;\</div>
<div>--log-opt max-file=2 &nbsp;\</div>
<div>-p 6379:6379 &nbsp;\</div>
<div>-v /data/redis7.2.0/conf/redis.conf:/etc/redis/redis.conf&nbsp; \</div>
<div>-v /data/redis7.2.0/data:/data &nbsp;\</div>
<div>-d redis:7.2.0 \</div>
<div>redis-server /etc/redis/redis.conf \</div>
<div>--appendonly yes \</div>
<div>--requirepass redismm123456</div>
<div>备注:--restart=always 重启自动启动容器<span style="font-style: italic">&nbsp;</span></div>
<div>
<div><ol>
<li>–restart=always 总是开机启动</li>
<li>–log是日志方面的</li>
<li>-p 6379:6379 将6379端口挂载出去</li>
<li>–name 给这个容器取一个名字</li>
<li>-v 数据卷挂载</li>
</ol></div>
<div>
<ul>
<li>/home/redis/myredis/myredis.conf:/etc/redis/redis.conf 这里是将 liunx 路径下的myredis.conf 和redis下的redis.conf 挂载在一起。</li>
<li>/home/redis/myredis/data:/data 这个同上</li>
</ul>
</div>
<div><ol start="6">
<li>-d redis 表示后台启动redis</li>
<li>redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf 也就是liunx下的/home/redis/myredis/myredis.conf</li>
<li>–appendonly yes 开启redis 持久化</li>
<li>–requirepass 000415 设置密码&nbsp;(如果你是通过docker 容器内部连接的话,就随意,可设可不设。但是如果想向外开放的话,一定要设置,我被搞过,可以看这篇文章“阿里云服务器中毒‘Kirito666’经历”)</li>
</ol>
<div>可视化工具(在我阿里云盘)<br></div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230906212130441-789577958.png"></p>
<p>&nbsp;</p>




























</div>




























</div>




























</div>




























</div>




























</div>
<p>&nbsp;</p>
<div>安装php-redis 扩展</div>
<div>先下载php-redis扩展,不像pdo自带,这个需要自己下载</div>
<div>https://pecl.php.net/package/redis</div>
<div>下载stable标识为稳定版</div>
<div>
<div>下载好后,上传</div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230906212207769-83962950.png"></p>
<p>&nbsp;</p>
<div>解压</div>
<div>tar zxvf redis-5.3.7.tgz</div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230906212218321-2009631183.png"></p>
<p>&nbsp;</p>
<div>将压缩包复制到容器内</div>
<div>docker cp /data/redis7.2.0/pecl/redis-5.3.7 prod_7.4.3-fpm:/usr/src/php/ext/redis</div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230906212226992-512969101.png"></p>
<p>&nbsp;</p>
<div>开始安装</div>
<div>docker-php-ext-install redis</div>
<div>
<div>安装成功</div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230906212240821-1371484189.png"></p>
<p>&nbsp;</p>
<div>重启php容器</div>
<div>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230906212250049-1008857202.png"></p>
<p>&nbsp;</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230906212253700-1196330655.png"></p>
<p>&nbsp;</p>
<p><img src="https://img2023.cnblogs.com/blog/663897/202309/663897-20230906212259006-1793452635.png"></p>
<p>&nbsp;</p>
<div>测试成功!</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>
<div>&nbsp;</div>
<p><span style="color: rgba(255, 0, 0, 1); font-size: 16px"><strong>&nbsp;都是踩坑经验,无私分享,有问题欢迎留言,共同进步!</strong></span></p>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div>




























</div><br><br>
来源:https://www.cnblogs.com/hlgg/p/17649692.html
頁: [1]
查看完整版本: docker 搭建php环境(踩坑经验!!)