自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Wordpress 容器化、HTTPS化全攻略

安全
大家可能都在用Wordpress寫博客,之前都都是買個VPS部署一個一鍵L/WAMP程序完成整個部署,部署可能也容易但是操作比較費勁。

 大家可能都在用Wordpress寫博客,之前都都是買個VPS部署一個一鍵L/WAMP程序完成整個部署,部署可能也容易但是操作比較費勁。前兩天蟲蟲的博客VPS出問題導(dǎo)致數(shù)據(jù)丟失,需要重新部署,在這次部署中為了追求***使用了docker容器方式并對網(wǎng)站升級使用全站HTTPS的方式進(jìn)行部署,站點支持TLS 1.3協(xié)議以***程度提高性能,本文蟲蟲就給大家介紹整個部署的全過程供大家參考優(yōu)化。

[[269080]]

 

概述

站點采用Docker方式部署,使用兩個容器一個是mysql 5.7數(shù)據(jù)庫容器,一個是apache(2.4.25)、php(7.3.6),Wordpress(5.2.2)容器,容器部件都是***版本。為了安全連個容器都映射到宿主機127.0.0.1端口不直接對外提供服務(wù)。宿主機上部署nginx***版本1.17反向代理到容器,nginx對外提供https服務(wù):使用TLS 1.3協(xié)議,證書是從Let's Encrypt申請免費SSL,可以一鍵申請證書并且免費3個月更新。整個架構(gòu)結(jié)構(gòu)如下:

 Wordpress 容器化、HTTPS化全攻略(一)

VPS和容器環(huán)境準(zhǔn)備

基礎(chǔ)VPS環(huán)境是centos 7.2,默認(rèn)是vi我們先將它換成vim

  1. yum install vim 

掛載VPS數(shù)據(jù)盤

初始化VPS數(shù)據(jù)盤,注意該盤為外掛的盤VPS變化重新初始化時候數(shù)據(jù)不會丟失,一般為sdb,比如蟲蟲的盤,60G

 

Wordpress 容器化、HTTPS化全攻略(一)

 

創(chuàng)建分區(qū)并格式化

  1. fdisk /dev/sdb 
  2. mkfs.ext4 /dev/sdb1 

掛載,掛載目錄我們設(shè)為/data

  1. mkdir /data 
  2. mount /dev/sdb1 /data 

修改/etc/fstab實現(xiàn)重啟自動掛載:

通過dumpe2fs或者blkid查看磁盤UUID

  1. d179868b-6fb9-414c-8901-b990f7c586bd 

 

Wordpress 容器化、HTTPS化全攻略(一)

 

  1. echo 'UUID="d179868b-6fb9-414c-8901-b990f7c586bd" /data ext4 defaults 0 0' >>/etc/fstab 

mount –a測試fstab配置,如果沒提示表示正確,如果有錯誤會顯示,比如我們給UUID前面加個1,測試信息如下:

 

Wordpress 容器化、HTTPS化全攻略(一)

 

更換防火墻關(guān)閉selinux

系統(tǒng)其默認(rèn)的防火墻firewalld,先將其修改為比較熟悉稱手的iptables:

  1. yum install iptables iptables-services 
  2. systemctl disable firewalld 
  3. systemctl stop firewalld 
  4. systemctl enable iptables 
  5. systemctl start iptables 

selinux配置太復(fù)雜,我們先暫時關(guān)閉(在正式生產(chǎn)環(huán)境不建議該操作):

  1. setenforce 0 

為了一直關(guān)閉,需要修改其配置文件,這樣重啟后就不會再加載。方法

  1. perl -i -lpe 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 

更改ssh安全配置

為了VPS已經(jīng)修改掉系統(tǒng)默認(rèn)的ssh 22端口,并且禁止root登陸,方法修改/etc/ssh/sshd_config,查找Port去掉其前面的注釋#號,并把22修改為其他端口,比如12322:

  1. Port 12322 

增加一行" PermitRootLogin no"禁止root登陸:

Wordpress 容器化、HTTPS化全攻略(一)

事先添加證書登陸,然后禁止密碼登錄方式"PasswordAuthentication no":

Wordpress 容器化、HTTPS化全攻略(一)

防火墻開啟新sshd端口,并刪掉22端口

  1. iptables -I INPUT -p tcp -m state --state NEW -m tcp -dport 12322 -j ACCEPT 

重啟sshd服務(wù)

  1. systemctl restart sshd.service 

