在CentOS系統上備份ThinkPHP項目,需兼顧項目文件(代碼、配置)、數據庫(數據)兩部分,同時建議通過自動化定時任務減少手動操作。以下是具體步驟:
tar
(歸檔工具)、mysqldump
(MySQL備份工具)。若未安裝,可通過以下命令安裝:sudo yum install -y tar mysql-server mysql-devel
/var/www/html/my_thinkphp_project
(根據實際情況調整)。使用tar
命令將項目目錄打包為壓縮文件(減少存儲空間占用),并存儲到指定備份目錄(如/backups
):
# 創建備份目錄(若不存在)
sudo mkdir -p /backups/thinkphp_projects
# 進入項目父目錄
cd /var/www/html
# 打包項目目錄(排除不必要的文件,如緩存、日志)
sudo tar -czvf /backups/thinkphp_projects/my_thinkphp_project_$(date +%F).tar.gz \
--exclude='runtime/cache' \
--exclude='runtime/log' \
my_thinkphp_project
--exclude
:排除臨時文件(如緩存、日志),避免備份文件過大;$(date +%F)
:生成當前日期(如2025-10-19
),便于區分不同時間的備份文件。ThinkPHP項目的數據庫存儲了核心業務數據(如用戶信息、訂單數據),需使用mysqldump
命令導出:
# 登錄MySQL(輸入密碼)
mysql -u root -p
# 查看數據庫列表(確認項目數據庫名,如`my_thinkphp_db`)
SHOW DATABASES;
# 退出MySQL
exit;
# 導出數據庫(替換為實際數據庫名、用戶名、密碼)
mysqldump -u root -p my_thinkphp_db > /backups/thinkphp_projects/my_thinkphp_db_$(date +%F).sql
mysqldump
命令后,系統會提示輸入數據庫密碼;.sql
格式保存,包含數據庫表結構和數據。通過cron
設置每日自動備份,避免手動遺忘。
sudo crontab -e
0 2 * * * /bin/bash -c 'cd /var/www/html && tar -czvf /backups/thinkphp_projects/my_thinkphp_project_$(date +\%F).tar.gz --exclude="runtime/cache" --exclude="runtime/log" my_thinkphp_project'
0 2 * * * /usr/bin/mysqldump -u root -pYourDBPassword my_thinkphp_db > /backups/thinkphp_projects/my_thinkphp_db_$(date +\%F).sql
YourDBPassword
替換為實際數據庫密碼(-p
與密碼之間無空格);-p
(無密碼)并在后續輸入,或通過配置文件(如~/.my.cnf
)存儲密碼。tar -xzvf my_thinkphp_project_2025-10-19.tar.gz
,查看文件結構是否正常)。find
命令):find /backups/thinkphp_projects -name "*.tar.gz" -mtime +7 -delete
find /backups/thinkphp_projects -name "*.sql" -mtime +7 -delete
700
(僅root可讀寫),防止未授權訪問:sudo chmod -R 700 /backups/thinkphp_projects
scp
傳輸到本地計算機);~/.my.cnf
)存儲數據庫憑證。通過以上步驟,可實現CentOS上ThinkPHP項目的完整備份,并通過自動化任務減少維護成本。備份是數據安全的最后一道防線,建議定期測試備份文件的恢復流程,確保備份有效性。