Windows11 22H2 企业版web服务器部署wsl
Wsl2 Ubuntu-22.04
Apache.mariadb.php.perl wordprepress
Nginx.mariadb.php.perl wordprepress ssl证书是生成
操作备份还原
By steven_roc
2023年10月6日星期五
目录
1.1windows 11 wsl2 安装Ubuntu-22.04 更新相关软件 1
1.1.1Windows11 应用商店安装Ubuntu-22.04 1
1.1.2.1. Windows使用WSL备份Linux子系统 2
1.1.2Windows使用WSL Ubuntu-22.04安装openssh 3
1.1.2Windows使用WSL Ubuntu-22.04 xampp-x64-8.2.4.0 3
二、xampp-8.2.4 apache https配置 4
2.3进入虚拟机Linux docker-compose up -d 后台交互运行 6
2.2登录虚拟机docker-machine roc.jpress 12
3.2 navicat ssl连接mariadb数据库 13
3.2 navicat ssl连接mariadb数据库出现错误如下 14
3.2.1 navicat ssl连接mariadb数据库备份如下 14
1.7) 在其他物理机上pull私有registry镜像 16
五、wordpress https配置 mariadb ssl连接配置 23
5.1.2.1 wordpress 必须先创建好数据库chanking (字符集utf8mb4) 23
一、Ubuntu linux运行环境
Windows1122H2企业版
Linux:Linux 操作系统,Ubuntu-22.04。
Nginx:Web 服务器,Apache/2.4.56。
MariaDB:数据库, 10.4.28-MariaDB – Source distribution。
PHP:脚本语言,OpenSSL/1.1.1t PHP/8.2.4 mod_perl/2.0.12 Perl/v5.34.1。
WordPress:博客平台,本文以 WordPress 6.3.1。
1.1windows 11 wsl2 安装Ubuntu-22.04 更新相关软件
1.1.1Windows11 应用商店安装Ubuntu-22.04
- C:\Windows\System32\drivers\etc
hosts 文件映射到 \\wsl.localhost\Ubuntu-22.04\etc\hosts
108.177.97.100 translate.googleapis.com
172.20.131.63 chanking.zhonjin.com
192.168.2.103 freessl.zhonjin.com
192.168.3.21 www.cs1.com
127.0.0.1 www.cs2.com
127.0.0.1 pingplotter.com
127.0.0.1 www.pingplotter.com
hosts 文件映射到 \\wsl.localhost\Ubuntu-22.04\etc\hosts
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateHosts = false
127.0.0.1 localhost
127.0.1.1 Administrator. Administrator
108.177.97.100 translate.googleapis.com
172.20.131.63 chanking.zhonjin.com
192.168.2.103 freessl.zhonjin.com
192.168.3.21 www.cs1.com
127.0.0.1 www.cs2.com
127.0.0.1 pingplotter.com
127.0.0.1 www.pingplotter.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
1.1.2Windows使用WSL备份Linux子系统
1.1.2.1. Windows使用WSL备份Linux子系统
C:\Windows\System32\drivers\etc
//1、 查看Windows中的子系统
C:\Users\steven_roc>wsl -l
适用于 Linux 的 Windows 子系统分发:
Ubuntu-22.04 (默认)
//2、 停止子系统C:\Users\steven_roc>wsl -t Ubuntu-22.04
操作成功完成。
或者C:\Users\steven_roc>wsl –terminate Ubuntu-22.04
操作成功完成。
//3、 运行子系统C:\Users\steven_roc>wsl –distribution Ubuntu-22.04
或者C:\Users\steven_roc>wsl -d Ubuntu-22.04
// 4查看运行中的子系统C:\Users\steven_roc>wsl -l –running
适用于 Linux 的 Windows 子系统分发:
Ubuntu-22.04 (默认)// 注意:备份/还原/删除 子系统之前需要先停止子系统 !!!
// 5备份子系统
wsl –export Ubuntu-22.04 d:\Ubuntu-22.04.tar
// 6删除子系统
wsl –unregister Ubuntu-22.04
// 7还原子系统,先停止系统,再删除系统
wsl –import Ubuntu-22.04 d:\WSL d:\Ubuntu-22.04.tar//8
//9 重装 重置