用新端口證書方式訪問服務(wù)器,如果沒有問題:

刪掉22端口

  1. iptables -D INPUT -p tcp -m state --state NEW -m tcp -dport 22 -j ACCEPT 

保存防火墻規(guī)則

  1. systemctl save sshd.service 

添加epel和源管理工具

  1. yum install epel-releaseyum install -y yum-utils 

docker和容器部署

添加docker源

 

Wordpress 容器化、HTTPS化全攻略(一)

 

安裝docker服務(wù)

  1. yum install docker-ce docker-compose 
  2. systemctl enable docker  
  3. systemctl start docker  

啟用docker過程中報了一個錯誤"SELinux is not supported with the overlay2 graph drive...false",原因是linux的內(nèi)核中的SELinux不支持 overlay2 graph drive,解決方法,修改docker配置文件/etc/sysconfig/docker修改--selinux-enabled為--selinux-enabled=false

 

Wordpress 容器化、HTTPS化全攻略(一)

 

還有一個典型錯誤如下:

 

Wordpress 容器化、HTTPS化全攻略(一)

 

fatal msg="Error starting daemon: error initializing graphdriver: "/var/lib/docker" contains several valid graphdrivers: devicemapper, overlay; Please cleanup or explicitly choose storage driver (-s )"是由于docker初始化數(shù)據(jù)有問題導(dǎo)致,只需清理/var/lib/docker/目錄下文件

"rm -rf /var/lib/docker/",然后重啟就OK了

拉取docker應(yīng)用鏡像

  1. docker pull wordpress 
  2. docker pull mysql:5.7.25 

遷移docker數(shù)據(jù)目錄

  1. systemctl stop docker.service 
  2. mv /var/lib/docker /data/docker 

vim /usr/lib/systemd/system/docker.service 查找ExecStart給其參數(shù)增加:

"--graph /data/docker":

 

Wordpress 容器化、HTTPS化全攻略(一)

 

重新加載配置文件

  1. systemctl daemon-reload 

重啟docker服務(wù)

  1. systemctl restart docker.service 

創(chuàng)建應(yīng)用數(shù)據(jù)目錄

首先是數(shù)據(jù)庫mysql目錄:

  1. mkdir -p /data/web/data 
  2. chown -R 999:999 /data/web/data 

網(wǎng)站目錄:

  1. mkdir /data/web/webapps 
  2. chown -R 33:33 /data/web/webapps 

啟動應(yīng)用容器

mysql容器:

  1. docker run --name mysql -h mysql  
  2. --restart=always  
  3. -e MYSQL_ROOT_PASSWORD=wp12345  
  4. -p 127.0.0.1:13306:3306  
  5. -v /data/web/data:/var/lib/mysql  
  6. -d mysql:5.7.25 

注意上面加重的參數(shù)表示mysql的root初始化密碼,需要根據(jù)實際修改。

wordpress應(yīng)用容器

  1. docker run -h wordpress --name wordpress  
  2. --restart=always  
  3. --link mysql:mysql  
  4. -p 2880:80  
  5. -v /data/web/webapps:/var/www/html  
  6. -d wordpress 

注意上面黑體表示連接到mysql容器,注意兩個服務(wù)啟動順序,現(xiàn)有mysql,wordpress放棄才能連接到這個數(shù)據(jù)庫,在宿主機上映射的端口為2880。

數(shù)據(jù)遷移

以上兩個個容器啟動后,wordpress部署就完全完成,現(xiàn)在通過瀏覽器訪問

http://ip:2880就可以訪問到wordpress安裝界面了。

就可以通過web安裝wordpress和配置了。

 

Wordpress 容器化、HTTPS化全攻略(一)

 

有可能報錯數(shù)據(jù)庫連接錯誤:

 

Wordpress 容器化、HTTPS化全攻略(一)

 

提示信息表示數(shù)據(jù)庫服務(wù)沒有創(chuàng)建wordpress數(shù)據(jù)庫,這時候需要連接到mysql容器:

  1. docker exec -it mysql /bin/bash 

在容器中執(zhí)行mysql -uroot -p 輸入上面我們設(shè)置mysql密碼,wp12345

在mysql命令行創(chuàng)建一個數(shù)據(jù)庫wordpress

create database wordpress;

然后再訪問就可以了

 

Wordpress 容器化、HTTPS化全攻略(一)

 

注意該處保存好系統(tǒng)給你設(shè)置的密碼,或者修改為自己的密碼。

