WordPress(AWS+Bitnami) – PowerShellでファイルを一括反映

今回はPowerShellを使ってWordpressの移行に必要なディレクトリの置き換えをやってみます。サーバーの移行などで新しいWordpressに反映することを想定しています。

[WordPress(AWS+Bitnami) – PowerShellでファイルを一括保存]で保存した以下の3つのディレクトリが対象です。

htdocs/wp-contentの下にある以下のフォルダです。

  • plugins
  • uploads
  • themes

手順

  • PowerShellの処理を作る
  • 起動用のバッチを作る
  • バッチを起動し必要な情報を入力する

PowerShellの処理を作る

ファイル名:content-restore.ps1

以下の内容をコピーしてcontent-restore.ps1という名前で保存。

# **** 移行元のサーバー情報 ****
# ユーザーID
$user_name=Read-Host "接続先のユーザーIDを指定してください"
# ドメイン情報
$domain=Read-Host "接続先のドメインorIPアドレスを指定してください。"
# 秘密鍵(.pem)ファイルパス(C:\Users以下に配置しないとアクセス権の問題で失敗します) ex."C:\Users\WordpressKeyPair.pem"
$pemfile_path=Read-Host "秘密鍵(.pem)ファイルの保存先を指定してください。C:\Users\の以下に配置されている必要があります"
# バックアップファイルを保存する先 ex."C:\backup"
$backup_path=Read-Host "バックアップの保存先を指定してください  ex.C:\backup"

# ログイン情報の作成
$login_info=$user_name+"@"+$domain

$uploads_tar_path=$backup_path+"/uploads.tar.gz"
$plugins_tar_path=$backup_path+"/plugins.tar.gz"
$themes_tar_path=$backup_path+"/themes.tar.gz"
$upp_dir=$login_info+":"+"/opt/bitnami/apps/wordpress/htdocs/wp-content/"

# SCP接続してバックアップファイルをアップロード
scp -i $pemfile_path $uploads_tar_path $upp_dir
scp -i $pemfile_path $plugins_tar_path $upp_dir
scp -i $pemfile_path $themes_tar_path $upp_dir

# オリジナルのディレクトリをリネーム
"リネームします"
ssh -i $pemfile_path $login_info "cd /opt/bitnami/apps/wordpress/htdocs/wp-content/;mv uploads/ _uploads/;mv plugins/ _plugins/;mv themes/ _themes/;"
"解凍してtar.gzを削除"
ssh -i $pemfile_path $login_info "cd /opt/bitnami/apps/wordpress/htdocs/wp-content/;tar -zxvf uploads.tar.gz;tar -zxvf plugins.tar.gz;tar -zxvf themes.tar.gz;rm -f uploads.tar.gz;rm -f plugins.tar.gz;rm -f themes.tar.gz;"
"所有者の変更"
ssh -i $pemfile_path $login_info "cd /opt/bitnami/apps/wordpress/htdocs/wp-content/;sudo chown bitnami:daemon -R uploads;sudo chown bitnami:daemon -R plugins;sudo chown bitnami:daemon -R themes;"
"権限の変更"
ssh -i $pemfile_path $login_info "cd /opt/bitnami/apps/wordpress/htdocs/wp-content/uploads;sudo chown daemon:daemon -R *;sudo chmod 664 -R *;sudo find . -type d -exec chmod 775 {} +;"
ssh -i $pemfile_path $login_info "cd /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins;sudo chown daemon:daemon -R all-in-one-seo-pack;sudo chmod 664 -R *;sudo find . -type d -exec chmod 775 {} +;"
ssh -i $pemfile_path $login_info "cd /opt/bitnami/apps/wordpress/htdocs/wp-content/themes;sudo chmod 664 -R *;sudo find . -type d -exec chmod 775 {} +;"

起動用のバッチを作る

ファイル名:content-restore.bat

以下の内容をコピーしてバッチファイルを作成する。

powershell -NoProfile -ExecutionPolicy Unrestricted .\content-restore.ps1
pause

必要な情報を入力する

以下の順で情報の入力を求めてきます。
事前に調べておきましょう。

  1. 接続先のユーザーID
  2. ドメイン情報orIPアドレス
  3. 秘密鍵(.pem)ファイルの保存先
  4. バックアップファイルのフォルダパス

接続先のユーザーIDは最近のものであればおそらくbitnami。
ドメイン情報orIPアドレスはあなたにしかわかりません。移行先のIPアドレスを入れておけば良いと思います。
.pemファイルはWordpress作成時に保存した秘密鍵ファイル。紛失した人はもう手に入りません。
バックアップファイルのフォルダパスはバックアップファイルを置いた場所です。

ダウンロード

content-restore

まとめ

リストア先を間違えないようにしてください。
本番環境に上書きしたら大事故です。

おわり

コメントを残す

メールアドレスが公開されることはありません。