6ページ目

a-blog cms のデータを簡単にサーバーから引っ越しするためのツールを作ってみた

これは a-blog cms Advent Calendar 2021 の 16日目の記事です。


a-blog cms で作られたサイトを引っ越しを依頼されたり、アップデートするのにテスト環境を作るのも引っ越しと言えるでしょう。そんな時に SSH が使えない、phpMyAdmin も使えないそんな経験もあったりします。

これまでインストールを簡単にするための「簡単セットアップsetup.php や、バージョンアップを簡単にするための「簡単アップデートupdate.php などを作ってきていますが、今回は簡単にバックアップをするための a-backup.php を作ってみました。

バックアップする対象

  • archives
  • archives_rev
  • media
  • private/config.system.yaml
  • sql/databaseName_yyyymmddhhmmss.sql
  • storage
  • themes/blog2020

ファイルとしては CMS からアップロードしたファイルが保存されている archives / archives_rev / media / storage と、config.system.yaml と利用しているテーマディレクトリの一式と、MySQL のエクスポートデータを SQL文のテキストで書き出したものが今回のバックアップの対象となります。

テーマが継承されている場合には、子テーマも対象となります。

用意したプログラム

GitHub Gist の kazumich のアカウントで公開している 300行程度の PHP のファイルになります。リンク先にアクセスして Download してください。

https://gist.github.com/kazumich/0c5ce6ed4e8366628842541ee9101b56

利用方法

ブラウザからファイルをダウンロードする設定と、サーバー上にファイルを作る設定の2つの利用方法を用意しました。サイト規模が小さければブラウザからファイルを落とせるかもしれないですが、長く運用されているようなサイトだとブラウザからのダウンロードできないこともあります。

ブラウザから対象ファイルをダウンロードする

一番簡単な方法としてファイルを config.server.php と同じ場所にアップロードして、ブラウザでアクセスするとデータベースのパスワードを聞かれる画面が表示されます。それで簡単に表示されているファイルなどがダウンロードできます。

対象ファイルを圧縮(ZIP)しサーバー内に保存する

ブラウザからダウンロードできなかった時や cron で定期的にバックアップを作りたい時などに利用します。1ファイルになりますので、FTPソフトなどでダウンロードするのも容易になります。

設定

1) 実行方法の設定

# pc  : ブラウザからPCに Zipファイルがダウンロードされます。
# server : サーバー上に Zipファイルを保存します。 5) を設定してください。

$zip_download = "pc"; # pc / server

2) パスワードチェック

# on  : ブラウザ上からパスワードを入力し実行します。(推奨)
# off : cron など画面表示させたくない時に設定ください。

$password_check = "on"; # on / off

3) バックアップテーマの設定

# テーマファイルをバックアップする際には指定してください。
# "site2020" と設定すると site2020 , lp@site2020 , sp@site2020 がバックアップされます。
# "site2020|blog2020" のように複数指定も可能です。

$useThemes = "blog2020";

4) コマンド パスの設定

$mysqldump = "mysqldump";
$mysql = "/usr/bin/mysql";

# MAMP の場合
# $mysqldump = "/Applications/MAMP/Library/bin/mysqldump";
# $mysql ="/Applications/MAMP/Library/bin/mysql";
# 記述の変更が必要なサーバーなどの情報があれば @kazumich に教えてください。

5) バックアップディレクトリの設定

# 1) で server を指定した際に設定してください。
# また、バックアップを保存するディレクトリは public_html , www より上の階層に作成してください。

#$backupDir = "/home/server_name/domain_name/backup";

6) 実行ディレクトリの設定

# ブラウザからの実行の際には設定の必要はありません。 
# cron から実行する際に設定してください。

#$target_dir = "/home/server_name/domain_name/public_html";

今後の改善したい点

a-blog cms のバージョンを出力できるように

そのバックアップデータが、どの a-blog cms のバージョンで動いていたものかを分かるようにしたい。

