Windows11 22H2 企业版web服务器部署wsl

 

Windows11 22H2 企业版web服务器部署

Wsl2 Ubuntu-22.04

Apache.mariadb.php.perl wordprepress

Nginx.mariadb.php.perl wordprepress ssl证书是生成

操作备份还原

By steven_roc

2023年10月6日星期五

目录

一、Ubuntu linux运行环境 1

1.1windows 11 wsl2 安装Ubuntu-22.04 更新相关软件 1

1.1.1Windows11 应用商店安装Ubuntu-22.04 1

1.1.2Windows使用WSL备份Linux子系统 2

1.1.2.1. Windows使用WSL备份Linux子系统 2

Windows使用WSL备份Linux子系统 3

1.1.2Windows使用WSL默认启动账户 3

1.1.2Windows使用WSL Ubuntu-22.04安装openssh 3

1.1.2Windows使用WSL Ubuntu-22.04 xampp-x64-8.2.4.0 3

1.1.2.1 chmod 755 3

1.1.2.2 chmod 755 3

二、xampp-8.2.4 apache https配置 4

2.1xampp apache https配置 4

2.3进入虚拟机Linux docker-compose up -d 后台交互运行 6

2.4 登录web服务器 7

2.4.1查看容器备份容器 8

2.4.2查看容器常用操作 8

2.2登录虚拟机docker-machine roc.jpress 12

三、mariadb ssl配置 12

3.1 mariadb数据库SSL配置 12

3.1.1 mariadb数据库更新密码 12

3.2 navicat ssl连接mariadb数据库 13

3.2 navicat ssl连接mariadb数据库出现错误如下 14

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

3.1.1 docker pull registry 15

1.6)推送重命名的镜像到私有registry 16

1.7) 在其他物理机上pull私有registry镜像 16

四、phpmyadmin ssl配置 18

4.1phpmyadmin ssl 根据需要配置 18

4.1.1phpmyadmin ssl 配置出现错误 19

4.1.1.1mysqli::real_connect(): (HY000/1045): Access denied for user ‘pma’@’chanking.zhonjin.com’ (using password: NO) 19

3.1.1 docker pull registry 22

五、wordpress https配置 mariadb ssl连接配置 23

5.1wordpress ssl配置 23

5.1.2 wordpress ssl数据库安装配置 23

5.1.2.1 wordpress 必须先创建好数据库chanking (字符集utf8mb4) 23

5.1.3 wordpress ssl配置 23

十、错误问题汇总 24

10.1 docker MySQL 问题汇总 24

10.1.1 docker 编译错误如下 24

4.1.1.1 docker volume ls 26

4.1.1.1.1 docker volume ls 26

4.2导入镜像文件 26

Table of Contents

一、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

  1. 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

  1. \\wsl.localhost\Ubuntu-22.04\etc\hosts 文件内容

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

https://nljb.gitee.io/default/Windows%E4%BD%BF%E7%94%A8WSL%E5%A4%87%E4%BB%BDLinux%E5%AD%90%E7%B3%BB%E7%BB%9F/

//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/

  1. $ 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

  1. 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

  1. 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

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

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压缩文件包,备份

  1. 当前目录下压缩文件 注意压缩解压缩切换到当前目录

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 切换管理员权限

  1. 容器内安装 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)

  1. 备份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’

https://stackoverflow.com/questions/75853037/mysqlireal-connect-hy000-1045-access-denied-for-user-pmalocalhost

解决方案

授权用户远程访问即可

  • 格式:GRANT {权限} ON {库表} TO ‘{用户名}’@'{访问地址}’ IDENTIFIED BY ‘{密码}’
  1. #mysql中执行授权命令

GRANT ALL PRIVILEGES ON *.* TO ‘pma’@’localhost’ IDENTIFIED BY ‘PWD-2020’;

  1. #手动刷新权限

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

  1. 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

刷新界面进行更新

  1. Nginx

wordpress升级需设置ftp的解决方法

下面由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导入镜像文件

https://answers.microsoft.com/zh-hans/msoffice/forum/all/word-%E5%AF%BC%E8%88%AA%E7%AA%97%E6%A0%BC%E4%B8%AD/43f8f7e2-e19e-4d34-b671-e8597cfa06ff?auth=1

word 导航窗格中 的“显示标题级别”默认为3级,是否可以修改默认显示级别?

您可能还喜欢...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注