進(jìn)過以上步驟,一個全新版本的wordpress服務(wù)就可以:

Wordpress 容器化、HTTPS化全攻略(一)

安裝好后需要遷移歷史數(shù)據(jù),最主要是兩部分?jǐn)?shù)據(jù):數(shù)據(jù)庫數(shù)據(jù)和上傳的文件數(shù)據(jù)。

上傳文件數(shù)據(jù)遷移:

這部分遷移很簡單把以前保存的目錄中的wp-content下的uploads目錄復(fù)制過來所有上傳數(shù)據(jù)就ok了。

數(shù)據(jù)庫遷移:

數(shù)據(jù)庫遷移,如果wordpress版本相同,可以直接把以前保存的數(shù)據(jù)文件導(dǎo)入到新數(shù)據(jù)庫就可以。如果版本不同需要注意版本差異,否則會導(dǎo)致錯誤,可以只導(dǎo)入wp-post和wp-comments這兩個表的數(shù)據(jù)。

通過wordpress導(dǎo)入導(dǎo)出功能:

如果你以前通過wordpress的導(dǎo)出插件導(dǎo)出過歷史數(shù)據(jù),就可以利用它導(dǎo)入所有數(shù)據(jù)信心,結(jié)合uploads目錄導(dǎo)入文件就可以***恢復(fù)歷史數(shù)據(jù)。具體方法:

點擊"工具"-"導(dǎo)入":

Wordpress 容器化、HTTPS化全攻略(一)

在該頁面點擊WordPress下的現(xiàn)在安裝,先安裝該插件。安裝后點擊"插件":

Wordpress 容器化、HTTPS化全攻略(一)

點擊"啟用"。

然后再返回"工具"-"導(dǎo)入":

Wordpress 容器化、HTTPS化全攻略(一)

點擊"運行導(dǎo)入器"。

Wordpress 容器化、HTTPS化全攻略(一)

彈出頁面選擇以前保存的xml文件,然后點擊"上傳并導(dǎo)入"按鈕,

Wordpress 容器化、HTTPS化全攻略(一)

選擇好需要遷移的用戶,點解"Submit"按鈕。

根據(jù)保存文件大小,該步驟需要比較長的時間。***會顯示如下頁面,表示導(dǎo)入過程已經(jīng)完成:

 

Wordpress 容器化、HTTPS化全攻略(一)

 

文章頁面:

 

Wordpress 容器化、HTTPS化全攻略(一)

 

遷移問題

遷移目前遇到問題有些插件不好使用,最主要是代碼高亮插件"Crayon Syntax Highlighter"在***版本中不能用了,啟用該插件后,前臺不能顯示文章列表和內(nèi)容,目前還未知道解決方案,暫時安裝了另一個代碼高亮插件"Enlighter"來代替。

總結(jié):

本文我們使用部署中docker容器方式重新部署和遷移了Wordpress站點,涉及了VPS基礎(chǔ)設(shè)置、docker容器環(huán)境和安裝、應(yīng)用容器的安裝和Wordpress歷史數(shù)據(jù)的遷移。限于篇幅我們總體文章分兩篇來介紹,本文第二篇將介紹nginx編譯安裝支持TLS 1.3,站點https設(shè)置和wordpress https化存在的問額和解決。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2019-02-18 08:57:44

虛擬化云計算云服務(wù)

2013-06-08 11:13:00

Android開發(fā)XML解析

2024-05-07 09:01:21

Queue 模塊Python線程安全隊列

2013-04-15 10:48:16

Xcode ARC詳解iOS ARC使用

2010-04-23 14:04:23

Oracle日期操作

2014-03-19 17:22:33

2009-12-14 14:32:38

動態(tài)路由配置

2009-10-19 15:20:01

家庭綜合布線

2009-02-20 11:43:22

UNIXfish全攻略

2010-11-23 10:45:02

基礎(chǔ)設(shè)施虛擬化

2009-12-17 16:15:00

CCNA640-810

2010-08-25 14:36:02

DHCP服務(wù)器

2020-11-23 15:21:12

Linux環(huán)境變量

2009-02-12 10:12:00

NAT配置

2009-07-17 17:43:49

Jruby開發(fā)Web

2009-11-10 12:08:15

2024-10-25 15:25:42

2020-12-28 10:50:09

Linux環(huán)境變量命令

2009-10-12 15:06:59

2022-10-21 11:30:42

用戶生命周期分析
點贊
收藏

51CTO技術(shù)棧公眾號