storage が違う階層にあっても動作するように

storage は違う階層に置くことでファイルへの直接アクセスできないような設定にすることが推奨だと思うが対応ができてない。

部分ダウンロードできるように

今は、画面上にリストのマーカーがついているが、チェックボックスにして必要無いものを外すことができるようにしたい。そうすることでファイルサイズを減らすこともできる。

テーマの指定を実際の設定されているものを自動で設定したい

どのテーマを使っているか分かっている自分の案件なら分かるが、頼まれて対応するような時にデータベースを調べればテーマディレクトリは分かるハズなので自動抽出してくれると、さらに便利だと思う。

追加インストールしているプログラムも対応に

以下のディレクトリも忘れて移行すると、大問題になる可能性があるので、対象に含めるようにしたい。

  • extension
  • php/AAPP
  • php/ACMS/User

最後に

毎回、苦労して用意していたものが簡単に一式入手ができるようになったので、随分省力化できたのではないかと思っています。標準で持っている バックアップ&リストア 機能というものもありますので、これが公式になる予定は今のところありません。

引越し用のツールですので、利用後はサーバーから削除するなどの対策をお願いします。データベースのパスワードが分かると全てのデータをダウンロードされてしまいますので注意ください。

明日の a-blog cms Advent Calendar 2021 17日目は、口田 聖子さんの「a-blog cmsで現在のエントリーを「関連エントリー」に登録しているエントリーを表示する」になります。まだ、タイトルが分かりませんので、後日アップデート予定です。


MacBook Pro 14 M1 Pro にしました

これまで MacBook Pro 13 M1 を使っていましたが、社内で誰も使っていなかったもう1台の MacBook Pro 13 M1 の2台を売って MacBook Pro 14 M1 Pro というヤツに買い替えてみました。

一番大きな変化はメニューバーで使えない部分ができた事でしょうか。最近、解像度を下げて利用しているのですが、左側からのメニューのテキストが多い時には真ん中のカメラ部分を避けてメニューがレイアウトされますが、メニューが少なく右から攻めてくるアイコンが多い場合には、まだ正常に表示されないようですね。


タッチバーは嫌いじゃなかったので、無くなったのは残念ではありますが、キータッチは良くなっていると思います。もう古いのに戻りたくないと手が言っています。


キーボードの周りの黒い部分も最初は M1 の時の感じの方がいいかなぁって第一印象は思いましたが、あまりキーボードは見ないこともあり気にならなくなりました。

M1 Pro は、どうなのかってところは、普段の私の利用方法では M1 でも M1 Pro でも一緒な気がします。 なのでメモリーも 16GB のままで 32GB にしたりもしていません。 ACアダプターが大きなものになったのが残念ではありますが

のように Tweet した時間が 17:02 なので、バッテリーの持ちについては問題ないようです。

昔の PowerBook と呼ばれていた頃のようなデザインについては、少し残念な気もしていますが、私にとって MacBook は仕事の道具なので、いつも快適に使えているのが最優先なので、まぁヨシとしましょう。


M1 のままで良かった気がしていますが、でも慣れてしまえばコレはコレでいい事になるんでしょうね。次の買い替えするタイミングは、どんな時?って気もしますが、これからしばらくは社員の MacBook Pro 16 i9 を順次 M1 Pro にしていくのを優先したいと思います。

これを書いていて、さっき気がついたのですが M1 Pro も 8コアCPU・14コアGPU と 10コアCPU・16コアGPU と2種類あるんですね。SSD の容量は欲しいので 1TB にしたかったのですが安い方の容量アップで良かったかもしれません。


a-blog cms Training Camp 2021 Autumn を開催しました

2021年9月10日(金) 11日(土) と2年ぶりに Zoom Meeting と YouTube Live を利用してオンライン開催しました。集合写真がメイン画像になっていないのは寂しいところではあります。例年のように書くと今回は、北海道・青森県・山形県・宮城県・福島県・埼玉県・群馬県・東京都・神奈川県・富山県・福井県・新潟県・長野県・静岡県・愛知県・三重県・岐阜県・大阪府・兵庫県・岡山県・広島県・山口県・香川県・高知県・福岡県と25都道府県から 70人くらいの a-blog cms な人たちが集まりました。

