Docker+MySQL+WordPress+Nginx小白建站全攻略,有手就会

配置Docker

自动安装脚本

curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
sudo sh get-docker.sh

如果失败就手动安装

手动安装

# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 设置仓库
sudo apt-get update
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \
$(lsb_release -cs) \
stable"

# 安装 Docker Engine-Community
sudo apt-get install docker-ce docker-ce-cli containerd.io

启动

注意!docker要在root模式下操作!

systemctl start docker
# 查看docker是否已启动
systemctl status docker
# 登录docker个人仓库
docker login
# 登出docker个人仓库
docker logout

MySQL

在安装MySQL之前先在服务器上建立一个文件夹用来存放修改配置文件,方便快速配置MySQL 

mkdir -p  software/mysql/conf  software/mysql/logs  software/mysql/data

安装MySQL

# 远程拉取MySQL的数据库
docker pull mysql

# 运行一个实例,设置密码为123456
docker run -it -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql

# 复制该实例的配置文件到服务器中
docker cp mysql:/etc/mysql/conf.d software/mysql/conf

# 删除旧实例
docker rm -f mysql

重新创建一个MySQL容器,并设置密码,这里我设置的为123456

docker run -it -d \
--name mysql \
-p 3306:3306 \
-v /home/admin/software/mysql/conf:/etc/mysql/conf.d \
-v /home/admin/software/mysql/logs:/logs \
-v /home/admin/software/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql
# 查看容器是否创建成功
docker ps

配置数据库

docker exec -it mysql  mysql  -uroot -p

docker exec -it mysql: 这一部分用于通过 Docker 进入一个名为 "mysql" 的运行中的容器。-it 参数允许你与容器交互。

mysql -uroot -p: 这一部分用于启动 MySQL 客户端并以 "root" 用户身份进行登录。-p 选项表示密码将在后续步骤中输入。

切换到 mysql 数据库,这是一个内置的数据库用于存储 MySQL 的系统和权限信息

use mysql;

修改数据库 user 表进行远程连接,并设置密码 d$KPUdx(&SdkkX+B8

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'd$KPUdx(&SdkkX+B8';

# 刷新修改
flush privileges;

本机登录数据库

docker exec -it mysql  mysql  -uroot -p

远程服务器访问

hostname就是主机ip地址

mysql -h <hostname> -u root -p

WordPress

安装wordpress

# 拉取wordpress
docker pull wordpress

# 先运行一个wordpress实例
docker run -it -d --name wordpress --link mysql:mysql -p 9001:80 wordpress 

# 从容器中复制目录到主机
docker cp wordpress:/var/www/html  /home/admin/software/wordpress

# 删除刚安装的容器
docker rm -f wordpress

重新运行 wordpress 容器

docker run -it -d --name wordpress -p 9001:80 \
 -v  /home/admin/software/wordpress/:/var/www/html \
 --link mysql:mysql \
 wordpress

初始化配置

这里参照MySQL的部分,建一个名为wordpress的数据库

docker exec -it mysql  mysql  -uroot -p
CREATE DATABASE wordpress;

切换到wordpress 数据库

use wordpress;

修改数据库 user 表进行远程连接,并设置密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'd$KPUdx(&SdkkX+B8';
flush privileges;

 修改WordPress具有对该文件夹的写权限。使用chown命令更改文件夹的所有者为与WordPress进程运行用户相同的用户(通常为www-data

chown -R www-data:www-data /home/admin/software/wordpress

设置文件夹的权限,以便WordPress可以写入该文件夹。

sudo docker exec -it wordpress /bin/bash
chmod -R 755 /var/www/html

设置好后打开浏览器输入

http://<hostname>:9001

进入wordpress初始化界面,输入设置的用户名、密码、数据库所在服务器的IP地址,点击Submit提交。


下一页面点击Install WordPress

汉化后台

在wp-config.php文件末尾加一句:

define( 'WPLANG', 'zh_CH' );

重启wordpress的docker,进入后台面板 Setting->Site Language->zh_CH,Save Changes

Dashboard->Updates

重启wordpress的docker,进入后台面板 Setting->Site Language->简体中文

大功告成,后续使用也是打开浏览器输入url:

http://<hostname>:9001

Nginx

# 远程仓库拉取 nginx
docker pull nginx 

# 运行一个 nginx 的容器
docker run -it -d --name nginx  nginx

# 复制配置文件
docker cp nginx:/etc/nginx/ /home/admin/software/

# 删除 nginx 的容器
docker rm -f nginx

重新建立一个 nginx 的容器

docker run -it -d \
 --name nginx \
-v /home/admin/software/nginx/:/etc/nginx/ \
-v /home/admin/software/nginx/logs:/var/log/nginx/ \
-v /home/admin/software/nginx/www/:/usr/share/nginx/html/ \
-p 80:80 -p 443:443 \
nginx
# 查看 nginx 是否正常运行
docker ps

HTTPS

腾讯云ssl证书申请

​​​​​​Nginx服务器ssl证书安装部署

按照以上步骤部署ssl证书

之前启动Nginx容器的时候是这样挂载文件的:

docker run -it -d \

--name nginx \

-v /home/admin/software/nginx/:/etc/nginx/ \

-v /home/admin/software/nginx/logs:/var/log/nginx/ \

-v /home/admin/software/nginx/www/:/usr/share/nginx/html/ \

-p 80:80 -p 443:443 \

nginx

这里上传ssl证书的路径就是 /home/admin/software/nginx/

修改default.conf配置文件如下,记得更换你自己的域名

nano  /home/admin/software/nginx/conf.d/default.conf
server {
        listen 80;
        listen [::]:80;
        server_name cognimatrix.com www.cognimatrix.com;

        location / {
            return 301 https://$host$request_uri;
        }
    }


server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name  cognimatrix.com www.cognimatrix.com;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        root /usr/share/nginx/html;
        # SSL 配置
        ssl_certificate /etc/nginx/cognimatrix.com_bundle.crt;
        ssl_certificate_key /etc/nginx/cognimatrix.com.key;
        ssl_session_timeout 5m;
        #请按照以下协议配置
        ssl_protocols TLSv1.2 TLSv1.3; 
        #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;

        location / {
        proxy_pass http://35.167.53.27:9001/;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Raph98

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值