[PHP]幫你把資料庫輕鬆備份到電子信箱的好軟體–Backup2Mail

3
7,782 人次

image

使用PHP+MySQL架站的玩家們,是不是擔心自己的資料庫沒備份呢?沒關係,今天阿正老師要來介紹一支非常小巧又好用的程式—Backup2Mail,能幫你手動或排程備份資料庫喔!只要先設定好資料庫的帳密,就能輕鬆備份到你的信箱了,不必再用PhpMyAdmin之類的程式辛苦備份啦!

一般架設網站的玩家,除非是有很重要的資料,通常沒有定期備份資料庫的習慣,不是不會排程備份,就是嫌手動備份太麻煩。如果使用虛擬主機的玩家,更應該時常備份,因為曾經有主機商發生過資料庫損毀,造成資料遺失的狀況。

今天要介紹的Backup2Mail,就是一套非常簡單的備份程式,只要設定一次,就能幫你定期備份了到Email信箱中,尤其是現在的免費信箱(如Gmail, Yahoo, Livemail)空間非常大,想每天備份,連續備個兩年都沒問題啦!

Backup2Mail

1.
連上官方網站,下載Backup2Mail 0.16版。

image

2.
下載後解壓縮,會得到一個backup2mail-0.16資料夾,裡面有個index.php,使用文書編輯軟體進行編輯,並修改裡面的幾個設定(見下圖):

image

資料庫有四項設定,如果你忘了本來的架站程式使用的帳密資料,可以去查查看你原本的設定檔(如WordPress的wp-config.php)。下方的$website輸入自己網站的網域名稱,$send_to則是收件人的電子信箱。

3.
將index.php上傳到你的網站中。建議可先將檔名改成backup2mail.php,再上傳到你的使用者目錄或網站目錄中。

※如果你的網站管理後台(如Cpanel, Plesk, DirectAdmin…)支援排程工作,或是擁有ssh到主機的權限,可以將該程式上傳到使用者目錄即可。

如果不支援排程,則需上傳到網頁資料夾中,另外建立一個backup2mail資料夾,將該資料夾權限改成777,透過瀏覽器進行手動備份

4.
進入管理後台,點選工作排程(Crontab),以下是Cpanel的畫面。

image

5.
按下〔標準〕按鈕:

image

6.
在「執行的指令」處,輸入:

php /檔案的路徑/backup2mail.php

檔案的路徑要換成上傳程式的絕對路徑,含 /home

然後選擇你要備份的時間,如下圖就是設定每天半夜3:00整進行備份。

image

7.
完成之後,隔天就能收到你的資料庫備份郵件了,一共會有兩封,一封是資料庫備份壓縮檔(副檔名是.sql.gz),一個是備份紀錄檔(backup_log.txt)。

image

image

※如果不想收到備份紀錄檔,可修改主程式34行,把true改成false即可。

$send_log  = false;   

透過瀏覽器進行手動備份

如果你的網站不支援排程,要進行手動備份,可以先在網頁目錄下建立一個資料夾(如backup2mail, 資料夾名稱不要太好猜,以免別人常常幫你備份… XD),將該資料夾權限改成777,透過瀏覽器進行手動備份。(因為Backup2Mail會建立備份暫存檔及紀錄檔,需要網頁使用者寫入權限)

接著用瀏覽器開啟你的Backup2Mail程式,如:

http://xxx.xx.xx/backup2mail/backup2mail.php

如果出現以下畫面,表示備份成功!如果你擔心你的設定檔有誤,也可以利用這種方式先進行一次手動備份喔!

image

常見問題

Q:為什麼我用網頁執行手動備份後,會出現警告訊息,像是「… failed to open stream: Permission denied in …  on line xxx」的警告訊息?

A:這是因為Backup2Mail會在程式的資料夾下建立備份暫存檔及紀錄檔,而我們上傳Backup2Mail程式使用的是自己的使用者帳號,但使用瀏覽器執行backup2mail程式時使用的是網頁程式的使用者(如apache或nobody),因此無法在資料夾下寫入資料(權限不足),所以我們需要另外建立一個資料夾,將權限設成777,再將backup2mail.php上傳到該資料夾中即可。使用FileZilla修改資料夾權限的方法如下圖:

image

在back2mail所在的資料夾上按滑鼠右鍵,點選【檔案權限】,然後在數值處輸入777即可。

※如果你用排程的方式來備份,就不需要另外建立資料夾,因為執行排程是以自己的帳號及權限來執行的。

Q:如何備份多個資料庫?

A:因為Backup2Mail一次只能備份一個資料庫,所以你只要將這支php程式多複製幾份(如backup1.php、backup2.php…),再分別設定資料庫資料,並另外設定排程,就可以將多個資料庫進行備份,或備份到不同信箱。

Q:資料庫太大,無法郵寄怎麼辦?

A:因為主機寄信或信箱收信有附件大小的限制,因此如果你的資料庫太大,可以修改主程式的32行,把true改成false,就會將資料庫備份檔留在該目錄下,再透過FTP軟體下載備份檔到自己的電腦中。可參考本站文章:《八套免費檔案備份同步軟體大集合,讓你的檔案存放得更安心!

$delete_backup  = false;

另外再修改第162行,在前面加上兩個正斜線 (//) ,變成:

//$sent  = send_attachment($backup_filename);

就不會寄出MySQL備份檔了。

嚴重警告

因為用網頁執行Backup2Mail程式時,會顯示你的備份命令(Command: mysqldump –u=xxxx-h localhost –password=xxxx),裡面包含你的資料庫密碼,建議將存放Backup2Mail的資料夾改成別人不容易猜到的名稱,或是用.htaccess加上密碼保護,不然就是修改backup2mail.php程式的第96行:

//echo ‘Command: ‘ . $cmd . ‘<br />’;

將這行刪除或前面加上兩個正斜線 (//) ,就不會顯示mysqldump執行的命令了。

結語

這麼簡單好用的程式,還不趕快裝起來備份一下資料庫?有了這支程式,以後不用再擔心資料庫的資料不小心損毀或不見了!如果你是使用WordPress架站的站長,也可以安裝WP-DB-Backup這支外掛程式,效果是一樣的。

3 意見

發表迴響