Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2810

WordPressを新規インストール状態に初期化するバッチ(個人用)

$
0
0

 まったくもって個人用なのだが、最近WordPressのプラグイン開発をしていて、テストで新規インストール状態のWordPressに頻繁に戻す必要が生じた。毎度々、コンソールからDBドロップして、コアファイル消して、新規インストールして……みたいなことやってるのはあまりにも非効率なので、バッチ化してワンコマンドで実行できるようにした。
 今後の開発用にスニペットとして残しておく。

Windowsマシン用

 「XAMPP」環境下、「wp-cli」導入済み、かつ「Git for Windows」のoptional Unix toolsを有効にしてコマンドプロンプトでUnixコマンドが使えるようになっていることが前提。

init.bat
@rem 自分以外のファイルをすべて削除ls-a |grep-v -E "^\.$^\.\.$|^init.bat"|xargsrm-rf
@rem DBから初期化するWordPress用のデータベースを削除するmysql-u {DB_USER}-p{DB_PASSWORD}-P 3306--default-character-set=utf8mb4-e "DROP DATABASE IF EXISTS {DB_NAME}"@rem WordPressの最新版をダウンロードphp%USERPROFILE%\wp-cli.phar coredownload--locale=ja--version=latest@rem WordPressの設定ファイル wp-config.php を作成するphp%USERPROFILE%\wp-cli.phar configcreate--dbname={DB_NAME}--dbuser={DB_USER}--dbpass={DB_PASSWORD}--dbhost=localhost:3306 --dbprefix={DB_PREFIX}--dbcharset=utf8mb4@rem DBを新規作成するphp%USERPROFILE%\wp-cli.phar dbcreate@rem WordPressをインストールするphp%USERPROFILE%\wp-cli.phar coreinstall--url={WP_SITE_URL}--title="{WP_SITE_NAME}"--admin_user={WP_SUPER_ADMIN_USER}--admin_password={WP_SUPER_ADMIN_PASSWORD}--admin_email={WP_SUPER_ADMIN_EMAIL}@rem デフォルトテーマ以外の不要なテーマを削除rm-rf ./wp-content/themes/*teen@rem 開発中のプラグインを取得してカレントディレクトリに展開するtar--exclude "my-plugin/.git"--exclude "my-plugin/node_modules"--exclude "my-plugin/.eslintrc"--exclude "my-plugin/.gitignore"--exclude "my-plugin/babel.config.js"--exclude "my-plugin/package.json"--exclude "my-plugin/webpack.config.js"--exclude "my-plugin/*.log"--exclude "my-plugin/*.lock"-C C:\xampp\htdocs\{PATH_TO_DEVELOPMENT}\wp-content\plugins -zcf _temp.tgz my-plugin
mvC:\xampp\htdocs\{PATH_TO_DEVELOPMENT}\wp-content\plugins\_temp.tgz .
tar-zxf _temp.tgz
rm-rf ./_temp.tgz
@rem 開発中のプラグインをWordPressにインストールするmv ./my-plugin ./wp-content/plugins/.

使う時は、コマンドプロンプトから初期化したいWordPressのドキュメントルートにinit.batを設置して、

> init

──するだけ。

 なお、バッチファイル中では doskey に登録したマクロは使えないので、マクロ化する前のフルパスコマンドを発行する必要がある。

Linuxマシン(Mac等)用

 こちらも、「wp-cli」導入済みが前提。

init.sh
#!/bin/bash# 自分以外のファイルをすべて削除ls-a | grep-v-E"^\.$^\.\.$|^init.sh" | xargs rm-rf# DBから初期化するWordPress用のデータベースを削除する
mysql -u{DB_USER}-p{DB_PASSWORD}-h localhost --default-character-set=utf8mb4 -e"DROP DATABASE IF EXISTS {DB_NAME}"# WordPressの最新版をダウンロード
wp core download --locale=ja --version=latest
# WordPressの設定ファイル wp-config.php を作成する
wp config create --dbname={DB_NAME}--dbuser={DB_USER}--dbpass={DB_PASSWORD}--dbhost=127.0.0.1 --dbprefix={DB_PREFIX}--dbcharset=utf8mb4
# DBを新規作成する
wp db create
# WordPressをインストールする
wp core install--url={WP_SITE_URL}--title="{WP_SITE_NAME}"--admin_user={WP_SUPER_ADMIN_USER}--admin_password={WP_SUPER_ADMIN_PASSWORD}--admin_email={WP_SUPER_ADMIN_EMAIL}# デフォルトテーマ以外の不要なテーマを削除rm-rf ./wp-content/themes/*teen
# 開発中のプラグインを取得してカレントディレクトリに展開するtar--exclude"my-plugin/.git"--exclude"my-plugin/node_modules"--exclude"my-plugin/.eslintrc"--exclude"my-plugin/.gitignore"--exclude"my-plugin/babel.config.js"--exclude"my-plugin/package.json"--exclude"my-plugin/webpack.config.js"--exclude"my-plugin/*.log"--exclude"my-plugin/*.lock"-C /Users/{PATH_TO_DEVELOPMENT}/wp-content/plugins -zcf _temp.tgz my-plugin
mv /Users/{PATH_TO_DEVELOPMENT}/wp-content/plugins/_temp.tgz .tar-zxf _temp.tgz
rm-rf ./_temp.tgz
# 開発中のプラグインをWordPressにインストールするmv ./my-plugin ./wp-content/plugins/.

 init.sh ファイルには実行権限(chmod a+x init.shをしておく)が必要。

 使い方は、ターミナル(コマンドライン)から初期化したいWordPressのインストールルートにinit.shを設置して、

> ./init.sh

──でOK。

 もし初期化前にDBバックアップがしたい場合は、データベースをドロップする前にmysqldumpコマンドを追加してバックアップすれば良い。


Viewing all articles
Browse latest Browse all 2810

Trending Articles