MENU

【2025年版】WordPressのBedrockとは?フォルダ構成を確認して、インストールからセットアップまで実際に動かしながら解説

Word PressのBedrockについての解説画像

これからWordPressを使って開発をしようとしており、運用のためにどのようなことができるのか調査していました。
その中でWordPressのリリース方法について調べていると、Bedrockという単語を見つけました。
なんだか良さそうな香りがしたので試しにセットアップしてローカル環境で動作確認までやってみたいと思います。

まず「bedrock」とGoogleで調べてみたところ下記のようにありました。  

Minecraft統合版(Bedrock Edition)とは、複数のプラットフォームに対応するMinecraftのバージョンである。

ふむ。MinecraftでWordPressを作れるのね。まずはMinecraftの勉強から…
というのは冗談で、

WordPressにおける「Bedrock」とは、WordPressの標準フォルダ構造を改良し、依存関係管理ツールであるComposerや環境変数を活用することで、開発の効率化とセキュリティ強化を実現するWordPressのボイラープレート(ひな型)のこと

とありました。

公式サイトはこちら

早速、Bedrockを使ったWordPressを見ていきます。

目次

Bedrockのメリット

今までのWordPressとBedrockの違いは何でしょうか。  
それは

  • 管理しやすいフォルダ構成
  • WordPressのコアを依存関係として記載できる
  • 環境変数が使える

今までのWordPressでは `wp-content`配下を対応することがほとんどであり、 `wp-content`だけ修正すれば良いことが大半です。  
そこで、 `wp-content`だけに集中して作業できるような構成となっているのがBedrockとなります。  

WordPressのコアを依存関係として書くだけになるので、GitHubで管理する際も無駄なファイルがなくなります。

環境変数が使えるとのことで、これまで wp-config.phpに記載していた部分は環境変数を使用できます。

私自身、皆さんと同じくBedrock初心者です。
なんだか使えそう。面白そうってことで見ています。
メリットが本当か、やってみないとよくわからん。

Bedrockの構成

公式サイトにある通り、下記の構成となっています。

├── composer.json
├── config
│   ├── application.php     # Primary wp-config
│   └── environments
│       ├── development.php
│       ├── staging.php
│       └── production.php
├── vendor                  # Composer dependencies
└── web                     # Public document root
    ├── app                 # WordPress content dir
    │   ├── mu-plugins
    │   ├── plugins
    │   ├── themes
    │   └── uploads
    ├── wp-config.php
    ├── index.php
    └── wp                  # WordPress core

一番上に、 `composer.json`があるように、Bedrockではcomposerを使用します。  
composerとは、PHPプロジェクトで必要となる外部ライブラリやパッケージの依存関係を管理するツールです。  
WordPressのコア部分はcomposerによってダウンロードすることで、管理不要となります。  

web/app配下がこれまでの wp-contentと同様の部分になるようです。

実際にBedrock版のWordPressプロジェクトを作って動かしてみる

コマンドでプロジェクトを作成する

下記のコマンドを実行します。

composer create-project roots/bedrock

composerコマンドが実行できることが前提です。「コマンドが見つからない」とエラーになる場合はコマンドが実行できるようにインストールしてください。

コマンド実行が完了すると bedrockというフォルダが作成されました。
私だとこんな感じ

実際にbedrockのプロジェクト作成のコマンドを実行した際に作成されたフォルダ

ローカル環境で動かしてみる

私はローカル環境でWordPressの動作確認をする際は local というサービスを使用しています。
Site folderというボタンがあるので、そこを押してフォルダを開きます。

localのフォルダを開くボタンの場所

wordpressが実行できる環境であればなんでも構いません。
ただし、WEBサーバの設定等が出来ないとBedrockの動作確認ができません。

bedrockフォルダを配置する

app配下

appフォルダの場所

作成したbedrockフォルダを配置します

bedrockフォルダの場所

環境変数を設定する

環境変数はbedrockフォルダ内にある .env.exampleファイルを使用します。

まずは .env.exampleファイルをコピーして .envファイルにファイル名を変更します。

.envファイルの場所

1つ上の階層に戻り、publicフォルダ内の

publicフォルダの場所

wp-config.phpファイル見ながら .envファイルを設定します。

wp-config.phpの場所

結果、私の .envファイルは下記のようになりました。

DB_NAME='local'
DB_USER='root'
DB_PASSWORD='root'

WP_ENV='development'
WP_HOME='http://bedrockexample.local' # ここはlocalのSite domainを入力
WP_SITEURL="${WP_HOME}/wp"

