之前曾經發現備份的wordpress站點恢復不可用,或者數據庫丟了或者圖片不見了,今天以備份站點并恢復到本地虛擬機為例說一下需要注意的幾個問題.
1、wordpress數據庫備份
默認的wordpress數據庫備份最簡單的就是直接拷貝數據庫文件,又簡單又快捷,但在我本地的虛擬機環境里恢復的時候發現一個表都不見了.
問題:wordpress常見都是使用MySQL數據庫,數據表默認使用的引擎為InnoDB,InnoDB速度會更快,但是它的問題就是不能直接復制文件備份數據庫,甚至刪掉它,也是不可以的,因為它還跟ibdata1這個文件有關,只能通過使用PHPMYADMIN或者其他MySQL GUI的工具導出數據庫再倒入到新的數據庫里.
如果還是想用文件拷貝的方式備份數據庫的話其實很簡單,只需將數據表的類型通過SQL語句更改為一般常用的MySIAM類型即可,不會影響wordpress的正常使用.
語句如下:
- 1.ALTER TABLE `wp_commentmeta` engine = MYISAM;
- 2.ALTER TABLE `wp_comments` engine = MYISAM;
- 3.ALTER TABLE `wp_links` engine = MYISAM;
- 4.ALTER TABLE `wp_options` engine = MYISAM;
- 5.ALTER TABLE `wp_postmeta` engine = MYISAM;
- 6.ALTER TABLE `wp_posts` engine = MYISAM;
- 7.ALTER TABLE `wp_terms` engine = MYISAM;
- 8.ALTER TABLE `wp_term_relationships` engine = MYISAM;
- 9.ALTER TABLE `wp_term_taxonomy` engine = MYISAM;
- 10.ALTER TABLE `wp_usermeta` engine = MYISAM;
- 11.ALTER TABLE `wp_users` engine = MYISAM;
記住,如果有插件數據表也記得要更改一下啊,否則丟掉就找不回來了,現在看起來似乎已經搞定了,但是發現在改變了數據庫引擎后還是在phpmyadmin中看不到數據庫的表,問題在哪兒呢?仔細查看了目錄后發現拷貝過來的wordpress數據庫文件夾和文件的用戶以及用戶組不對,原來在服務器上用戶和組都是nobody,拷貝過來都變成了root,而現在其他正常的數據庫文件用戶和組都是mysql,發現了文件解決就簡單了.
root#chown -R mysql:mysql yourwordpressdb 這次數據庫搞定了.
2、wordpress站點還是無法訪問,提示404錯誤
如果數據庫和用戶名發生變化,編輯 wp-config.php,確保已將它設置為正確的屬性值。
如果你想在轉移之前測試一下,你必須臨時改變一下數據庫表項”wp_options”中的”siteurl” 和 “home”值(可以通過類似phpMyAdmin的工具修改)。
如果你設置了任何的rewrites(永久鏈接),你需要禁用 .htaccess,成功設置后再重新配置永久鏈接。
這時發現直接訪問頁面或者index.php還是報404錯誤,但是可以通過本地網址訪問后臺了。
http://localhost/yourwordpress/wp-admin
把后臺設置以及固定鏈接設置回默認狀態,再試一下發現自己的wordpress已經恢復到正常狀態了。
數據備份與恢復
1,備份
我們假設在wordpress服務器上面的安裝路徑是/var/www/html/wordpress,備份的目錄為/home/quietheart/backup_wordpress。那么根據如下步驟進行備份:
1)備份wordpress相關內容:
備份網站服務器上wordpress安裝目錄的"wp-content"子目錄內容,以及"wp-config.php"文件內容,和其它你所修改的內容(如果有的話)。其中"wp-content"子目錄包含插件以及上傳的附件等;wp-config.php中的內容是一些配置信息例如鏈接什么數據庫等等。
過程如下:
- #cd /var/www/html/wordpress
- #tar -czvf /home/quietheart/backup_wordpress/wp-content.tgz wp-content
- #cp wp-config.php /home/quietheart/backup_wordpress
2)備份wordpress數據庫內容:
兩種方法:(目前采用第一種方法)
第一種使用插件:"WordPress Database Backup",直接生成備份好的數據庫。
第二種使用mysql命令(目前不好用,只提供一個思路):
實踐的過程如下:
# mysqldump -u quietheart -p123 --databases wordpress_db >mysql.wordpress
經過實踐,這個方法似乎不行,對比發現,兩種方法生成的數據庫文件內容是不同的,另外,還一個比較常用的備份數據庫的工具phpmyadmin.
綜上可知,備份的內容主要有:1)wp-content目錄的壓縮包。2)wordpress數據庫。3)修改的文件如wp-config.php。
2,恢復
假設在另外一臺主機上面恢復之前備份的wordpress程序,安裝路徑為/var/www/html/wordpress,需要恢復的數據的備份路徑為:/home/quietheart/backup_wordpress
大致過程如下:
1)下載你所備份的同樣版本的wordpress程序。
下載網址一般在www.wordpress.org能找到。
2)解壓下載的wordpress拷貝到網絡目錄中,將之前備份的wp-content拷貝進去
3)創建一個空數據庫(名稱隨便起,最好和備份數據庫同樣名稱)。
4)安裝wordpress
5)導入備份數據庫
下面給出具體的步驟:
- #cd /home/quietheart/tmpTrans
- #wget http://wordpress.org/latest.tar.gz
- #tar -xzvf latest.tar.gz
- #[ -d /var/www/html/wordpress2 ] && rm -rf /var/www/html/wordpress2
- #mv wordpress /var/www/html/wordpress2
- #firefox 10.1.2.213/wordpress2/wp-admin/install.php
- ...在打開的瀏覽器網頁中添加必要的信息...
- #mysql --default-character-set=utf8 -uquietheart -p quietheart<quietheart_wp_20110626_137.sql
這里,對于已經安裝過wordpress的我們來說,理解恢復時候每一條命令的含義,已經不是問題了。^_^
注意:latest.tar.gz最好應當是和你要恢復的wordpress的版本一樣。
使用firefox安裝之前要確保wp-config.php文件中的數據庫名稱和剛才導入使用的名稱一致(quietheart),另外使用mysql恢復的時候,如果不用"--default-character-set=utf8"選項會出現亂碼.
新聞熱點
疑難解答
圖片精選