IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 使用docker搭建网站 -> 正文阅读

[系统运维]使用docker搭建网站

1.安装 docker

Linux 系统上使用 docker 大大降低了我们使用各种软件的门槛,推荐有兴趣的同学一定要去学习一下 docker,
docker 安装的官方网站,复制命令一步步执行即可:
docker 安装命令如下复制安装即可:
(这里有个问题就是是否需要用root用户,后面需要再确定)

sudo yum install -y yum-utils device-mapper-persistent-data  lvm2

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install -y docker-ce docker-ce-cli containerd.io

经过上述三个步骤,恭喜你,你的docker 安装成功了,下面运行 docker , 命令如下,启动 docker :

systemctl start docker 

查看 docker 是否已经被启动,

systemctl status docker 

如果你这里显示的是激活(active)状态 ,恭喜你的 docker 安装成功了 !!!

2.安装 mysql

在安装 mysql 之前先在 server 上建立一个文件夹用来存放修改配置文件,方便我们快速配置 mysql :

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

下面做如下的操作来安装 mysql :

远程拉取 mysql 的数据库

docker pull mysql

首先运行一个实例:

docker run -it -d  -- name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql

复制该实例的配置文件到 server 当中:

docker cp mysql:/etc/mysql/conf.d ~software/mysql/conf 

删除旧的实例:

docker rm -f mysql

重新创建一个 mysql 容器:

docker run -it -d 
--name mysql
 -p 3306:3306 
-v ~/software/mysql/conf:/etc/mysql/conf.d 
-v ~/software/mysql/logs:/logs 
-v ~/software/mysql/data:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=123456 
mysql

查看容器是否创建成功:

docker ps

如果有列出 mysql ,证明你的 mysql 安装成功了 !!!

以上的操作步骤就是成功安装了一个 mysql 数据库很简单有木有 ? 下面有一个问题就是这个数据库是不支持远程连接的,下面配置远程连接:

运行一下命令登陆数据库:

docker exec -it mysql  mysql  -uroot -p

输入密码进入数据库即可。
配置远程连接的操作如下:
设置远程连接,切换到 mysql 数据库:

use mysql;

修改数据库 user 表进行远程连接:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

刷新修改:

flush privileges;

到这里你可以愉快的使用数据库了,恭喜你!!!

3.安装 wordpress

wordpress 是什么就不做介绍了,请使用你的搜索引擎先去了解一下

下面我们来安装 wordpress :

远程仓库拉取 wordpress:
docker pull wordpress

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

复制现有的 wordpress  文件到当前 server :
docker cp wordpress:/var/www/html  ~/software/wordpress

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

重新安装 wordpress 容器:
docker run -it -d --name wordpress -p 9001:80 -v  ~software/wordpress/:/var/www/html --link mysql:mysql wordpress 

都这里我们的网站就出来了,下面打开浏览器输入:
http://你自己server的ip:9001
恭喜你, 你的网站出来了 !!!

根据上面的步骤操作一个网站也就出来了,但是使用 wordpress 上传图片和视频的时候是限制大小的,如何配置大小呢?
修改 ~/software/wordpress 文件夹下面的 .htaccess 文件,打开增加如下两行:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#增加如下两行配置上传文件的大小
php_value post_max_size 24M
php_value upload_max_filesize 8M

重启 wordpress :

docker restart wordpress

请去优化自己的网站吧,美不美,帅不帅,有你决定!!!

4.安装 nginx

经过上面的安装,一个网站已经出来了,但是有美中不足之处,如何绑定域名到网站上面呢?下面我们使用 nginx 来解决这个问题。

安装 nginx:

远程仓库拉取 nginx:
docker pull nginx 

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

复制配置文件:
docker cp nginx:/etc/nginx/ ~/software/

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

重新建立一个 nginx 的容器:
docker run -it -d
 --name nginx
