掲示板システムを構築するだけでは実用には不十分で、日次にバックアップをして何かあったときにすぐ復元できないと、安心して使ってもらえません。ということで、phpBBの自動バックアップの構築を考えました。
WindowsPCでシステム運用、外付けHDDかNASにバックアップ作成。WindowsPCがクラッシュした場合に備える、という想定です。
概要
phpBBはMySQLのデータベースと、ファイルの2つのデータをバックアップする必要があります。
掲示板の書き込みの内容はMySQLのデータベースに格納されますが、MySQLのデータをリストアしても添付ファイルがリストアできません。ファイルのリンクは表示されますが、実体が存在しない状態になります。添付ファイルは【~\phpBB3\files】フォルダにファイル名がID化された状態で格納されるので、このフォルダをバックアップすれば添付ファイルもリストアできます。
MySQLデータベースのバックアップ方法
GUIで実行する方法と、CUIでのコマンド実行の2通りの方法が見つかりました。GUIはシステムの設定画面で「バックアップ」ボタンを押すというものです。こちらでは、毎夜自動で実行することはできません。ですので、タスクスケジューラでバッチファイル実行できるCUIでの構築が現実的です。
下記コマンドをバッチファイルにします。ユーザーや出力パスは適宜読み替えてください。パスワードの直書きは宜しくありませんが、そこはいずれ。
mysqldump -u username -ppassword --databases databasename > dump.sql
ちなみに、GUIで作ったバックアップファイルは別ドメインのサーバーにリストア出来ますが、CUIで作ったバックアップファイルは同じドメインのサーバーにリストアすると不具合が発生するようです。GUIのリストア時に、ドメインを読み替えてくれているのかと思います。
添付ファイルのバックアップ方法
バッチファイルに下記コマンドを書いて、タスクスケジューラで実行すればよいでしょう。
xcopy C:\xampp\htdocs\phpBB3\files F:\phpBB_backup
動作環境
今回はWindowsPC、サーバー全般とあやふやですが、検証できたら加筆・修正したいと思います。
公開日 2021.2.28 Sun
コメント