記錄一次wordpress站點遷移過程
阿新 • • 發佈:2018-12-11
遷移和備份還原的區別是針對不同的install
而言的,使用上的區別可能是訪問的IP
會變
幾乎所有系統的備份還原都主要涉及下面兩個方面,wordpress也不例外:
- 資料庫:mysqldump,或者應用自身帶的備份生成xml(與具體資料庫無關)
- 檔案系統(外掛、附件等):直接拷貝
/var/www/html
或者只拷貝關鍵目錄
1 docker部署
上一此直接在宿主機上安裝apache
、mysql
和wordpress
部署的,這次使用docker
部署(docker
和docker-compose
安裝略)
docker-compose.yml
檔案如下:
version: '3.3' services: db: image: mysql:5.7 volumes: - ./db_data:/var/lib/mysql restart: always ports: - "6033:3306" environment: MYSQL_ROOT_PASSWORD: xxxxx MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "80:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress
wordpress
關鍵的是文章,這種資料是存在資料庫的,所以資料庫永續性的掛載出來,wordpress
的檔案系統不重要沒掛載出來
2 原站點備份
這裡直接使用的是UpdraftPlus Backup/Restore
進行資料庫、外掛和主題等的備份
也可以:
mysqldump
使用的wordpress資料庫- 拷貝整個
/var/www/html
3 新站點還原
同樣,直接使用UpdraftPlus Backup/Restore
上傳Upload backup files
剛剛備份的檔案,進行還原,還原過程中會提示尼這是站點遷移,忽略繼續,完成後站點就不能訪問了(如果訪問地址變了),則連線資料庫,更新如下表:
UPDATE wp_posts SET guid = replace(guid, 'http://old ip/', 'http://new ip/');
UPDATE wp_options SET option_value = replace(option_value, 'http://old ip/', 'http://new ip/');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://old ip/', 'http://new ip/');
在資料庫中把之前的訪問地址,換成現在的地址
也可以:
- 使用之前的
/var/www/html
- 還原資料庫(dump生成的是sql檔案)
- 修改
wp-config.php
中的資料庫配置資訊 - 若訪問地址修改了,則同樣按上述更新相關表
4 出現的問題
問題一:Workbench使用
update wp_posts set guid=replace(guid,"http://been.ltd","http://114.116.85.188");
更新時報錯:
You are using safe update mode and you tried to update a table
without a WHERE that uses a KEY column To disable safe mode,
toggle the option in Preferences -> SQL Editor and reconnect.
解決:不讓批量更新的意思,關閉safe mode
問題二:update過後,站點可以訪問了,但是之前customer的menu裡面的連線沒變
解決:第三句update漏掉了,匹配的是http://been.ltd/
而不是http://been.ltd