Landoを使用したローカルWordPress開発(またはDockerを簡単に)

公開: 2019-11-22

今年の初めに、Dockerを使用してWordPressで開発する方法に関するガイドを作成しました。 私はその投稿に取り組むことを本当に楽しんでいました、そしてあなたもそれが好きだったようです(あなたのコメントと電子メールすべてに感謝します)。 投稿を読んでいない場合は、次のように簡単にお知らせします。

Dockerは、ソフトウェアをコンテナーにパッケージ化し、仮想マシン上で実行できるようにするプログラムです。 Dockerの主な利点は、コンテナーがホストオペレーティングシステムによって提供される仮想化環境を使用して実行されるため、コンテナーが高速で軽量になることです。

Dockerの主な問題は、その構成が煩雑であるということです。 たとえば、WordPress開発環境を作成するには、データベースサービスとWebアプリケーションサーバーの2つの(少なくとも)サービスを開始する必要があります。

最初にコメントした投稿では、特定のプロジェクトでスピンアップする必要のあるすべてのサービスを定義できるツール、 DockerComposeを見ました。 Docker Composeを使用すると、プロジェクトのすべての依存関係を1つのファイルdocker-compose.ymlで定義し、1つのコマンドで開始することができました。

または、WordPressのインストールで美しいドメイン名を使用できるようにするさらに別のDockerサービスを構成する方法を説明して投稿を閉じたため、最初に約束したことです。 元のdocker-compose.ymlファイルを使用すると、WordPress dev envにhttp://localhost:8080からアクセスできることを覚えているかと思います。 しかし、 http://myplugin.localのようなものを使用したい場合は、ドメイン名を解決し、docker docker-compose.ymlに設定を追加できるプロキシを設定する必要がありました…

私は知っています、私は知っています-物事を立ち上げて実行するのは非常に複雑でした! しかし、すべてが適切に設定されていれば、それは非常に簡単でしたね。 とにかく、私はあなたに私の新しい友達、ランドを紹介することにしました。 彼はあなたが数秒で新しい開発環境をセットアップするのを手伝ってくれるでしょう。

ランドに入る

Landoを紹介する最良の方法は、彼のドキュメントの文章を使用することだと思います。

Landoは、 dockerまたはdocker- docker-composeを直接使用するというマゾヒズムの構築を回避したい開発者向けです。

Landoのドキュメント

うん、どうやらdockerdocker-composeを使用するのはマゾヒスト向けです…では、新しいWordPressプロジェクトで作業するために必要なすべてのサービスを複雑にすることなくすばやく指定する方法を見てみましょう。

Landoのインストール

Landoを使用できるようにするために最初にすべきことは、(サプライズ、サプライズ!)コンピューターにインストールすることです。 インストールプロセスは非常に単純で、非常によく文書化されていますが、次の手順で要約できます。

  1. LandoにはDockerが必要です。 Linuxを使用している場合は、最初にDockerCommunityEditionをインストールしてください。 MacまたはWindowsを使用している場合、Landoのインストーラー自体がDockerをインストールします(まだ使用できない場合)。
  2. オペレーティングシステムに適したLandoインストーラーをダウンロードします。 たとえば、私の場合、ファイルlando-v3.0.0-rc.22.deb (Linuxを使用しています)をダウンロードし、 dpkgを使用してインストールしました。 Macの場合は.dmgファイルを使用し、Windowsの場合は.exeを使用します。
  3. インストーラーを実行し、手順に従います。

以上です!

Landoで新しいWordPressプロジェクトを作成する方法

最初に行う必要があるのは、作業するプロジェクトフォルダーに移動する(または新しいフォルダーを作成する)ことです。 私の場合、新しいWordPress dev envを作成して、Nelio A / B Testingプラグインを開発するので、プロジェクトをダウンロードしたフォルダー~/dev/plugins/nelio-ab-testingcdします。

そこで、Landoの構成ファイルを作成する必要があります。 このファイルはdocker-compose.ymlに似ていますが、はるかに単純です。 手始めに、あなたはそれを書く必要さえありません—ランドはあなたのためにそれをすることができます! lando initを使用して、新しい開発環境を作成するだけです。

 lando init \ --recipe wordpress --source remote --remote-url https://wordpress.org/latest.tar.gz --webroot wordpress --name "Nelio AB Testing" # name the project as you want

前の命令が何をするか見てみましょう:

  • まず、 lando initを使用して、現在のディレクトリに新しい構成ファイルを作成するようにLandoに指示します。
  • 最初のパラメーター( --recipe wordpress )は、WordPressプロジェクトを作成することをLandoに通知します。 これは、Landoがセットアップする必要のあるサービス(データベース、Webサーバーなど)を知るのに役立ちます。
  • 次に、LandoにWordPress.orgからWordPressをダウンロードしてもらいたいことを示します。
  • --webroot wordpressを使用して、WordPressがインストールされる場所をLandoに通知します。 WordPressをWordPress.orgからダウンロードする必要があることを指定したので、Landoがダウンロードするzipは、解凍後にwordpressフォルダーを作成します。これは、Landoに使用する場所です。
  • 最後に、プロジェクトの名前を指定します(Landoはそれを使用してわかりやすいURLドメインを生成します)。

