Warning: Invalid argument supplied for foreach() in /home/joomlaway02/joomlaway.net/public_html/libraries/src/Cache/Storage/FileStorage.php on line 315
Akeeba Remote CLI を使ってJoomla!サイトのバックアップを完全自動化する - Joomla!の道しるべ

Joomla!サイトをまるごとバックアップできるAkeebaBackup。まず最初にこれをインストールするという方も多いはず。

AkeebaBackupには「Akeeba Remote Control」というデスクトップからバックアップできるアプリケーションが公開されていたのですが、いつの間にか開発中止になったようです。その代わりに公開されているのが今回紹介する「Remote CLI」。Akeeba Backupでのバックアップをコマンドラインで実行するアプリケーションです。Remote Controlと比べて難易度はあがりますが、ものにすれば非常に強力です。

サイトの1.5→1.7移行に伴いバックアップ方法も見直し、初めてRemote CLIを使ってみましたので、備忘録として手順を記録しておきます。

今回はRemote CLIを使用して、Joomla!サイトをバックアップ→バックアップファイルをダウンロード→サーバから削除を実現します。サーバ上にバックアップファイルが残らないのでリソースの節約にもなりますし、セキュリティ的にもいいかも。

なお今回はWindows7での設定方法ですが、MacやLinuxでも応用できるはずです。

Akeeba Backupの設定

Remote CLIを使うには、Akeeba Backup側であらかじめ設定が必要です。Akeeba Backup→設定→オプションを開き、「フロントエンドバックアップ」タブにある次の項目を設定します。

  • フロントエンドとリモート バックアップを有効:Yes
  • 秘密の言葉:適当なパスワード

「秘密の言葉」はバックアップするためのパスワードです。これがばれてしまうとサイト全体をバックアップされダウンロードまでされてしまうので、より複雑なパスワードにしておきます。

Windows用PHPのインストール

Remote CLI自体はPHPアーカイブという形式のファイルです。実行するにはWindows用のPHPバイナリが必要になります。

Windows用のPHPは以下からダウンロードできます。

PHP For Windows: Binaries and sources Releases

今回はPHP5.3の「VC9 x86 Non Thread Safe」のInstallerをダウンロードして実行しました。インストール中、インストール先のフォルダ(Destination Folder)を聞かれます。問題なく動作させるためには、Cドライブ直下に「PHP」というフォルダを作ってインストールするのがよさそうです。またWebサーバを選択する画面では、「Do not setup a web server」を選択しました。

これ以外はすべてデフォルトのままインストールを進めて大丈夫だと思います。

Akeeba Remote CLIのダウンロード

次のページからRemote CLI(remote.phar)の最新版をダウンロードし、C:\PHPに保存します。

Download

これで準備が整いました。

Remote CLIの実行

コマンドプロンプトを起動してC:\PHPに移動します。

cd c:\php

次にサイトへ接続できるかテストします。次のコマンドを実行してください。

php remote.phar --action=test --host=サイトのURL --secret=秘密の言葉

なお「サイトのURL」には末尾にスラッシュを入力しないこと。実行した結果、「Successful connection to site」と表示されれば成功です。

上記のコマンドの「test」の部分を様々なアクションに変えてコマンドを実行します。また様々なオプションも利用できます。これらは以下にまとまっています。

また以下のページでは、アクションとオプションを組み合わせた例が載っています。

今回実現したい動作(バックアップ後ダウンロードしサーバから削除)を実現するコマンドも例として載っています。今回はこれをそのまま使います。

php remote.phar --action=backup --host=http://www.example.com --secret=iloveakeeba --profile=1 --download --dlmode=curl --dlpath="c:\Downloads" --delete --dlurl="ftp://foo:bar@ftp.example.com/public_html/administrator/components/com_akeeba/backup"

各オプションの意味は以下の通り

  • --profile:AkeebaBackupのプロファイルIDを指定する
  • --download:バックアップ後ダウンロードする
  • --dlmode:ダウンロードのモードを指定する。curlのほかhttpなどが使える。
  • --dlpath:バックアップのダウンロード先。
  • --delete:バックアップ後、ファイルを削除する
  • --delurl:FTPで接続するユーザ名(上記ではfoo)、パスワード(上記ではbar)、ホスト名(上記ではftp.example.com)とバックアップが保存されたディレクトリ(上記では/public_html/administrator/components/com_akeeba/backup)を指定します。

上記のコマンドを、自分の環境に置き換えて実行します。実行後、バックアップ→ダウンロード→削除が正しく動作しているかを確認してください。

FTPのユーザ名やパスワードに"@"が含まれていると、正常にダウンロードできないようです。これで少しはまりました…。

動作を確認したら、このコマンドを既述したバッチファイルを作ります。テキストエディタを開き、内容は以下のようにしてbackup.batという名前で保存します。

C:
CD c:\PHP
php remote.phar --action=backup --host=http://www.example.com --secret=iloveakeeba --profile=1 --download --dlmode=curl --dlpath="c:\Downloads" --delete --dlurl="ftp://foo:bar@ftp.example.com/public_html/administrator/components/com_akeeba/backup"

このバッチファイルをWindowsのタスクスケジューラに登録すれば完了です。タスクスケジューラへの登録方法は検索してください。

/codecitation}
【Joomla!が使えるレンタルサーバー】