1,环境
系统版本:CentOS Linux release 7.5.1804
docker版本:Docker version 1.13.1
主机IP地址:192.168.116.128
前提条件:
关闭selinux
已经安装好docker
2,拉取mysql和PHP镜像
<span class="token namespace">[root@localhost ~]</span> <span class="token namespace">[root@localhost ~]</span><span class="token namespace">[root@localhost ~]</span> <span class="token namespace">[root@localhost ~]</span>[root@localhost ~] [root@localhost ~]
3,创建网络
<span class="token namespace">[root@localhost ~]</span> 2126534bba917d449091c868584d71528b16f3c60d91088af8d82b3fc0c9ac6c<span class="token namespace">[root@localhost ~]</span> 2126534bba917d449091c868584d71528b16f3c60d91088af8d82b3fc0c9ac6c[root@localhost ~] 2126534bba917d449091c868584d71528b16f3c60d91088af8d82b3fc0c9ac6c
查看网络
<span class="token namespace">[root@localhost ~]</span> NETWORK ID NAME DRIVER SCOPE dc97fa388a53 bridge bridge local 1e70fdb4b1ca host host local 2126534bba91 lamp bridge local c40bc4ba2760 none null local<span class="token namespace">[root@localhost ~]</span> NETWORK ID NAME DRIVER SCOPE dc97fa388a53 bridge bridge local 1e70fdb4b1ca host host local 2126534bba91 lamp bridge local c40bc4ba2760 none null local[root@localhost ~] NETWORK ID NAME DRIVER SCOPE dc97fa388a53 bridge bridge local 1e70fdb4b1ca host host local 2126534bba91 lamp bridge local c40bc4ba2760 none null local
4,创建生产mysql和php容器的脚本
<span class="token namespace">[root@localhost ~]</span> <span class="token keyword">function</span> mysql<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> docker run <span class="token operator">--</span>name mysql <span class="token operator">--</span>net lamp <span class="token operator">-</span>p 3306:3306 \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>mysql<span class="token operator">/</span><span class="token keyword">data</span>:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>lib<span class="token operator">/</span>mysql \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>mysql<span class="token operator">/</span>conf:<span class="token operator">/</span>etc<span class="token operator">/</span>mysql<span class="token operator">/</span>conf<span class="token punctuation">.</span>d \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>mysql<span class="token operator">/</span>logs:<span class="token operator">/</span>logs \ <span class="token operator">-</span>e MYSQL_ROOT_PASSWORD=Test1234 \ <span class="token operator">-</span>d mysql:latest <span class="token operator">--</span>character<span class="token operator">-</span><span class="token function">set</span><span class="token operator">-</span>server=utf8 <span class="token punctuation">}</span> <span class="token keyword">function</span> httpd_php<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> docker run <span class="token operator">--</span>name httpd<span class="token operator">-</span>php <span class="token operator">--</span>net lamp <span class="token operator">-</span>p 80:80 \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>httpd<span class="token operator">/</span>conf:<span class="token operator">/</span>etc<span class="token operator">/</span>apache2<span class="token operator">/</span>sites<span class="token operator">-</span>enabled \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>www:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>www<span class="token operator">/</span>html \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>httpd<span class="token operator">/</span>logs:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log<span class="token operator">/</span>apache2 \ <span class="token operator">-</span>d php:7<span class="token punctuation">.</span>2<span class="token operator">-</span>apache <span class="token punctuation">}</span> <span class="token variable">$1</span><span class="token namespace">[root@localhost ~]</span> <span class="token keyword">function</span> mysql<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> docker run <span class="token operator">--</span>name mysql <span class="token operator">--</span>net lamp <span class="token operator">-</span>p 3306:3306 \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>mysql<span class="token operator">/</span><span class="token keyword">data</span>:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>lib<span class="token operator">/</span>mysql \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>mysql<span class="token operator">/</span>conf:<span class="token operator">/</span>etc<span class="token operator">/</span>mysql<span class="token operator">/</span>conf<span class="token punctuation">.</span>d \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>mysql<span class="token operator">/</span>logs:<span class="token operator">/</span>logs \ <span class="token operator">-</span>e MYSQL_ROOT_PASSWORD=Test1234 \ <span class="token operator">-</span>d mysql:latest <span class="token operator">--</span>character<span class="token operator">-</span><span class="token function">set</span><span class="token operator">-</span>server=utf8 <span class="token punctuation">}</span> <span class="token keyword">function</span> httpd_php<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> docker run <span class="token operator">--</span>name httpd<span class="token operator">-</span>php <span class="token operator">--</span>net lamp <span class="token operator">-</span>p 80:80 \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>httpd<span class="token operator">/</span>conf:<span class="token operator">/</span>etc<span class="token operator">/</span>apache2<span class="token operator">/</span>sites<span class="token operator">-</span>enabled \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>www:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>www<span class="token operator">/</span>html \ <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>httpd<span class="token operator">/</span>logs:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log<span class="token operator">/</span>apache2 \ <span class="token operator">-</span>d php:7<span class="token punctuation">.</span>2<span class="token operator">-</span>apache <span class="token punctuation">}</span> <span class="token variable">$1</span>[root@localhost ~] function mysql() { docker run --name mysql --net lamp -p 3306:3306 \ -v /data/docker/mysql/data:/var/lib/mysql \ -v /data/docker/mysql/conf:/etc/mysql/conf.d \ -v /data/docker/mysql/logs:/logs \ -e MYSQL_ROOT_PASSWORD=Test1234 \ -d mysql:latest --character-set-server=utf8 } function httpd_php() { docker run --name httpd-php --net lamp -p 80:80 \ -v /data/docker/httpd/conf:/etc/apache2/sites-enabled \ -v /data/docker/www:/var/www/html \ -v /data/docker/httpd/logs:/var/log/apache2 \ -d php:7.2-apache } $1
5,启动mysql和PHP容器
<span class="token namespace">[root@localhost ~]</span> cd91996a5842a82a3368598f8d38f76e4a8879bb93c2ed77bfa8e7fd3085c377 <span class="token namespace">[root@localhost ~]</span> c456a5114903bd20cbc3484d4232ca58e57af4c92ea0464df01f2b49f869946c <span class="token namespace">[root@localhost ~]</span><span class="token namespace">[root@localhost ~]</span> cd91996a5842a82a3368598f8d38f76e4a8879bb93c2ed77bfa8e7fd3085c377 <span class="token namespace">[root@localhost ~]</span> c456a5114903bd20cbc3484d4232ca58e57af4c92ea0464df01f2b49f869946c <span class="token namespace">[root@localhost ~]</span>[root@localhost ~] cd91996a5842a82a3368598f8d38f76e4a8879bb93c2ed77bfa8e7fd3085c377 [root@localhost ~] c456a5114903bd20cbc3484d4232ca58e57af4c92ea0464df01f2b49f869946c [root@localhost ~]
查看容器
<span class="token namespace">[root@localhost ~]</span> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6e459971afa0 php:7<span class="token punctuation">.</span>2<span class="token operator">-</span>apache <span class="token string">"docker-php-entryp..."</span> 3 seconds ago Up 2 seconds 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:80<span class="token operator">-</span>>80<span class="token operator">/</span>tcp httpd<span class="token operator">-</span>php 7ba5e9464247 mysql:latest <span class="token string">"docker-entrypoint..."</span> About a minute ago Up About a minute 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:3306<span class="token operator">-</span>>3306<span class="token operator">/</span>tcp<span class="token punctuation">,</span> 33060<span class="token operator">/</span>tcp mysql<span class="token namespace">[root@localhost ~]</span> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6e459971afa0 php:7<span class="token punctuation">.</span>2<span class="token operator">-</span>apache <span class="token string">"docker-php-entryp..."</span> 3 seconds ago Up 2 seconds 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:80<span class="token operator">-</span>>80<span class="token operator">/</span>tcp httpd<span class="token operator">-</span>php 7ba5e9464247 mysql:latest <span class="token string">"docker-entrypoint..."</span> About a minute ago Up About a minute 0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0:3306<span class="token operator">-</span>>3306<span class="token operator">/</span>tcp<span class="token punctuation">,</span> 33060<span class="token operator">/</span>tcp mysql[root@localhost ~] CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6e459971afa0 php:7.2-apache "docker-php-entryp..." 3 seconds ago Up 2 seconds 0.0.0.0:80->80/tcp httpd-php 7ba5e9464247 mysql:latest "docker-entrypoint..." About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
6,写一个php的首页文件来进行测试
<span class="token function">echo</span> <span class="token string">"<?php phpinfo(); ?>"</span> > <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>www<span class="token operator">/</span>index<span class="token punctuation">.</span>php<span class="token function">echo</span> <span class="token string">"<?php phpinfo(); ?>"</span> > <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>docker<span class="token operator">/</span>www<span class="token operator">/</span>index<span class="token punctuation">.</span>phpecho "<?php phpinfo(); ?>" > /data/docker/www/index.php
通过浏览器访问http://192.168.116.128
7,修改mysql的密码加密方式为mysql_native_password
<span class="token namespace">[root@localhost ~]</span> <span class="token namespace">[mysqld]</span> default<span class="token operator">-</span>authentication<span class="token operator">-</span>plugin=mysql_native_password<span class="token namespace">[root@localhost ~]</span> <span class="token namespace">[mysqld]</span> default<span class="token operator">-</span>authentication<span class="token operator">-</span>plugin=mysql_native_password[root@localhost ~] [mysqld] default-authentication-plugin=mysql_native_password
8,数据库的操作
登录数据库容器,创建、配置wordpress数据库
<span class="token namespace">[root@localhost ~]</span> root@7ba5e9464247:<span class="token operator">/</span> mysql> create database wordpress<span class="token punctuation">;</span> mysql> create user wps@localhost identified by <span class="token string">'123456'</span><span class="token punctuation">;</span> mysql> grant all privileges on wordpress<span class="token punctuation">.</span><span class="token operator">*</span> to wps@localhost<span class="token punctuation">;</span> mysql> create user wps@172<span class="token punctuation">.</span>18<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1 identified by <span class="token string">'123456'</span><span class="token punctuation">;</span> mysql> grant all privileges on wordpress<span class="token punctuation">.</span><span class="token operator">*</span> to wps@172<span class="token punctuation">.</span>18<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1<span class="token punctuation">;</span> mysql> alter user wps@172<span class="token punctuation">.</span>18<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1 identified with mysql_native_password by <span class="token string">'123456'</span><span class="token punctuation">;</span> mysql> flush privileges<span class="token punctuation">;</span> mysql> <span class="token keyword">exit</span> root@7ba5e9464247:<span class="token operator">/</span><span class="token namespace">[root@localhost ~]</span> root@7ba5e9464247:<span class="token operator">/</span> mysql> create database wordpress<span class="token punctuation">;</span> mysql> create user wps@localhost identified by <span class="token string">'123456'</span><span class="token punctuation">;</span> mysql> grant all privileges on wordpress<span class="token punctuation">.</span><span class="token operator">*</span> to wps@localhost<span class="token punctuation">;</span> mysql> create user wps@172<span class="token punctuation">.</span>18<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1 identified by <span class="token string">'123456'</span><span class="token punctuation">;</span> mysql> grant all privileges on wordpress<span class="token punctuation">.</span><span class="token operator">*</span> to wps@172<span class="token punctuation">.</span>18<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1<span class="token punctuation">;</span> mysql> alter user wps@172<span class="token punctuation">.</span>18<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1 identified with mysql_native_password by <span class="token string">'123456'</span><span class="token punctuation">;</span> mysql> flush privileges<span class="token punctuation">;</span> mysql> <span class="token keyword">exit</span> root@7ba5e9464247:<span class="token operator">/</span>[root@localhost ~] root@7ba5e9464247:/ mysql> create database wordpress; mysql> create user wps@localhost identified by '123456'; mysql> grant all privileges on wordpress.* to wps@localhost; mysql> create user wps@172.18.0.1 identified by '123456'; mysql> grant all privileges on wordpress.* to wps@172.18.0.1; mysql> alter user wps@172.18.0.1 identified with mysql_native_password by '123456'; mysql> flush privileges; mysql> exit root@7ba5e9464247:/
9,下载wordpress博客
<span class="token namespace">[root@localhost ~]</span> <span class="token namespace">[root@localhost ~]</span><span class="token namespace">[root@localhost ~]</span> <span class="token namespace">[root@localhost ~]</span>[root@localhost ~] [root@localhost ~]
10,配置wordpress博客
1,修改wp-config-sample.php配置
<span class="token namespace">[root@localhost ~]</span> <span class="token namespace">[root@localhost wordpress]</span> <span class="token namespace">[root@localhost wordpress]</span> <span class="token operator">/</span>*<span class="token operator">*</span> WordPress数据库的名称 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_NAME'</span><span class="token punctuation">,</span> <span class="token string">'wordpress'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">/</span>*<span class="token operator">*</span> MySQL数据库用户名 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_USER'</span><span class="token punctuation">,</span> <span class="token string">'wps'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">/</span>*<span class="token operator">*</span> MySQL数据库密码 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_PASSWORD'</span><span class="token punctuation">,</span> <span class="token string">'123456'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">/</span>*<span class="token operator">*</span> MySQL主机 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_HOST'</span><span class="token punctuation">,</span> <span class="token string">'172.18.0.1'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">/</span>*<span class="token operator">*</span> 创建数据表时默认的文字编码 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_CHARSET'</span><span class="token punctuation">,</span> <span class="token string">'utf8'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">/</span>*<span class="token operator">*</span> 数据库整理类型。如不确定请勿更改 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_COLLATE'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token namespace">[root@localhost ~]</span> <span class="token namespace">[root@localhost wordpress]</span> <span class="token namespace">[root@localhost wordpress]</span> <span class="token operator">/</span>*<span class="token operator">*</span> WordPress数据库的名称 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_NAME'</span><span class="token punctuation">,</span> <span class="token string">'wordpress'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">/</span>*<span class="token operator">*</span> MySQL数据库用户名 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_USER'</span><span class="token punctuation">,</span> <span class="token string">'wps'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">/</span>*<span class="token operator">*</span> MySQL数据库密码 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_PASSWORD'</span><span class="token punctuation">,</span> <span class="token string">'123456'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">/</span>*<span class="token operator">*</span> MySQL主机 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_HOST'</span><span class="token punctuation">,</span> <span class="token string">'172.18.0.1'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">/</span>*<span class="token operator">*</span> 创建数据表时默认的文字编码 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_CHARSET'</span><span class="token punctuation">,</span> <span class="token string">'utf8'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token operator">/</span>*<span class="token operator">*</span> 数据库整理类型。如不确定请勿更改 <span class="token operator">*</span><span class="token operator">/</span> <span class="token keyword">define</span><span class="token punctuation">(</span><span class="token string">'DB_COLLATE'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">;</span>[root@localhost ~] [root@localhost wordpress] [root@localhost wordpress] /** WordPress数据库的名称 */ define('DB_NAME', 'wordpress'); /** MySQL数据库用户名 */ define('DB_USER', 'wps'); /** MySQL数据库密码 */ define('DB_PASSWORD', '123456'); /** MySQL主机 */ define('DB_HOST', '172.18.0.1'); /** 创建数据表时默认的文字编码 */ define('DB_CHARSET', 'utf8'); /** 数据库整理类型。如不确定请勿更改 */ define('DB_COLLATE', '');
2,mysql容器里安装mysqli扩展
<span class="token namespace">[root@localhost ~]</span> root@6e459971afa0:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>www<span class="token operator">/</span>html root@6e459971afa0:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>www<span class="token operator">/</span>html root@6e459971afa0:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>www<span class="token operator">/</span>html root@6e459971afa0:<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>bin root@6e459971afa0:<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>bin root@6e459971afa0:<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>bin <span class="token namespace">[root@localhost ~]</span><span class="token namespace">[root@localhost ~]</span> root@6e459971afa0:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>www<span class="token operator">/</span>html root@6e459971afa0:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>www<span class="token operator">/</span>html root@6e459971afa0:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>www<span class="token operator">/</span>html root@6e459971afa0:<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>bin root@6e459971afa0:<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>bin root@6e459971afa0:<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>bin <span class="token namespace">[root@localhost ~]</span>[root@localhost ~] root@6e459971afa0:/var/www/html root@6e459971afa0:/var/www/html root@6e459971afa0:/var/www/html root@6e459971afa0:/usr/local/bin root@6e459971afa0:/usr/local/bin root@6e459971afa0:/usr/local/bin [root@localhost ~]
3,修改wp-db.php文件,将mysql_connect替换为mysqli_connect
<span class="token namespace">[root@localhost ~]</span> <span class="token namespace">[root@localhost wordpress]</span><span class="token namespace">[root@localhost ~]</span> <span class="token namespace">[root@localhost wordpress]</span>[root@localhost ~] [root@localhost wordpress]
11,网页配置wordpress
关闭防火墙
浏览器访问http://192.168.116.128/wordpress
按前面的步骤填写完连接mysql的配置信息后,看到如下页面,表示mysql连接成功。
需要手工创建wp-config.php文件,将以上信息贴入wp-config.php文件中
vim /data/docker/www/wordpress/wp-config.php
然后点击“现在安装”,出现以下页面
输入完以上信息后,点击“安装WordPress”
至此,docker搭建lamp上线wordpress博客系统就搭建完成了。
原文链接:https://blog.csdn.net/WEN_BK/article/details/106207506