WordPress経験はなく、調べてみたところ素のWordPressをそのまま業務で運用することに懸念点がありました。通常の開発業務では、dev環境で開発、動作に問題がなければproduction環境へデプロイ、といった流れで進めています。WordPressでも同様に、devとproductionを分けたいと考えました。その際、懸念であったのが、プラグインや、WordPress本体のバージョンアップでした。WordPressではGUIの管理ページからプラグインのインストール、本体のバージョンアップができます。業務ではどのような修正を行ったかが誰が見てもわかるようにしたいので、コードに修正を残しておきたいです。そこで採用したのが、Bedrockというボイラーテンプレートでした。Bedrockとは公式サイト:https://roots.io/bedrock/公式リポジトリ:https://github.com/roots/bedrockBedrockの公式リポジトリでは以下の特徴を紹介しています。wp-password-bcrypt)(公式リポジトリより引用)パッケージやプラグイン管理にComposerが使える点、configファイルやDotenvで環境変数を環境ごとに切り分けられる点など、求めていたことができそうだったので導入してみました。導入Bedrockのインストールはcomposerから行います。roots/bedrockディレクトリ構成create-projectで作成されたディレクトリを見てみます。引用)Bedrockに関係するディレクトリを見てみましょう。configWordPressのconfigファイルです。staging.php)を読み込んでconfigの上書きや追加を行います。index.phpがBoostrapの役割を行います。wp-config.phpでは、config/とvendor/を読み込んでいます。こちらは基本的にいじらず、config/のファイルを編集して設定します。素のWordPressにもwp-config.phpがありますが、Bedrockでは、config/と分けることで、扱いやすくなっています。appappディレクトリは素のWordPressのwp-content/に相当し、プラグインやテーマ、アップロードのファイルを格納します。WordPressでは子テーマを追加してカスタマイズをしますが、Bedrockでも同様な使い方で子テーマを追加できます。wpここにWordPress本体のファイルが格納されています。通常のWordPressのルート直下と同様のファイルが並んでいます。editなので、いじりません。.env(Dotenv).envを見てみます。https://roots.io/salts.htmlAUTH_KEY='generateme'SECURE_AUTH_KEY='generateme'LOGGED_IN_KEY='generateme'NONCE_KEY='generateme'AUTH_SALT='generateme'SECURE_AUTH_SALT='generateme'LOGGED_IN_SALT='generateme'NONCE_SALT='generateme'DB設定やWordPress本体設定、ソルトキーが書かれています。conifg/enviroments/以下のファイルは、環境変数のWP_ENVに応じて読み込みます。上記ではWP_ENV=developmentなので、conifg/enviroments/development.phpを読み込みます。ソルトキーは、暗号化に使われるキーです。ランダムな文字列を設定すればOKですが、下記のようにBedrock公式で生成するサイトがあるのでそれをコピペします。https://roots.io/salts.html認証ユニークキーについてはこちらを参考にしました。見てみると、WordPressコア部分が記載されています。https://github.com/roots/bedrock/blob/master/.gitignoreWordPress本体のバージョン管理composer.jsonを見てみます。WordPressのバージョンを管理していることがわかります。updateを実行します。プラグイン管理プラグイン管理もcomposerが使えます。インストールできます。ようにインストールもできます。Packagistから検索します。https://wpackagist.org/下記のように検索して、パッケージ名を探してきます。wpackagist-plugin/contag-form-7デプロイ公式では、デプロイにTrellisというBedrock用のansibleとcapistranoを推奨しています。https://roots.io/bedrock/docs/deploying-bedrock/#supported-deployment-tools弊社のphpプロジェクトでは、デプロイツールにdeployerがよく使われているのでそちらを流用しました。既存のレシピだけでは、プラグインの有効化ができないので、タスクを追加しました。WordPressをCLIで操作できるwp-cliのコマンドを利用しています。管理画面のURL変更WordPressのセキュリティリスクにログインURLが知られていることがあります。何もカスタマイズをしていなければ下記のようなURLになっています。http://WordPressサイト/wp/wp-login.phphttp://WordPressサイト/wp-login.phpこれの対策法には、アクセス制限やベーシック認証などがありますが、管理画面のURLを変更することも有効です。プラグインを利用して、ログインURLを変更させることもできます。デフォルトのBedrockでは、wp/以下にWordPress本体が格納されているので、wpをリネームすることで管理画面URLを変更できます。wp/を参照している箇所を修正します。'/wp/wp-blog-header.php';上記のwpを推測されにくいパスに修正することで、管理画面URLを変更できます。アクセス制限と組み合わせてセキュリティリスクを低減させます。所感Bedrockを導入することで、WordPressのバージョンやコード管理、環境に応じたconfigファイル、環境変数の適用が楽にできました。普段からLaravelのようなPHPフレームワークを使っている方にとっては、扱いやすいボイラーテンプレートだと思います。WordPress未経験でしたが、Bedrockによって予めいじるべきファイルといじらないべきファイルがはっきりとしていた点はWordPressの理解を助ける一因になったと思います。プラグインをいくつかインストールしていますが、Bedrock特有のハマリポイントなどはありませんでした。(ディレクトリの権限関係は多少ありました。)これからWordPressを触る方はぜひ試してみてください。余談Trellisは、Bedrock開発元のRoots社が提供しているWordPress環境のAnsibleです。公式サイト:https://roots.io/trellis/公式GitHub:https://github.com/roots/trellis開発環境はローカルにVagrantで環境を作れるので便利です。ここのAnsibleにproduction環境へのデプロイタスクも書かれていますが、今回は既存のアーキテクチャにはマッチしなかったり、開発スピードを優先したかったりで採用しませんでした。AndroidFollowエキサイト株式会社エキサイトは、話題のニュースや人気ブログ、翻訳や辞書、友達探し・婚活のサービス、格安プロバイダなどを展開する便利で安心のポータルサイトです。芸能や音楽、料理や育児の情報も幅広く発信しています。upLoginユーザーは見つかりませんでした。