申し込みは、もう少し多かったのですが出欠も取れていないので、ざっくりとした人数で表現しておきます。

1日目 Zoom meeting

Ver. 2.12 のご紹介

アップルップル CTO 伊藤 淳 から、次にリリースされる a-blog cms 2.12.0 の新機能についての紹介がありました。

  • エントリー単位でのエクスポート&インポート機能
  • webhook 機能
  • API 機能

YouTube へリンクしています

新テーマUTSUWAについて

昨年末くらいから用意しているテーマですが、2.12 と一緒にリリース予定です。 こちらはアップルップル 森田さんの発表で。


YouTubeへリンクしています

ECテーマと拡張アプリの紹介

私が発表したセッションです。 2.12 リリース時に Square のカード決済が標準で利用できる ECテーマをリリース予定です。 その他はパートナーさん向けの情報になるので、動画は非公開になっております。


祝日を表示できるライブラリを作ってみました

アップルップルの今年の新人 宇井くんには、 a-blog cms を利用している皆さんが使えそうな JavaScript のライブラリーを作ってもらい、それを発表してもらいました。


YouTubeにリンクしています

テンプレートの変更を減らすために心がけていること

Suzulabo 太田 小夏さんのセッションでは、テーマ実装でためになる話をしてもらいました。


YouTubeにリンクしています

FullCalendarならリッチなカレンダーを簡単に実装できる

アップルップルの菅原さんには FullCalendar という JavaScript ライブラリを利用すると 標準モジュールでできないようなカレンダーの実装ができるよって話をしてもらいました。


YouTubeにリンクしています

Form2Entryを利用してダウンロード計測機能を作成する

ましじめ株式会社 の田村さんには、a-blog cms の有償拡張アプリを利用した実装についてお話ししてもらいました。 この機能を利用するとログインしていないユーザーが何らかのフォームを送信することでエントリー(記事)を作ることができます。


YouTubeにリンクしています

また最近、田村さんは 現場のプロから学ぶ CSSコーディングバイブル という本を執筆したことから、今回のイベント参加者に何冊か本のプレゼントをしていただきました。ありがとうございます。

a-blog cms導入をきっかけに、サイト制作のワークフローを見直したことについて

にいがた三昧の 保坂さんに実装側ではなく、社内全体のワークフローについてお話し頂きました。こちらは非公開ということで参加者のみで動画公開はありません。


a-blog cms × 外部サービスで作る、営業ツールとしてのWebサイト

ONiWA株式会社 CTO 小野さんのセッションでは、a-blog cms を活用してWebサイトを営業ツールにしようという話がありました。 a-blog cms では、フォームから外部連携の機能が多く用意していますし、今回の 2.12.0 からは webhook も追加されますので、より便利に色々なことができるようになるはずです。


YouTubeにリンクしています

キャンペーンサイトをJamStack的な構成でやってみた

1日目の最後に、アップルップル CTO 伊藤さんが最近実装担当をした JamStack なキャンペーンサイトの紹介がありました。こちらの動画は残念ながら公開されていないです。


2日目 YouTube Live & oVice

2日目は、弊社のスタッフが1時間づつ受け持って、カスタマイズ講座を行っています。 普段であれば ベースキャンプ名古屋でオフラインでやってるような内容をライブ配信でやってみました。

また、YouTube で配信中に裏で oVice というサービスを利用して相談会も開催してみましたが、本編やってる時に来る人は残念ながらほとんどいなかったですね。リアルセミナーの外でブース出しているようなもんなので、仕方が無いところでしょうね。