-v ~/software/nginx/:/etc/nginx/
-v ~/software/nginx/logs:/var/log/nginx/ 
-v ~/software/nginx/www/:/usr/share/nginx/html/ -p 80:80 
nginx

查看 nginx 是否正常运行:

docker ps 

看一下运行的服务当中是否有 nginx , 有,恭喜你 ,nginx 安装成功了!!!

下面来进行 nginx 配置通过域名来访问我们的网站,打开 ~/software/nginx/conf.d/default.conf, 需要使用到 vim ,不会使用vim 的推荐阅读本人的 vim 文章,很详细:

vim  ~/software/nginx/conf.d/default.conf

修改配置文件如下:
server_name 配置新申请的域名,如下我的域名是 zempty.sg 和 www.zempty.sg
proxy_pass 配置自己 wordpress 的访问路径: http://zempty.sg:9001

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  www.zempty.sg zempty.sg
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        proxy_pass http://zempty.sg: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 {
        }
    }

做完以上操作 , 恭喜你 ,你可以通过域名访问你的网站了,浏览器输入域名试一下吧 😀 。

5.添加 https

现在的浏览器如果没有通过 https 访问就会提示不安全,既然网站都搭建好了,为什么不去做安全处理呢?下面我通过使用免费的 ssl 证书来解决这个问题,现在去购买证书着实有点贵呀,个人网站用个免费的加密挺好,下面进行 https 加密配置详解,步骤很简单,跟着一步步来很快解决问题?

重新配置一下 nginx 。
同上面的第四点nginx 的操作步骤相同,区别是多打开一个 443 端口,在这里很重要,我因为这个端口没有打开曾折腾了很久,很羡慕你看到了这篇文章。

docker run -it -d
 --name nginx
-v ~/software/nginx/:/etc/nginx/
-v ~/software/nginx/logs:/var/log/nginx/ 
-v ~/software/nginx/www/:/usr/share/nginx/html/
-p 80:80 
-p 443:443
nginx

生成 ssl 证书
免费的 ssl 证书应该怎么生成呢?
提供一个 github 的地址:https://github.com/certbot/certbot ,这个仓库可以帮我们生成 ssl 证书,太良心,start 一下吧!
请在 server 上先安装git:

yum install git 

拉取远程仓库到本地:

git clone [https://github.com/certbot/certbot]

切换到仓库根目录下面,这里我把仓库放在 ~/software 下面:

cd ~/software/certbot

关键一步生成 ssl 证书:

先关闭 nginx :

docker stop nginx

生成证书:

./certbot-auto certonly -m kickcodeman@qq.com -d zempty.cf -d www.zempty.cf

解释一下上面命令的几个参数: -m 后面是自己的邮箱, -d 后面的自己的域名,一般有两个,按照屏幕提示一步步操作下去最终在 /etc//etc/letsencrypt/live/个人域名目录/ 下面会有 fullchain.pem 和 privkey.pem 两个文件.

请把这两个文件移动到 ~/software/nginx/ 下面:

cp  /etc/letsencrypt/live/个人域名目录/fullchain.pem  ~/software/nginx

cp  /etc/letsencrypt/live/个人域名目录/privkey.pem  ~/software/nginx

配置 ~/software/nginx/conf.d/defalut.conf 文件:
切换到配置文件目录:

cd  ~/software/nginx/conf.d 

打开配置文件作如下配置:

vim default.conf
server {
        listen       80 default_server;
        server_name www.zempty.cf zempty.cf;
        return         301 https://$server_name$request_uri;

   }

  server {
        listen       443 ssl;
        server_name  zempty.cf www.zempty.cf;
        ssl_certificate fullchain.pem;
        ssl_certificate_key privkey.pem;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        autoindex on;

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

        }

    }

启动 nginx :

docker restart nginx 

请打开你的浏览器输入你的域名 www.zempty.cf ,可以看到 https 访问网站成功,
恭喜你,到这里你的网站已经做出来了!!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 17:01:25  更:2021-07-31 17:01:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 17:34:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码