前のコマンドを実行すると、Landoがすべてをインストールし、次の情報であなたを歓迎する方法がわかります。

 NOW WE'RE COOKING WITH FIRE!!! Your app has been initialized! Go to the directory where your app was initialized and run `lando start` to get rolling. Check the LOCATION printed below if you are unsure where to go. Oh... and here are some vitals: NAME my-site LOCATION /tmp/plugin RECIPE wordpress DOCS https://docs.devwithlando.io/tutorials/wordpress.html

現在のフォルダー内のすべてのファイルを一覧表示すると、Landoが次の内容の.lando.ymlという名前の隠しファイルを作成したことがわかります。

 name: my-site recipe: wordpress config: webroot: wordpress

非常にシンプルですよね? 次に、 lando startを使用してサービスを開始すると、準備が整います。

 BOOMSHAKALAKA!!! Your app has started up correctly. Here are some vitals: NAME my-site LOCATION /tmp/plugin SERVICES appserver, database APPSERVER URLS https://localhost:32781 http://localhost:32782 http://nelio-ab-testing.lndo.site https://nelio-ab-testing.lndo.site

おめでとうございます! これで、新しいWordPressのインストールが実行されました。 ここで、Landoが開始時にリストされているURLのいずれかに移動すると、WordPressのインストールを完了するための手順に従う必要があることがわかります。

国にWordPressをインストールする
LandoにWordPressをインストールします。

WordPressのインストールをすばやく完了する

もちろん、前の画面のインストーラーを使用してWordPressのインストールを完了することができます。 しかし、さらに優れた解決策があります。Landoでも利用できるWP-CLIを使用します。

WP-CLIを使用してWordPressをインストールするには、最初にwordpressディレクトリにwp-config.phpを作成する必要があります。 そのファイルを作成するには、データベースに関する情報が必要です。データベースの場所、ユーザー名とパスワードなどです。この情報はすべて、次のJSONを返すlando infoを介して見つけることができます。

 [ { service: 'appserver', urls: [ 'https://localhost:32781', 'http://localhost:32782', 'http://nelio-ab-testing.lndo.site', 'https://nelio-ab-testing.lndo.site' ], //... }, { service: 'database', //... creds: { database: 'wordpress', password: 'wordpress', user: 'wordpress', }, //... } ]

結果はJSON文字列であるため、Unixのjqツールを使用して、関心のある特定の値を取得できます。たとえば、データベースのユーザーを知りたい場合は、次のコマンドを実行します。

 $ lando info --service database --format json | jq -r ".[0].creds.user" wordpress

次に、このコマンドを利用して、WP-CLIを使用して構成ファイルを作成するために必要なすべての関連データを取得しましょう。

 # Find WordPress' directory (webroot entry in .lando.yml) WEBROOT=`grep webroot .lando.yml | cut -d: -f2 | xargs` # Retrieve database credentials using lando info DBNAME=`lando info --service database --format json | jq -r ".[0].creds.database"` DBUSER=`lando info --service database --format json | jq -r ".[0].creds.user"` DBPASS=`lando info --service database --format json | jq -r ".[0].creds.password"` DBHOST=`lando info --service database --format json | jq -r ".[0].hostnames[0]"` # Create WordPress' config file lando wp config create \ --dbname=$DBNAME \ --dbuser=$DBUSER \ --dbpass=$DBPASS \ --dbhost=$DBHOST \ --path=$WEBROOT

ファイルを作成したら、インストールコマンドを起動できます。

 # Get WordPress' project name from .lando.yml PROJECT_NAME=`grep name .lando.yml | cut -d: -f2 | xargs` SITE_NAME=`echo "$PROJECT_NAME" | sed -e "s/-/ /g" | sed "s/\b[az]/\u&/g"` # Get one of the possible WordPress' URLs ando created (https) URL=`lando info --service appserver --format json | jq -r ".[0].urls" | grep -vw localhost | grep https: | cut -d'"' -f2` # Extract the domain from the previous URL (removing https) DOMAIN=`echo "$URL" | sed -e "s/^https:\/\///"` # Install WordPress lando wp core install --url=$URL --title="$SITE_NAME" --admin_user=admin --admin_password=password --admin_email=admin@$DOMAIN --path=$WEBROOT

終わり! すでにWordPressがインストールされ、機能しています。

プロジェクトをWordPressに入れる方法

ここでWordPressにログインし、使用可能なプラグインを確認すると、プラグイン(私の例では、Nelio A / B Testing)が存在しないことがわかります。 これは、Nelio A/Bテストがwordpress/wp-content/plugins/にないためです。 これを修正するには、プロジェクトのルートを指すソフトリンクをこのディレクトリに作成する必要があります。

 cd wordpress/wp-content/plugins/ ln -s ../../../ nelio-ab-testing cd -

以上です!

ニーズにより適したアプローチを決定するのはあなた次第です。 すべてのプロジェクトにWordPressインストールを作成する場合は、私が説明した手順に従ってください。 一方、すべてのテーマとプラグインを含む単一のWordPressインストールが必要な場合は、新しいフォルダーを作成し、そこでLandoを初期化して、すべてのプラグインをwordpress/wp-content/plugins/に追加します。

私と同じように、この投稿とツールが気に入っていただければ幸いです。 そして、それがあなたの仕事をより簡単で面白くすることを願っています。 Landoを使用してから、Dockerから完全に離れました。

UnsplashのVictoireJoncherayによる注目の画像。