# Generate your keys here: https://roots.io/salts.html
AUTH_KEY=')}Ikk%1aB$0Xt-)/K_?I%1&DB`_004uJi@X4@rUZ}0&v@FeW%`|rMR1ZWWVYNlus'
SECURE_AUTH_KEY='(52*Xa=v,V<1WGmY5|U9JV&O3o7f-blyXIxeDKY%GxH]??jJ-AzS,dKBZ=-Z!|Od'
LOGGED_IN_KEY='zOTN[->y7RJ*1!!qA3:Th2PO;o(<g(:cC4oD-0:4tvgiIP5$g;h-jQ+zI#{}%OfX'
NONCE_KEY='aadmYm1_f<_@wVW&J-.1U6gVt<.a1y19m}j9$>Q;EYyK&Gt[>Z<&?:dE0WJ41m3+'
AUTH_SALT='TL/_&Gs4t3;6oG:9X#h;^H1ENWh;;JsdaD7ku,{D>zf[h#{zq4Bt3C#o->UXJ!zH'
SECURE_AUTH_SALT='ew/1p7]3zBg]^mW}$}O$4ju0V&uVsazy*0loh>M%KNu=|O1JbFWI$N;z%3NhoahR'
LOGGED_IN_SALT='k&hT3.nim6.Pz#(hVws>xI;GJ]}4FX7Se0VX609}l*duDrc&@m9sv[LMuep,X4AI'
NONCE_SALT=')B*9iZ$x@(v*_?X,x*2Y/zJuge<WP%ix$5c2hUF`iTBFkRnX!#Vb>w|W9b1U(aJc'

AUTH_KEY以下の部分は自動で生成することができます。
https://roots.io/salts.html にアクセスすると画面に生成された値が表示されます。
生成されたものをそのまま貼り付けて使用できます。

nginxの設定を変える

下記のように設定してください。
まずはSite folderを開きます。

localのフォルダを開くボタンの場所

conf配下

confフォルダの場所

nginx配下

nginxフォルダの場所

site.conf.hbsを開く

site.conf.hbsのファイルの場所

rootという項目を見つけてください。

site.conf.hbsのroot書き換え前

ここを bedrock/web に書き換えます。

site.conf.hbsのroot書き換え後

これで準備完了です。

再起動して動くか確認する

localの Open site のボタンを押してください。

Localサービス画面

こんな画面が出ました。とりあえずうまく起動しました。

出来上がったホーム画面

管理画面に入ります。
http://自身のドメイン/wp/wp-login.php にアクセスします。

ログイン画面

localで今回使用するドメインのサイトを作成した際に入力したユーザを入力してログインします。
そしたら管理画面に入れました。
ここも正常に動作しているようです。

管理画面が正常に表示されること

念のため、新規テーマとして test-themeを追加して、デフォルトのWordPressではなく、BedrockのWordPressが動作していることを確認します。

themeが読み込まれていること

これでBedrockをローカルで動かしてみるまで確認できました。

まとめ

色々とエラーで時間がかかったが、なんとかBedrockを動かしてみることができました。
しかし、メリット等は今のところ特に感じることはなかったです。
運用していくうちにメリットを感じるのだと思います。(これからわかってくるはず)

実際にサーバーにリリースしたり、開発したりしながら続きを書いていこうと思います。

実際にやってみるとエラーに出会うことが多いと思います。
出会ったエラーたちを下に書いておきます。

出会ったエラー

404 Not Found

404エラー画面

404 Not Found はサイトのindex.phpが見つからない時に出てくるようです。

site.conf.hbsファイルの root 部分の設定が間違ってないか見直してください。

特に私の場合、ユーザ名が tから始まっていました。
結果的に root 部分の設定が

root "C:\Users\txxxx\Local Sites\bedrockexample\app\bedrock\web";

となっていました。

見た感じ特に問題はないのですが、 logs/nginx/error.logを確認したところ、

となっていました。

よく見ると \Users xxxx\となっています。
これは \tとなった結果、TABとして認識されてしまい、パスが正常に動作していないということでした。

対応策としては、root 部分は下記のようにエスケープしました。

root "C:\Users\\txxxx\Local Sites\bedrockexample\app\bedrock\web";

502 Error

502エラー画面

502 Request Error はsite.conf.hbsファイルを編集した際に記載方法が間違っていた場合に出てきました。

例えば、最後のセミコロン ;が抜けていたりした場合に出てきました。
他にも設定ファイルとして記載方法が間違っていると出てくると思われます。

site.conf.hbsの記載方法注意

Warning: mysqli_real_connect(): (HY000/1045): Access denied

Warning: mysqli_real_connect(): (HY000/1045): Access denied for user 'xxx'@'localhost' (using password: YES) in C:\Users\xxx\Local Sites\bedrockexample\app\bedrock\web\wp\wp-includes\class-wpdb.php on line 1988

のようなエラーがサイトを開いた際に出ました。

これはデータベースにアクセスできないというエラーで、 .evnファイルの中身が間違っていました。

.envファイルの中身を見直しましょう。

画面を開いた際にスタイルシートが反映されていない

スタイルシートが適用されていないページ

なんだかbedrockのスタイルシートがうまく反映されていない。

開発者ツールでスタイルシートが読み込めていないことを確認してください。

スタイルシート読み込みエラー

http://localhost/wp/wp-includes/js/...にアクセスしています。

これは .envWP_HOMEの値が localhostになっているからでした。

WP_HOMEの値をサイトのドメインに直してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次