Windows使用WSL备份Linux子系统
1.1.2Windows使用WSL默认启动账户
1)、设置默认启动账户
C:\Users\steven_roc\AppData\Local\Microsoft\WindowsApps\ubuntu2204.exe config –default-user steven_roc
2)默认steven_roc 启动Ubuntu启动
ubuntu2204.exe config –default-user steven_roc
1.1.2Windows使用WSL Ubuntu-22.04安装openssh
1)安装ssh server
sudo apt update -y
sudo apt upgrade -y
sudo apt-get update -y && sudo apt-get upgrade -y
2)Ubuntu 账户密码
用户名:steven_roc
密码:zhonjinNB-=
1.1.3 openssh 端口修改vi /etc/ssh/sshd_config
https://cloud.tencent.com/developer/article/1538305
sudo vi /etc/ssh/sshd_config
ssh 服务器端口修改
1.1.2Windows使用WSL Ubuntu-22.04 xampp-x64-8.2.4.0
1.1.2.1 chmod 755
steven_roc@Administrator:~$ chmod 755 xampp-linux-*-installer.run
1.1.2.2 chmod 755
steven_roc@Administrator:~$ sudo ./xampp-linux-*-installer.run
1.1.2.3 xampp 运行To start XAMPP simply call this command:
sudo /opt/lampp/lampp start
sudo /opt/lampp/lampp stop
sudo /opt/lampp/lampp status
1)安装net-tools
sudo apt-get install net-tools
2)出现错误:XAMPP: Starting Apache…/opt/lampp/share/xampp/xampplib: line 22: netstat: command not found
解决如下:
sudo apt-get update -y && sudo apt-get upgrade -y
xampp-linux-x64-8.2.4-0-installer
docker-machine升级下载 https://github.com/docker/machine/releases
docker-compose升级 https://github.com/docker/compose/releases
拷贝到docker CE Linux 目录中/usr/local/bin/
- $ curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine &&
chmod +x /tmp/docker-machine &&
sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
- sudo cp /home/docker/docker-machine /usr/local/bin/docker-machine
sudo cp /home/docker/docker-compose /usr/local/bin/docker-compose
sudo chmod +777 /usr/local/bin/docker-machine
sudo chmod +777 /usr/local/bin/docker-compose
- chmod 777 /tmp/docker-machine
chmod 777 /tmp/docker-compose
4) 首先登录到服务器,没有秘钥的,先生成密钥对
ssh-keygen -t dsa
可得到两个文件,id_dsa是私钥,id_dsa.pub是公钥:
~/.ssh/id_dsa
~/.ssh/id_dsa.pub
二、xampp-8.2.4 apache https配置
2.1Windows11 xampp apache https虚拟目录连接mlink
1)
mklink /D C:\xampp\htdocs\chanking D:\work2022\wordpress\nginx\html\chanking\chanking
为 C:\xampp\htdocs\chanking <<===>> D:\work2022\wordpress\nginx\html\chanking\chanking 创建的符号链接
2)rmdir C:\xampp\htdocs\chanking
3)
mklink /D C:\xampp\htdocs\chanking D:\work2022\wordpress\nginx\html\chanking
带 /H 参数,创建硬链接。经过测试硬链接依然不需要管理员权限:
mklink /h d:\Simple\Link\new.txt d:\Simple\Target\text.txt
https://www.icoa.cn/a/910.html
Win10 mklink 命令怎么用,mklink 命令使用教程
2.1xampp apache https配置证书
1、chanking-zhonjin-com-apache-0929234546\ca_bundle.crt
复制到
/opt/lampp/etc/ca_bundle.crt
2、chanking-zhonjin-com-apache-0929234546\chanking.zhonjin.com.crt
复制到
/opt/lampp/etc/ssl.crt/chanking.zhonjin.com.crt
3、
chanking-zhonjin-com-apache-0929234546\chanking.zhonjin.com_key.key
复制到
/opt/lampp/etc/ssl.key/chanking.zhonjin.com_key.key
2.2xampp apache httpd.conf配置证书
/opt/lampp/etc/httpd.conf 修改如下
Listen 8080
ServerName chanking.zhonjin.com
DocumentRoot “/opt/lampp/htdocs”
<Directory “/opt/lampp/htdocs”>
2.3xampp apache httpd-ssl.conf配置证书
/opt/lampp/etc/extra/httpd-ssl.conf 修改如下
Listen 8443
<VirtualHost _default_:8443>
ServerName chanking.zhonjin.com:8443
SSLCertificateFile “/opt/lampp/etc/ssl.crt/chanking.zhonjin.com.crt”
SSLCertificateKeyFile “/opt/lampp/etc/ssl.key/chanking.zhonjin.com_key.key”
SSLCertificateChainFile “/opt/lampp/etc/ca_bundle.crt”
2.3xampp apache httpd-xampp.conf配置
/opt/lampp/etc/extra/httpd-xampp.conf
# since XAMPP 1.4.3 Require local Require all granted
<Directory “/opt/lampp/phpmyadmin”>
AllowOverride AuthConfig Limit
Require all granted
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>
/opt/lampp/htdocs
/opt/lampp/htdocs/chanking
sudo chmod -R 777 /opt/lampp/htdocs
https://www.jianshu.com/p/21aca64dad91
更改linux文件/目录的权限、拥有者及用户组基本语法chown [-R] 账号名称 文件或目录chown [-R] 账号名称:用户组名称 文件或目录
1、权限根据需要调整_________________________
sudo chown -R steven_roc:steven_roc /opt/lampp/htdocs
sudo chown -R steven_roc:steven_roc /opt/lampp/etc
sudo chown -R steven_roc:steven_roc /opt/lampp/phpmyadmin
2、
sudo chmod -R 777 /opt/lampp/htdocs
sudo chmod -R 777 /opt/lampp/etc
sudo chmod -R 777 /opt/lampp/htdocs/chanking/wp-content/temp
3、
2、必须切换到当前目录创建虚拟主机 steven_roc@steven_roc-PC MINGW64 /
$ cd /c/Users/roc.jpress
3)直接以Git命令行windows 7 docker-machine创建虚拟机如下:
直接用Git Bash命令操作创建虚拟机如下=》 路径 /c直接从本地镜像创建虚拟机
steven_roc@steven_roc-PC MINGW64 /c/Users/roc.jpress
$ docker-machine create –driver virtualbox –virtualbox-boot2docker-url file://c/Users/steven_roc/.docker/machine/cache/boot2docker.iso roc.jpress
Running pre-create checks…
(roc.jpress) Boot2Docker URL was explicitly set to “file://c/Users/steven_roc/.docker/machine/cache/boot2docker.iso” at create time, so Docker Machine cannot upgrade this machine to the latest version.
Creating machine…
(roc.jpress) Boot2Docker URL was explicitly set to “file://c/Users/steven_roc/.docker/machine/cache/boot2docker.iso” at create time, so Docker Machine cannot upgrade this machine to the latest version.
(roc.jpress) Downloading C:\Users\steven_roc\.docker\machine\cache\boot2docker.iso from file://c/Users/steven_roc/.docker/machine/cache/boot2docker.iso…
(roc.jpress) Creating VirtualBox VM…
(roc.jpress) Creating SSH key…
(roc.jpress) Starting the VM…
(roc.jpress) Check network to re-create if needed…
(roc.jpress) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.
(roc.jpress) Waiting for an IP…
Waiting for machine to be running, this may take a few minutes…
Detecting operating system of created instance…
Waiting for SSH to be available…
Detecting the provisioner…
Provisioning with boot2docker…
Copying certs to the local machine directory…
Copying certs to the remote machine…
Setting Docker configuration on the remote daemon…
Checking connection to Docker…
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: C:\Program Files\Docker Toolbox\docker-machine.exe env roc.jpress
补充命令如下:
4)查看虚拟机:steven_roc@steven_roc-PC MINGW64 /
$ docker-machine ls
4)停止虚拟机:steven_roc@steven_roc-PC MINGW64 /
$ docker-machine stop roc.jpress
5)删除虚拟机:steven_roc@steven_roc-PC MINGW64 /
$ docker-machine rm roc.jpress
6)删除所有虚拟机:steven_roc@steven_roc-PC MINGW64 /
$ docker-machine rm -f $(docker-machine ls -q)
2.3进入虚拟机Linux docker-compose up -d 后台交互运行
1)c_Users_roc.jpress.rar解压到 C:\Users\roc.jpress
root@roc:/c/Users/roc.jpress# docker load -i mysql.5.7.save.img.v1.tar
root@roc:/c/Users/roc.jpress# docker load -i fuhai.jpress.latest.save.img.v1.tar
2)查看镜像
root@roc:/c/Users/roc.jpress# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 4181d485f650 8 days ago 448MB
<none> <none> 8eb702c5abc6 2 months ago 240MB
3)修改docker tag 镜像id 镜像名字:镜像版本
root@jpress4:/c/Users/roc.jpress# docker tag 4181d485f650 mysql:5.7
root@jpress4: /c/Users/roc.jpress# docker tag 8eb702c5abc6 fuhai/jpress:latest
docker tag 4181d485f650 mysql:5.7 && docker tag 8eb702c5abc6 fuhai/jpress:latest
4)复制docker-compose docker-machine 到Linux主机,连续执行
cd /c/Users/roc.jpress &&sudo cp docker-machine /usr/local/bin/docker-machine &&sudo cp docker-compose /usr/local/bin/docker-compose && sudo chmod 777 /usr/local/bin/docker-machine &&sudo chmod 777 /usr/local/bin/docker-compose
5)、windows7 执行命令如下:启动容器编译docker-compose.yml文件
root@roc:/c/Users/roc.jpress# docker-compose up -d cal/bin/docker-compose
[+] Running 5/5
⠿ Network rocjpress_jpress-network Created 0.1s
⠿ Volume “rocjpress_jpress” Created 0.0s
⠿ Volume “rocjpress_mysql” Created 0.0s
⠿ Container mysql Started 0.6s
⠿ Container jpress Started
补充知识
6)查看容器:root@roc:/c/Users/roc.jpress# docker ps
5)回退删除:root@roc:/c/Users/roc.jpress# docker-compose down
6)删除数据卷:root@roc:/c/Users/roc.jpress# docker volume rm $(docker volume ls -q)
7)查看IP地址信息root@roc:/c/Users/roc.jpress# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 08:00:27:F2:01:93
inet addr:192.168.99.132 Bcast:192.168.99.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fef2:193/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:220 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:21685 (21.1 KiB) TX bytes:5536 (5.4 KiB)
2.4 登录web服务器
1) 查看ip地址:docker-machine ip roc.jpress
2)进入主页面 http://192.168.99.132:8080/
192.168.99.133:8080
root,jpress,oldm123@!
设置登录账号密码:steven_roc xiao234-=A
http://192.168.99.133:8080/admin/login