私の過去の合宿レポート

  1. 日本各地から集まった a-blog cms Power User Training Camp 2010 Spring が終了しました
  2. 日本各地から集まった a-blog cms Training Camp 2010 Autumn が終了しました
  3. a-blog cms Power User Training Camp 2011 Spring 終わりました!
  4. 13都道府県から集まった a-blog cms Training Camp 2011 Autumn が終了しました
  5. 5回目の合宿 a-blog cms Power User Training Camp 2012 Spring が開催されました
  6. a-blog cms Power User Training Camp 2012 Autumn が終了しました
  7. a-blog cms Summer Camp 2013 が終了しました
  8. a-blog cms Training Camp 2014 Spring が開催されました
  9. a-blog cms Training Camp 2014 Autumn が開催されました
  10. a-blog cms Training Camp 2015 Spring が開催されました
  11. a-blog cms DAY & Training Camp 2015 Autumn が開催されました
  12. a-blog cms Training Camp 2016 OKINAWA が開催されました
  13. a-blog cms Training Camp 2016 Autumn が開催されました
  14. a-blog cms Training Camp 2017 Spring が開催されました
  15. a-blog cms Training Camp 2017 Autumn が開催されました
  16. a-blog cms Training Camp 2018 Spring が開催されました
  17. a-blog cms Training Camp 2018 TOKYO を開催しました
  18. a-blog cms Training Camp 2019 Spring を開催しました
  19. a-blog cms Training Camp 2019 Autumn を開催しました

a-blog cms Training Camp 2020 Spring / 2020 Autumn / 2021 Spring を中止

次回の春開催は!

来年の春開催は、リアルに開催できることを願っています。 2年リアル開催できてないので 沖縄 でやりたいと思っていますが、どうでしょうか?

 

最後に、Zoom のところで集合写真撮りたかったですね。1枚も人が出てないレポートエントリーでした。


iPad Air4 用の Combo Touch を導入してみました

最近は、家では MacBook Pro を使わないで iPad Air4 を使っている事の方が多い感じなのですが、トラックパッド付きのキーボードを使ってみたく Logicool の Combo Touch という製品を導入してみました。

純正の Magic Keyboard を購入しようとすると、34,980円(税込)と安価な iPad がもう1枚買えてしまうくらいするし、キーボードから外した時にカメラ部分の出っ張りが気になる。という理由で純正を買わないでみました。


キーボードとカバー付きの本体が分離でき、キーボードが必要無い時には簡単に外すことができ、スタンドを利用することができるのも純正より便利なところ。


そして、キーボードが無い時にカメラ側がフラットになるのもいいと思いませんか?


スタンド部分をグッと開くとココまで寝かせることもできます。長く使っていて、この部分がどうなるか少し不安な気もしますが、あまりこのスタイルまで開くことはしないんじゃないかと思っています。


公式サイト では売り切れで注文できなかったのですが、Amazon ですぐに届きました。 Logicool Folio Touch というキーボードが分離しないタイプのモデルが存在します。実は、間違えて最初これを注文してしまい、すぐにキャンセルしました。 きっと、旧モデルだと思うのですが、注意が必要です。

Combo Touch https://amzn.to/3Ag44BQ 20,493円です。


2代目のゴールデンレトリバーを迎える事になりました

人生にもう1回、ゴールデンレトリバーと暮らしたいという夢を叶えることができる事になりましたので報告しておきます。2021年6月21日生まれの女の子です。



自分のブログではなく、別のブログを用意しましたのでお迎え時には発表予定です。

あまり動画ってやってこなかったのですが、親バカモードで撮っては YouTube にでもアップするようなことをして、動画編集のスキルを楽しみながらつけていく事にしたいとも思っています。

ちょっと調べてみたのですが amazon さんは凄いですよね。過去の履歴が全部出てきます。2008年6月29日 に以下の2冊を買っているようです。10年以上家の本棚に残っていたので、再びしっかり読んでいるところです。


それでは、6月22日 にお迎えに行く予定ですので、次の更新は日曜日に!