備份ThinkPHP項目需覆蓋項目文件、數據庫、配置文件三大核心內容,確保數據完整性。
使用tar命令打包項目目錄(如/var/www/your_project),排除臨時文件目錄(如runtime,避免備份無用緩存):
sudo tar -czvf /backup/your_project_backup_$(date +\%F).tar.gz /var/www/your_project --exclude=/var/www/your_project/runtime
-czvf表示創建gzip壓縮包并顯示詳細過程;--exclude用于排除指定目錄;$(date +\%F)生成當前日期(如2025-10-11),便于區分備份版本。通過mysqldump導出數據庫(需替換root、password、your_database為實際信息):
mysqldump -u root -p'password' your_database > /backup/your_database_backup_$(date +\%F).sql
-p與密碼之間無空格;若數據庫用戶有遠程訪問權限,可添加-h hostname指定服務器地址。tp5er/tp5-databackup擴展):php think backup --db --path=/backup
備份文件默認存儲在runtime/backup目錄,可通過--path參數自定義路徑。單獨備份項目配置目錄(如/var/www/your_project/config),避免配置丟失:
sudo tar -czvf /backup/your_project_config_backup_$(date +\%F).tar.gz /var/www/your_project/config
恢復項目時需按數據庫→項目文件→配置文件的順序操作,確保依賴關系正確。
使用mysql命令導入備份的SQL文件(需確保數據庫已存在):
mysql -u root -p'password' your_database < /backup/your_database_backup_2025-10-11.sql
php think restore --db --file=/backup/your_database_backup_2025-10-11.sql
恢復前需確認備份文件的完整性(如檢查文件大小、解壓后查看表結構)。解壓項目備份文件至原路徑(如/var/www/your_project):
sudo tar -xzvf /backup/your_project_backup_2025-10-11.tar.gz -C /var/www/
sudo chown -R apache:apache /var/www/your_project # 若使用Apache
sudo chmod -R 755 /var/www/your_project # 授權目錄可讀可執行
解壓配置備份文件并覆蓋原目錄:
sudo tar -xzvf /backup/your_project_config_backup_2025-10-11.tar.gz -C /var/www/your_project/
www-data或apache用戶),避免因權限不足導致無法訪問。crontab設置定期備份(如每日凌晨2點),減少人工操作風險。示例:crontab -e
添加以下內容(每日凌晨2點備份數據庫和配置文件):0 2 * * * /usr/bin/mysqldump -u root -p'password' your_database > /backup/your_database_$(date +\%F).sql
0 2 * * * /usr/bin/tar -czvf /backup/your_project_config_$(date +\%F).tar.gz /var/www/your_project/config
保存后,cron會自動執行備份任務。通過以上步驟,可實現CentOS上ThinkPHP項目的有效備份與恢復,保障項目數據安全。