2.4.1查看容器备份容器
2、容器操作
1)容器查看命令:root@myvm01:~# docker ps
2)docker中 关闭所有的容器命令
root@roc:/c/Users/roc.jpress#docker stop $(docker ps -a|awk ‘{print $1}’| tail -n +2)
6a6ce1a3877f
209d88aca27a
3)备份容器数据命令:
容器停止运行后拷贝文件目录my.cnf 实际文件名:/etc/mysql/mysql.cnf
1)备份mysql参数文件
sudo docker cp mysql:/etc/mysql/mysql.cnf /c/Users/roc.jpress/mysql5.7/etc.mysql
sudo docker cp mysql:/etc/mysql/ /c/Users/roc.jpress/mysql5.7/etc.mysql
sudo docker cp mysql:/var/lib/mysql /c/Users/roc.jpress/mysql5.7/var.lib.mysql
2)备份jpress
sudo docker cp jpress:/opt/jpress/webapp /c/Users/roc.jpress/fuhai.jpress/opt.jpress.webapp
sudo docker cp jpress:/usr/local/tomcat /c/Users/roc.jpress/fuhai.jpress
3)tar压缩文件包,备份
- 当前目录下压缩文件 注意压缩解压缩切换到当前目录
root@roc:/c/Users/roc.jpress/mysql5.7/var.lib.mysql#tar -czvf var.lib.mysql.tar.gz mysql
root@roc:/c/Users/roc.jpress/mysql5.7/etc.mysql# tar -czvf etc.mysql.tar.gz mysql
5)tar 解压缩 还原注意压缩解压缩切换到当前目录
root@roc:/c/Users/roc.jpress/mysql5.7/etc.mysql# tar -xzvf etc.mysql.tar.gz
root@roc:/c/Users/roc.jpress/mysql5.7/var.lib.mysql#tar -czvf var.lib.mysql.tar.gz
6)列出压缩包内容:
root@roc:/c/Users/roc.jpress/mysql5.7/etc.mysql# tar -tzvf etc.mysql.tar.gz mysql
2.4.2查看容器常用操作
docker-machine start roc.jpress
steven_roc@steven_roc-PC MINGW64 /
$ docker-machine ip roc.jpress
192.168.99.133
docker-machine restart roc.jpress
docker-machine stop roc.jpress
docker-machine rm roc.jpress
docker-machine ssh roc.jpress
sudo -i
cd /c/Users/roc.jpress && sudo cp docker-machine /usr/local/bin/docker-machine &&sudo cp docker-compose /usr/local/bin/docker-compose && sudo chmod 777 /usr/local/bin/docker-machine &&sudo chmod 777 /usr/local/bin/docker-compose
docker ps -a
docker-compose up -d
docker-compose down
sudo docker-compose up
docker stop $(docker ps -a|awk ‘{print $1}’| tail -n +2)
docker volume rm $(docker volume ls -q)
docker network rm $(docker network ls -q)
docker volume rm rocjpress_jpress
docker logs -f –details -t mysql #查看mysql日志
https://www.programminghunter.com/article/99981007321/
Docker启动MySQL 8.0 报错: docker Supplied value : /var/lib/mysql-files
docker run -d –privileged=true \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-v /usr/local/docker/mysql/my.cnf:/etc/mysql/my.cnf \
-p 33060:3306 –name=mysql -e MYSQL_ROOT_PASSWORD=123456 \
<镜像id>
需要说明的是, 在mysql 5.7.9以后废弃了password字段和password()函数;
docker run –restart=always -p 3310:3306 –name mysql55 -v /c/Users/roc.jpress/mysql5.7/var.lib.mysql/mysql:/var/lib/mysql-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker@roc:~$ cd /c/Users/roc.jpress/mysql5.7/var.lib.mysql/mysql
docker run –name=fxmysql -v /c/Users/roc.jpress/mysql5.7/var.lib.mysql/mysql:/var/lib/mysql –privileged=true -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7
docker run -d -p 3307:3306 –privileged=true –name mysql_5.7 -v /c/Users/roc.jpress/mysql5.7/var.lib.mysql/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
5)
13)进入容器docker exec -it 容器名 /bin/bash
docker exec -it mysql /bin/bash vi /etc/mysql/mysql.cnf
docker exec -it jpress /bin/bash
bash-4.4# su root 切换管理员权限
- 容器内安装 vim
apt-get update
apt-install vim
–pid-file: Location ‘/var/lib/mysql’ in the path is accessible to all OS users. Consider choosing a different directory.
sudo docker cp jpress:/usr/local/tomcat /c/Users/roc/
sudo docker cp jpress:/usr/local/tomcat /c/Users/jpress4/
sudo docker cp -r mysql:/etc/mysql/my.cnf /c/Users/roc.jpress/mysql5.7/my.cnf
sudo docker cp mysql:/etc/mysql/ /c/Users/jpress4/mysql5.7/etc.mysql
sudo docker cp mysql:/etc/alternatives/ /c/Users/jpress4/ mysql5.7/etc.alternatives
复制快捷方式
sudo docker cp mysql:/etc/mysql/my.cnf /d/jpress/my.cnf
参考如下:
sudo docker cp mysql:/usr/my.cnf /c/Users/jpress/mysql/my.cnf
sudo docker cp mysql:/etc/mysql/my.cnf /c/Users/jpress4/mysql5.7/my.cnf
sudo docker cp -a mysql:/etc/alternatives/my.cnf /c/Users/jpress4/mysql5.7/my.cnf
sudo docker cp mysql:/var/lib/mysql /c/Users/jpress4/mysql5.7
sudo docker cp mysql:/etc/mysql/mysql.cnf /c/Users/jpress4/mysql5.7/
知识补充:
1、 查看容器信息docker@jpress4:~$ docker ps –format “table {{.ID}}\t{{.Status}}\t{{.Names}}”
CONTAINER ID STATUS NAMES
b666e57fc6f1 Up 2 hours jpress
a01d641a0c54 Restarting (3) 13 seconds ago mysql
3)docker中 启动所有的容器命令
docker restart $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
docker start $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
4)docker中 删除所有的容器命令
docker rm $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
- 备份MySQL,jpress文件
Tar命令操作
https://www.runoob.com/linux/linux-comm-tar.html
rocjpress_jpressnew
root@roc:/c/Users/roc.jpress# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e58d77d00af0 fuhai/jpress:latest “/opt/jpress/jpress.…” 6 minutes ago Up 6 minutes 0.0.0.0:8080->8080/tcp jpress
9b195cdd253d mysql:5.7 “docker-entrypoint.s…” 19 minutes ago Up 6 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
查看容器具体位置
root@roc:/c/Users/roc.jpress# docker inspect e58d77d00af0
6)查看数据卷
root@roc:/c/Users/roc.jpress# docker volume inspect rocjpress_mysql
[
{
“CreatedAt”: “2022-02-26T09:40:45Z”,
“Driver”: “local”,
“Labels”: {
“com.docker.compose.project”: “rocjpress”,
“com.docker.compose.version”: “2.2.3”,
“com.docker.compose.volume”: “mysql”
},
“Mountpoint”: “/mnt/sda1/var/lib/docker/volumes/rocjpress_mysql/_data”,
“Name”: “rocjpress_mysql”,
“Options”: null,
“Scope”: “local”
}
]
root@roc:/c/Users/roc.jpress# docker volume inspect rocjpress_jpress
[
{
“CreatedAt”: “2022-02-26T08:13:12Z”,
“Driver”: “local”,
“Labels”: {
“com.docker.compose.project”: “rocjpress”,
“com.docker.compose.version”: “2.2.3”,
“com.docker.compose.volume”: “jpress”
},
“Mountpoint”: “/mnt/sda1/var/lib/docker/volumes/rocjpress_jpress/_data”,
“Name”: “rocjpress_jpress”,
“Options”: null,
“Scope”: “local”
}
]
附录一:
问题收集:
一、Administrator@Win7-2022XHBHXW MINGW64 /c/Users/blog
$ docker-compose_ up -d
Pulling blog-mysql (mysql:5.7)…
ERROR: Get https://registry-1.docker.io/v2/: read tcp 192.168.2.103:56368->52.20
5.127.201:443: read: connection reset by peer
解决如下:
首先:
通过dig @114.114.114.114 registry-1.docker.io找到可用IP
配置找到的可用ip: C:\Windows\System32\drivers\etc
修改hosts文件vi /etc/hosts添加进刚才找的可用ip:
52.87.94.70 registry-1.docker.io
2.2登录虚拟机docker-machine roc.jpress
1)登录虚拟机:steven_roc@steven_roc-PC MINGW64 /c/Users/roc.jpress
docker-machine start roc.jpress
$ docker-machine ssh roc.jpress
( ‘>’)
/) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY.
(/-_–_-\) www.tinycorelinux.net
2、切换管理员权限:docker@roc:~ $ sudo -i
2、切换目录docker@roc:~$ cd /c/Users/roc.jpress
三、nginx https ssl配置
3.1 nginx https ssl配置证书
D:\work2022\wordpress\nginx\conf
nginx.conf
server {
listen 8443 ssl;
server_name chanking.zhonjin.com;
ssl_certificate chanking.zhonjin.com_chain.crt.pem;
ssl_certificate_key chanking.zhonjin.com_key.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html/chanking;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html/chanking;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
四、mariadb ssl配置
4.1 mariadb数据库SSL配置证书
D:\work2022\wordpress\004mariadbssl
mariadb ssl证书复制到
/opt/lampp/etc/ssl.mariadb
切换管理员账号:sudo -i
mysql> show variables like ‘%ssl%’;
+—————+————————————+
| Variable_name | Value |
+—————+————————————+
| have_openssl | DISABLED |
| have_ssl | DISABLED |
| ssl_ca | C:/Users/Krzysztof/ca-cert.pem |
| ssl_capath | |
| ssl_cert | C:/Users/Krzysztof/server-cert.pem |
| ssl_cipher | |
| ssl_key | C:/Users/Krzysztof/server-key.pem |
4.2 mariadb数据库SSL my.cnf
/opt/lampp/etc/my.cnf
[mysqld]
ssl
ssl-ca=/opt/lampp/etc/ssl.mariadb/ca.pem
ssl-cert=/opt/lampp/etc/ssl.mariadb/server-cert.pem
ssl-key=/opt/lampp/etc/ssl.mariadb/server-key.pem
bind-address = * # 此处也可改为 0.0.0.0
https://www.kuangstudy.com/bbs/1371808036653383682
开启MariaDB的SSL选项
4.1.1 mariadb数据库更新密码
UPDATE mysql.user SET Password=PASSWORD(‘your_new_password’) WHERE User=’root’;
FLUSH PRIVILEGES;
https://juejin.cn/s/mariadb%20mysql_upgrade%20access%20denied%20for%20user%20’root’%40’localhost’
mariadb mysql_upgrade access denied for user ‘root’@’localhost’
重置密码
4.2 navicat ssl连接mariadb数据库


https://blog.csdn.net/qq_40437747/article/details/105468093
4.2 navicat ssl连接mariadb数据库出现错误如下
1)
1558 – Column count of mysql.proc is wrong. Expected 21, found 20. Created with MariaDB 50564, now
mysql_upgrade -uroot -p
Enter password:
root@Administrator:~# cd /opt/lampp/bin
root@Administrator:/opt/lampp/bin# sudo ./mariadb-upgrade -uroot -p
解决如下:输入密码
mariadb-upgrade -h localhost -uroot -p
Enter password:
2)、mysqli::real_connect(): (HY000/1045): Access denied for user ‘pma’@’localhost’ (using password: YES)
解决如下:
创建用户 pma 主机名 localhost
user ‘pma’@’localhost’
解决方案
授权用户远程访问即可
- 格式:GRANT {权限} ON {库表} TO ‘{用户名}’@'{访问地址}’ IDENTIFIED BY ‘{密码}’
- #mysql中执行授权命令
GRANT ALL PRIVILEGES ON *.* TO ‘pma’@’localhost’ IDENTIFIED BY ‘PWD-2020’;
- #手动刷新权限
flush privileges;
- 权限:可以执行的操作权限,all privileges 所有权限,也可以是select,insert,update,delete等组合权限;
- 库表 : 可以操作的库和表,单库单表”db1.table1″,单库全表”db1.*”,全库全表“*.*”;
- 用户名:远程访问的用户名
- 访问地址:只允许用户在特定ip上链接数据库,“%”标识不限制IP。
- 密码:用户远程链接数据库的密码,默认密码规则需要包括大小写字符、特殊字符和数字。
https://blog.csdn.net/lizz861109/article/details/108081668
1045-Access denied for user ‘**‘@‘**‘ (using password: YES)错误处理

