サイト管理人Blog

cloudfreeで「さぁ始めましょう♪」

WordPressローカル環境を1Clickで更新(1/5)

2023-12-05 記載
概要 : ローカルWPサイトをサーバと同じ状態に更新する処理を1Clickでしたい。
関連記事:(2/5), (3/5), (4/5), (5/5)
Keyword : WordPress, BackWPup, FTP, VBA, MariaDB, SQL,

WordPressのローカル環境をもつ方法は、local by flywheelなどいくつか方法があります。わたしは普通にWindows10のApacheの1サイトとしてデプロイさせています。サーバとローカル、両サイトの使い分けとしてはサーバが常に正で、ローカルはテスト環境です。投稿の更新などはサーバに対して行っています。ローカルを更新してサーバにあげる、というようなことはしません。
逆にローカルをテストのためにサーバと同じ状態にしたい、というのはあります。
その手順は、まずWordPressフォルダ内の、wp-configや.htaccessなど環境に依存するファイル以外すべて削除して、FTPでサーバからごそっとダウンロードします。次にデータベース、phpMyAdminからデータベースをエクスポートして、ローカルのMariaDBの同名Database内のテーブルを全削除した後、.sqlファイルをインポートします。
このままではデータ内のサイトURLが違いますので、SearchReplaceDBmasterでweb.cloudfree.jpをApacheのhttpd.confに設定している Alias /cloudfree に置換します。htts://localhost/cloudfree/journal/wp-admin/ で開けるようになります。基本は以上です。
しかしSearchReplaceDBmaster の信頼性にやや疑問があり、別の検索置換プラグインにかけたら、元サーバの web.cloudfree.jp が見つかったりします。投稿内のベタの記述ではなく、変わるべきフィールドで。表面的には問題なさそうなのであまり気にしていませんが(このあたりよくわかってません)。まぁローカルは基本ただのテスト環境なので動けばよしとしています。

さて今回、上記手順の1Clickマクロ化に挑みました。
記事が前提とする環境は
●WordPressのバックアップをとるプラグインBackWPupをサーバにいれている
 参考:WordPressのバックアップ(BackWPup)設定とcronでの定期実行
●MariaDBをインストールしている
 参考:MySQLとMariaDBを共存で動かす
●Excelマクロ(VBA)で一連の処理を記述する
 参考:Office URI スキーマでExcelVBAマクロを走らせる
です。

断片的になりますが以降の数回の投稿にわけて、1Click内のそれぞれで行う処理をレポートします。

まずはBackWPupで対象DBのバックアップを「スケジュール > ジョブの開始方法
リンク」で作成することです。
そのWordPressのプリフィックスすべてのテーブルを含めて、ハッシュ値を含まないフォルダに出力させます。ファイル名にハッシュ値が入るのはOK。必ず入るようですが。

宛先:フォルダ
バックアップ設定・バックアップを格納するフォルダ
uploads/backwpup-jobstartkey-backups/

ここでは
設定・ジョブの「URL で外部からジョブを開始するキー」を
jobstartkey
サーバIDを cfsid (=cloudfree-server-id)
と仮定して記述します。

ジョブを作成すると以下のような
呼べばその時点でのバックアップが取れる、というURLが得られます。

https://cfsid.cloudfree.jp/mywordpress/wp-cron.php?_nonce=jobstartkey&backwpup_run=runext&jobid=1

これにファイルを含めてもよいのですが、BackWPupの仕様に依存しすぎてもなんなのでデータベースだけにしておきます。
ブラウザからURLを呼べば「宛先:フォルダ」にzipファイルが作成されることを確認します。
準備段階は以上です。(つづく)

投稿へのコメントは コチラ(掲示板) へお願いします。

サイト管理人Blog