0
Help us understand the problem. What are the problem?

posted at

Organization

WP-CLIを使って環境構築

前置き

WP-CLIを使ったローカル環境の構築を行なったのでその時にやったことを書いていきます。

WP-CLIとは

WordPressやプラグインのインストールや更新をCLIで行うための公式ツールです。
WORDPRESS.ORGにドキュメントがあるのでちゃんと公式です。

WordPressの開発環境を作る時にやること

WordPressの開発環境を手動で構築する際にはだいたい以下の作業を行うかと思います。

  • WordPressの最新バージョンを公式サイトからダウンロード
  • ローカルにPHPが動く環境を作成
  • WordPressのインストール
    • wp-config.phpの作成
    • サイト情報と管理者ユーザの設定
  • プラグインのインストール
  • 使うテーマのインストール、もしくは自前のテーマを有効化
  • 使用しないテーマ、プラグインの削除

この内、ローカルにPHPが動く環境を作成以外はWP-CLIで実施することが可能です。
それぞれの作業はWP-CLIを使うと以下の形式に置き換えることができます。

WordPressの最新バージョンを公式サイトからダウンロード

$ wp core download --locale=ja

これを実行すると実行したディレクトリ内に日本語対応されたWordPressの各種ファイルが展開されます。

WordPressのインストール

wp-config.phpの作成

$ wp config create --dbname=<DB名> --dbuser=<DBユーザ名> --dbpass=<アクセスするユーザのパスワード> --dbcharset='utf8mb4'

DBのホスト名を変更したい場合には--dbhostを指定することで変更することができます。

設定しない場合にはデフォルトのlocalhostが使用されます。

サイト情報と管理者ユーザの設定

$ wp core install --url=<サイトのURL> --title=<サイトのタイトル> --admin_user=<管理者ユーザ名> --admin_password=<管理者パスワード> --admin_email=<管理者のメールアドレス>

プラグインのインストール

$ wp plugin install <プラグイン名>

ここでのプラグイン名はXML Sitemapsを例にするとURLに出ているgoogle-sitemap-generatorがプラグイン名になります。

バージョンを指定したい場合には--versionオプションでインストールしたいバージョンを指定、インストールと同時に有効化したいなら--activateをつけてあげればできます。

問題点としてはそのプラグインがインストールされているかどうかしかチェックしていないため、インストールされているバージョンとインストールしようとしているバージョンが違ってもアップデートを自動的に行ったりはしてくれません。

--forceをつけることで強制的にインストールし直してアップデートをすることが可能ですが、CIの中に組み込んだりすると毎回インストールが走るので一度の実行がそこそこ時間がかかるようになります。

使うテーマのインストール、もしくは自前のテーマを有効化

使うテーマのインストール

$ wp theme install <テーマ名>

インストールと同時に有効化する場合にはプラグインと同じく--activateをオプションを使うことで可能です。

テーマ名はプラグイン同様にURLのものを指定する必要があります。

自前のインストール

$ wp theme activate <テーマ名>

使用しないテーマ、プラグインの削除

テーマの削除

$ wp theme delete <テーマ名>

プラグインの削除

$ wp plugin delete <プラグイン名>

コンフィグを使ってオプションを省略

wp-cliを実行するディクレクトリにwp-cli.ymlを作成しておくとオプションのデフォルトを設定できる。

以下、例。

path: public

core download:
  locale: ja
  version: 5.8.1

core install:
  url: localhost
  title: Example
  admin_user: supervisor
  admin_email: info@example.com

config create:
  dbname: dummy_wp_local
  dbuser: dummy_wp_user
  dbhost: db
  dbcharset: utf8mb4    

設定する細かい内容はドキュメントを参照.

管理者、DBのパスワードはオプションで指定するかpomptで入力する想定です。

終わりに

通常使う分にはスクリプトにまとめてしまえば共通的に実行できて管理画面をぽちぽちする必要が無いのでだいぶ楽ではある。

ただ、CIに組み込んだりする場合は自前でアップデートがあるかなどのチェックをする必要があるのでだいぶ使いづらい印象です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?