3.2.1 navicat ssl连接mariadb数据库备份如下

4.2.1.1 mariadb utf8mb4排序规则
MySQL–utf8mb4排序规则
utf8mb4排序规则
https://www.cnblogs.com/gaogao67/p/14721829.html
在MySQL中常见的utf8mb4排序规则有:
- utf8mb4_0900_ai_ci
- utf8mb4_unicode_ci
- utf8mb4_general_ci
当设置表的默认字符集为utf8mb4字符集但未明确指定排序规则时:
- 在MySQL 5.7版本中,默认排序规则为utf8mb4_general_ci。
- 在MySQL 8.0版本中,默认排序规则为utf8mb4_0900_ai_ci。
Docker 相关命令参考
https://docs.docker.com/engine/reference/commandline/images/
3.1.2 docker run -d -p 5000:5000 –name registry registry:2
Pull (or build) some image from the hub
docker pull registry
Tag the image so that it points to your registry
1)获取仓库,运行容器
docker pull registry
docker run –name registry -p 50001:50001 –restart=always -v registry:/var/lib/registry registry
docker run –name registry -p 50001:50001 –restart=always -v /opt/registry/:/var/lib/registry registry
docker run -d -p 5000:5000 –name registry registry:2
docker run –name registry -p 60000:60000 –restart=always -v /opt/registry/:/var/lib/registry/ registry:0.9.1
2)推送镜像到自己仓库。
https://blog.51cto.com/u_1014810/2105323?b=totalstatistic
查看已有镜像
将要push到registry的镜像镜像tag重命名
registry镜像命名规则:
registry仓库地址:端口/放置镜像文件夹名/镜像名:版本号
docker tag registry 192.168.1.10:5000/test/registry:0.71
docker image tag mysql:5.7 localhost:5000/myfirstimage2
docker push localhost:5000/myfirstimage2
3)查看仓库文件
http://192.168.99.133:5000/v2/_catalog
4)下载仓库文件
docker pull localhost:5000/myfirstimage2
3)查看root@roc:/c/Users/roc.jpress# curl http://192.168.99.133:5000/v2/_catalog
{“repositories”:[“myfirstimage”]}
root@roc:/c/Users/roc.jpress# docker ps
root@roc:/c/Users/roc.jpress# docker image ls
删除指定镜像文件:镜像ID相同,用容器名tag标志删除
root@roc:/c/Users/roc.jpress# docker image rm 192.168.99.133:5000/zhoufujin/apache:latest
Untagged: 192.168.99.133:5000/zhoufujin/apache:latest
docker image rm localhost:5000/myfirstimage2
Now stop your registry and remove all data
docker container stop registry && docker container rm -v registry
将要push到registry的镜像镜像tag重命名
registry镜像命名规则:
registry仓库地址:端口/放置镜像文件夹名/镜像名:版本号
docker tag centos 192.168.1.10:5000/test/centos:0.71
1.6)推送重命名的镜像到私有registry
docker push 192.168.1.10:5000/test/centos:0.71
测试查看是否成功
curl http://192.168.1.10:5000/v2/_catalog
返回则成功
{“repositories”:[“centos”]}
1.7) 在其他物理机上pull私有registry镜像
修改仓库地址,将仓库地址修改成自己的私有地址
{
“insecure-registries”:[“192.168.1.10:5000”]
}
pull 私有镜像
docker pull centos:0.7.1
https://blog.51cto.com/u_1014810/2105323?b=totalstatistic
https://docs.docker.com/registry/
3.1.3
一、老的电脑导出镜像文件
1、查看镜像命令:docker images
root@roc:/c/Users/roc.jpress# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 4181d485f650 10 days ago 448MB
registry latest 9c97225e83c8 2 weeks ago 24.2MB
fuhai/jpress latest 8eb702c5abc6 2 months ago 240MB
2、导出镜像
root@roc:/c/Users/roc.jpress# docker images
docker save -o registry.save.img.v1.tar 9c97225e83c8
https://blog.51cto.com/thedream/1655560
运行自己的docker registry
运行自己的docker registry
1.从容器运行registry
docker run -d -p 5000:5000 registry
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2c4d1944b536 registry:latest “docker-registry” 13 seconds ago Up 10 seconds 0.0.0.0:5000->5000/tcp mad_leakey
2.测试新registry
3.为本地的一个镜像打标签
docker tag 580949ea7897 192.168.32.16:5000/zhoufujin/apache
4.访问私有仓库
[root@localhost docker]# curl 127.0.0.1:5000/v1/search
{“num_results”: 0, “query”: “”, “results”: []} 私有仓库为空
5.修改docker配置文件定制url
/etc/sysconfig/docker
OPTIONS=’–selinux-enabled –insecure-registry 192.168.32.16:5000′
6.重启docker服务
从容器运行registry
7.上传镜像
[root@localhost docker]# docker push 192.168.32.16:5000/zhoufujin/apache
The push refers to a repository [192.168.32.16:5000/zhoufujin/apache] (len: 1)
Sending p_w_picpath list
Pushing repository 192.168.32.16:5000/zhoufujin/apache (1 tags)
511136ea3c5a: Image successfully pushed
5b12ef8fd570: Image successfully pushed
a30bc9f3097e: Image successfully pushed
e82bf4a08352: Image successfully pushed
71de305bc72d: Image successfully pushed
7871f0e862fd: Image successfully pushed
254de5f17d27: Image successfully pushed
c7b9cd7a6788: Image successfully pushed
580949ea7897: Image successfully pushed
五、phpmyadmin ssl配置
5.1phpmyadmin ssl 根据需要配置
sudo chmod -R 777 /opt/lampp/phpmyadmin/tmp/
5.1.1phpmyadmin ssl 配置出现错误
5.1.1.1mysqli::real_connect(): (HY000/1045): Access denied for user ‘pma’@’chanking.zhonjin.com’ (using password: NO)

