事件概述
之前在騰訊雲伺服器上搭建了一個內部wiki,使用的是docker-wordpress+docker-mysql的搭建方法,如今需要將網站遷移到本地伺服器中,這裡記錄一下操作方法以及踩的一些坑。
數據備份
首先需要將原網站的一些內容備份下來
1.資料庫備份並導出
docker exec -it mysql mysqldump -uusername -ppassword -ddatabase > /localpath/wordpress.sql備註:database為需要導出的資料庫名2.將wordpress容器中的內容導出到本地
docker cp wordpress:/var/www/html/wp-content/ /localpath/在新的伺服器上搭建環境
1.將鏡像拉到本地:
docker pull wordpress:latestdocker pull mysql:latest2.運行鏡像:
2.1.首先運行mysql鏡像,這裡的mysql版本為mysql-8
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress -v mysql-data:/var/lib/mysql mysql備註:--name 為運行後的容器名,默認帳戶為root,-e MYSQL_ROOT_PASSWORD為mysql登錄密碼,並創建一個新的資料庫名為wordpress2.2.進入容器:
docker exec -it mysql /bin/bash2.3.登錄資料庫:
mysql -uroot -proot備註:此處密碼為-e MYSQL_ROOT_PASSWORD參數設定的密碼2.4.修改資料庫密碼:
這時可以看到root用戶的加密方式為caching_sha2_passoword,而navicat連接所用的方式為native_password。mysql為遠程連接和本地連接提供了不同的密碼驗證方式,因此需要對驗證方式進行修改。
use mysql;select host,user,plugin from users;備註:
1、修改遠程連接資料庫密碼:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'remotepassword';注意:這裡修改的密碼不是上面-e MYSQL_ROOT_PASSWORD參數設定的密碼,而是搭建wordpress時連接資料庫的密碼,修改後登錄資料庫密碼是不會變的。
2、如果需要修改資料庫密碼:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'localpassword';3、另外,如果之前搭過docker的mysql鏡像,且存在數據卷(volume)沒有清理的話,登錄時可能會出現密碼錯誤的情況,這是鏡像在加載時使用了現有的數據卷,需要用之前的mysql密碼登錄,不過如果之前的環境不需要了或者搭載容器失敗後想重新搭載,還是建議刪除數據卷
查看現有數據卷:
刪除數據卷:
docker volume rm volume-name2.5.運行wordpress鏡像
docker run -d --name wordpress --link mysql:mysql -p 8080:80 wordpress訪問localhost:8080 這裡連接資料庫時使用的就是remotepassword,注意主機需要改為mysql(你的mysql容器名)
如果是第一次搭建wordpress的話,接下來就設置網站登錄帳號密碼就好,如果是做遷移,之後的註冊界面可以隨意填寫,成功搭建後開始導入備份
導入備份
1.導入網站備份
將本地備份文件拷貝到容器中:
docker cp /localpath/wp-content wordpress:/var/www/html/進入wordpress容器:
docker exec -it wordpress /bin/bash修改備份文件的權限:
chwon -R www-data:www-data wp-content2.導入資料庫備份
將本地資料庫備份拷貝到容器中:
docker cp /localpath/wordpress.sql mysql:/登錄資料庫:
mysql -uroot -plocalpassword導入備份:
use wordpresssource /wordpress.sql修改原資料庫中的連結:
UPDATE wp_options SET option_value = REPLACE(option_value,『舊地址』,『新地址』);UPDATE wp_posts SET post_content = REPLACE(post_content,『舊地址』,『新地址』);UPDATE wp_posts SET post_excerpt= REPLACE(post_excerpt,『舊地址』,『新地址』);UPDATE wp_postmeta SET meta_value = REPLACE(meta_value,'舊地址','新地址');至此,網站遷移完畢,網站打開後會有一些配置失效,但在後臺自定義修改一下即可,背景圖片可能需要從上傳內容中重新導入,無需重新上傳,模板也可以正常加載。
記一次搭建靶場滲透過程(1)
記一次搭建靶場滲透過程(2)
記一次搭建靶場滲透過程(3)
團隊介紹
銀河護衛隊super,是一個致力於紅隊攻防實戰、內網滲透、代碼審計、安卓逆向、安全運維等技術乾貨分享的隊伍,定期分享常用滲透工具、復現教程等資源。歡迎有想法、樂於分享的具備網際網路分享精神的安全人士進行交流學習。點擊關注銀河護衛隊super