解决如下:phpmyadmin 增加用户及连接域名
pma chanking.zhonjin.com
解决如下:新建pma 用户绑定域名 chanking.zhonjin.com 连接,设置密码
根据实际需要更新域名或者IP地址


1)导入镜像文件:
root@roc:/c/Users/roc.jpress# docker load -i mysql.5.7.save.img.v1.tar
root@roc:/c/Users/roc.jpress# docker load -i fuhai.jpress.latest.save.img.v1.tar
2)查看镜像
root@roc:/c/Users/roc.jpress# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 4181d485f650 8 days ago 448MB
<none> <none> 8eb702c5abc6 2 months ago 240MB
3)修改docker tag 镜像id 镜像名字:镜像版本
root@jpress4:/c/Users/roc.jpress# docker tag 4181d485f650 mysql:5.7
root@jpress4: /c/Users/roc.jpress# docker tag 8eb702c5abc6 fuhai/jpress:latest
docker tag 4181d485f650 mysql:5.7 && docker tag 8eb702c5abc6 fuhai/jpress:latest
3.1.1 docker pull registry

五、wordpress https配置 mariadb ssl连接配置
5.1wordpress ssl配置
5.1.2 wordpress ssl数据库安装配置
5.1.2.1 wordpress 必须先创建好数据库chanking (字符集utf8mb4)
5.1.3 wordpress ssl配置
wp-config.php修改如下
define(‘WP_SITEURL’, ‘http://192.168.110.15/’);
define(‘WP_HOME’, ‘http://192.168.110.15/’);
define(‘WP_TEMP_DIR’,dirname(__FILE__). ‘/wp-content/temp/’);
define(‘DB_SSL’, true);
define( ‘MYSQL_CLIENT_FLAGS’, MYSQLI_CLIENT_SSL );
// ** Database settings – You can get this info from your web host ** //
/** The name of the database for WordPress */
define( ‘DB_NAME’, ‘chanking’ );
/** Database username */
define( ‘DB_USER’, ‘steven_roc’ );
/** Database password */
define( ‘DB_PASSWORD’, ‘mV@#638Vxj*Tr7&h!y’ );
/** Database hostname define( ‘DB_HOST’, ‘localhost’ ); */
define( ‘DB_HOST’, ‘172.20.131.63’ );
/** Database charset to use in creating database tables. */
define( ‘DB_CHARSET’, ‘utf8mb4’ );
/** The database collate type. Don’t change this if in doubt. */
define( ‘DB_COLLATE’, ” );
define( ‘AUTH_KEY’, ‘]ynDtPPvF>4<YuNe5u3Gx): E.<_PiwT{7dJx;>R1QL;LcSL6P-Y(tRl(bnGTIYY’ );
define( ‘SECURE_AUTH_KEY’, ‘TFj@n(H;?f]b-f#ie]%/?7ZW/*Y{hsoZC`,<krHr VHf4C7Cqr9.;lvvg2rlC5-r’ );
define( ‘LOGGED_IN_KEY’, ‘k6l.+!%G/l&&UOjg.,aH/4Q]w&XR[uJE^qcWcv4VI-V&GXN%t(^/m0ch+}xNRmqP’ );
define( ‘NONCE_KEY’, ‘iwmP`=8QX@@n+YM$!*ab3%b@D+i;@oe6Vw{[v sny;C u>I.r)[TT.v;96b1O|<‘ );
define( ‘AUTH_SALT’, ‘Xq%bip89SreniMYhK3]u/^}^!x`(@PgBUU78){JiNC|#wa/+3MGSyghG.HAh?Vp2’ );
define( ‘SECURE_AUTH_SALT’, ‘Kp_ GS2XBvr<2~HnyBoFtc}xL&WA1BNP:ORGqWZ3^YPs;e*`vyfd,yQ<W!b~Va.a’ );
define( ‘LOGGED_IN_SALT’, ‘+! =Y~VY;wzBM2e5KRirV6}{ygfOt9# Orw–$51z/n9J7^3F.h1=b~Q0r0!B4NM’ );
define( ‘NONCE_SALT’, ‘ wP4]8{GaPk|WD7@n+slf-/3ct`Kt72|fH<|^u[)r#lgTlZo3(<dl/v4+UT(6sO5’ );
if ( ! defined( ‘ABSPATH’ ) ) {
#define( ‘ABSPATH’, __DIR__ . ‘/’ );
define( ‘ABSPATH’, __DIR__ . ‘/wp-content/temp/’ );
}
define(“FS_METHOD”, “direct”);
define(“FS_CHMOD_DIR”, 0777);
define(“FS_CHMOD_FILE”, 0777);
5.1.3 wordpress ssl升级配置FTP apache
wordpress升级配置FTP apache
- apache
关于wordpress 更新时需要FTP 服务器账户密码 的解决方法
首先进入 apache下的wordpress 的目录下 (这是apache服务器默认安装的路径)
cd /var/ww/html
接着,给wordpress整个文件夹进行赋值权限,如果不赋予权限 更新的时候会报权限不足的错误
(root 权限下进行)
chmod -R 777 /wordpress
然后: 进入wordpress 文件夹里面。修改wp-config.php 文件
vim wp-config.php
添加代码
define(“FS_METHOD”, “direct”);
define(“FS_CHMOD_DIR”, 0777);
define(“FS_CHMOD_FILE”, 0777);
wq保存文件
重启apache服务
service httpd restart
刷新界面进行更新
- Nginx
下面由WordPress教程栏目给大家介绍wordpress升级需设置ftp的解决,希望对需要的朋友有所帮助!
https://www.cnblogs.com/surplus/p/14647115.html
wordpress升级需设置ftp的解决
忽略ftp权限
每当我们想在wordpress上升级插件或者是升级wordpress的时候,就会弹出一个ftp登录,但是我们怎么跳过ftp登录呢
解决方法
打开我们的word press配置文件wp-config.php
| 1 | [18:35:08 root@zhang ~]#vim /apps/nginx/html/wordpress/wp-config.php |
然后在这个文件的最后一行下面添加上这两个777权限
| 1
2 |
define(“FS_CHMOD_DIR”, 0777);
define(“FS_CHMOD_FILE”, 0777); |
在给word press这个目录添加用户权限,假如我们用的是nginx用户执行word press这个服务。
| 1
2 |
[18:37:31 root@zhang ~]#chmod -R 777 /apps/nginx/html/wordpress/
[18:37:50 root@zhang ~]#chown -R nginx:nginx /apps/nginx/html/wordpress/ |
以上就是wordpress升级需设置ftp的解决方法。
注:在实际应用中发现,只需要执行chown -R www-data:www-data /var/www/html/即可解决,因为我的nginx是www-data运行的,给这个用户权限即可。
十、错误问题汇总
10.1 docker MySQL 问题汇总
10.1.1 docker 编译错误如下
1、MySQL in Docker on Ubuntu: Warning: World-writable config file is ignored
2、mysqld: [Warning] World-writable config file ‘/etc/mysql/my.cnf’ is ignored.
3、解决Warning: World-writable config file ‘/etc/my.cnf’ is ignored
4、mysql启动报错–initialize specified but the data directory has files in it
5、[ERROR] –initialize specified but the data directory has files in it. Abort
重新初始化:
解决方法:将数据目录下已存在的文件全部删除。如:rm -rf / /c/Users/roc.jpress/mysql5.7/etc.mysql/mysql/*
将/var/lib/mysql 清空或者建议备份,然后重新启动 mysql:
6、https://my.oschina.net/u/3264882/blog/3096059
win10 docker-toolbox环境 mysql 挂载 /var/lib/mysql 出错、未解决,现解决
‘/etc/my.cnf’ is ignored ,大概意思是权限全局可写,任何一个用户都可以写。mysql担心这种文件被其他用户恶意修改,所以忽略掉这个配置文件。导致无法进入,这也是mysql的安全机制之一。所以我们必须得改一些权限。设置其他用户不可写。
shell如下
解决方法如下:
1、vim /var/lib/mysql/my.cnf =>my.cnf内容如下
#20220226 innodb_use_native_aio=0
[mysqld]
user=mysql
innodb_use_native_aio=0
lower_case_table_names=1
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
datadir=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
2、修改权限如下:chmod 644 /etc/my.cnf
docker@roc:/c/Users/roc.jpress/mysql5.7/etc.mysql/mysql$ chmod 0444 my.cnf
docker@roc:/c/Users/roc.jpress/mysql5.7/etc.mysql/mysql$ chmod 0444 mysql.cnf
docker@roc:/c/Users/roc.jpress/mysql5.7/etc.mysql/mysql$ cd conf.d
docker@roc:/c/Users/roc.jpress/mysql5.7/etc.mysql/mysql/conf.d$ chmod 0444 mysql.cnf
docker@roc:/c/Users/roc.jpress/mysql5.7/etc.mysql/mysql/conf.d$ cd ..
docker@roc:/c/Users/roc.jpress/mysql5.7/etc.mysql/mysql$ cd mysql.conf.d
docker@roc:/c/Users/roc.jpress/mysql5.7/etc.mysql/mysql/mysql.conf.d$ chmod 0444 mysqld.cnf
docker@roc:/c/Users/roc.jpress/mysql5.7/etc.mysql/mysql$ ls -l
total 20
drwxrwxrwx 1 docker staff 0 Feb 18 01:25 conf.d
-r-xr-xr-x 1 docker staff 1587 Feb 26 16:03 my.cnf
-rwxrwxrwx 1 docker staff 1563 Feb 26 15:57 my.cnf.bak
-rwxrwxrwx 1 docker staff 839 Aug 3 2016 my.cnf.fallback
-r-xr-xr-x 1 docker staff 1232 Feb 26 15:04 mysql.cnf
-rwxrwxrwx 1 docker staff 1273 Feb 26 14:25 mysql.cnf.bak
drwxrwxrwx 1 docker staff 0 Feb 26 15:03 mysql.conf.d
root@roc:/c/Users/roc.jpress/mysql5.7/var.lib.mysql/mysql# chmod 0444 auto.cnf
4、
4.1.1.1 docker volume ls
4.1.1.1.1 docker volume ls
4.2导入镜像文件
word 导航窗格中 的“显示标题级别”默认为3级,是否可以修改默认显示级别?

自适应IP