この記事は現役ウェブディベロッパーがわかりやすさにこだわって作成しました
LANDO公式サイトのインストール手順はこちらです。
環境設定
WINDOWSの場合はWSL2でLINUX環境を構築します。UBUNTUディストリビューションをダウンロードして最新のUBUNTUをインストールします。
はじめに、WSL2について少し触れておきます。
WSL2にLANDOをインストールする手順はこちらに書かれていますが、少し古い情報のようです。
ただ、HOST IPの設定は参考になります。
DOCKERは、LINUX版DOCKERをインストールするとDNSがDOKCERによって上書きされてしまいインターネットで外部にアクセスできないという現象が報告されています。今回は、WINDOWS版のDOCKER DESKTOPを使用しました。
WSL2のUBUNTUにDOCKERをインストールしたい人はこちらのサイトが参考になります。
Google Public DNSを設定すれば問題なく動作するようなので、うまくいけばこちらのほうが軽くていいかもしれません。
LANDOをインストール時に下記エラーの場合の対応法
Additional Setup
Because each Linux distribution handles things differently, these considerations may or may not apply to you:
- If your distro uses a docker group, make sure your user is a member of it:
sudo usermod -aG docker $USE
You will need to log out for this change to take effect. Sometimes a reboot is necessary. See this for more details.
WSL2でディストリビューションのアンインストール
wsl --list
wsl --unregister Ubuntu
wsl --list
WINDOWS側で設定からディストリビューションのアンインストールで行うと完了です。
WINDOWS側でアンインストールをせずに再度WSL2側でUBUNTUの起動すると再度環境を構築することが可能です。
WSL2で新しいディストリビューションのインストール
WINDOWS10以降でWSL2が使用できます。ここでWSL2のインストールは省きますが、WINDOWSの公式サイトなどから設定してください。
WSL2が正しく構築されていると、MICROSOFT STOREからUBUNTUディストリビューションをインストールするかWSLコマンドで対象にディストリビューションをインストールしてください
インストールが完了すると、ターミナルからUBUNTUを操作することができるようになります。
DOCKERとLANDOのインストール
まず最初に最低限必要なZIPコマンドをインストールします。
sudo apt install zip unzip
次にこちらからDOKCER関連およびLANDOとKUSANAGI RODインストールスクリプトを取得解凍してホームディレクトリに置きます。
SHELLスクリプトを実行すると自動的にDOCKER/DOCKER-COMPOSE/DOCKER-MACHINE/LANDO/KUSANAGI RODがインストールされます。
KUSANAGI ROD開発環境構築はこちら
KUSANAGI RODのWORDPRESS/DRUPALスクリプト
LANDOコマンドでローカル環境構築
LANDOはDOCKERを扱うためのツールです。LANDO設定ファイル(.landpo.yml)に作成したい環境を指定すると、LANDOはそれに従って環境を構築します。またこのLAND設定ファイルを作成するためのコマンドも用意されているので、対話方式で入力した情報で自動的に設定ファイルを作成することもできます。
今回は、WORDPRESS環境をLANDOで構築するために、一連のコマンドをスクリプトしました。
次のスクリプトを実行すると簡単に環境が構築できます。
WORDORESS版
スクリプトを実行するとフォルダ名を聞かれるので入力すると、フォルダを作成してその中にWORDPRESS環境を作成します。
./mkwordpress.sh
#!/usr/bin/bash
if [ $# -eq 0 ];then
#プロンプトをechoを使って表示
echo -n foldername=
#入力を受付、その入力を「str」に代入
read name
echo "フォルダ名は ${name} でよろしいですか?"
read -p "ok? (y/N): " yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
elif [ $# -eq 1 ];then
name=$1
else
echo "引数が不正です"
exit 1
fi
echo "現在起動中のコンテナをすべて停止する"
docker stop $(docker ps -q)
#webrootフォルダ名をここで指定する
webroot=webroot
# Create folder and enter it
mkdir ${name} && cd ${name}
# Copy lando_conf to current folder
cp -rf ../lando_conf ./.lando_conf
# Initialize a wordpress recipe using the latest WordPress version
lando init \
--source remote \
--remote-url https://wordpress.org/latest.tar.gz \
--recipe wordpress \
--webroot ${webroot} \
--name ${name}-app
echo "Rename webroot folder name to ${webroot}."
mv ./wordpress ./${webroot}
# Add xdebug service to .lando.yml
echo "Add xdebug service to .lando.yml"
sed -i "/webroot:/a \ xdebug: true\n config:\n php: .lando_conf/php.ini" .lando.yml
echo "Add phpAdmin service"
echo "" >> .lando.yml
echo "services:" >> .lando.yml
echo " phpmyadmin:" >> .lando.yml
echo " type: phpmyadmin" >> .lando.yml
echo " hosts:" >> .lando.yml
echo " - database" >> .lando.yml
echo "Rebuild docker based on .lando.yml"
# Rebuild it
lando rebuild -y
echo "Start it up"
# Start it up
lando start
# List information about this app
lando info
# Create a WordPress config file
lando wp config create \
--dbname=wordpress \
--dbuser=wordpress \
--dbpass=wordpress \
--dbhost=database \
--path=${webroot}
# Install WordPress
lando wp core install \
--url=https://${name}-app.lndo.site/ \
--title="${name} App" \
--admin_user=sinceretechnology \
--admin_password=Melb#1999 \
--admin_email=admin@sinceretechnology.com.au \
--path=${webroot}
DRUPAL9版
スクリプトを実行するとフォルダ名を聞かれるので入力すると、フォルダを作成してその中にDRUPAL9環境を作成します。
./mkdrupal9.sh
#!/usr/bin/bash
if [ $# -eq 0 ];then
#プロンプトをechoを使って表示
echo -n foldername=
#入力を受付、その入力を「str」に代入
read name
echo "フォルダ名は ${name} でよろしいですか?"
read -p "ok? (y/N): " yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
elif [ $# -eq 1 ];then
name=$1
else
echo "引数が不正です"
exit 1
fi
echo "現在起動中のコンテナをすべて停止する"
docker stop $(docker ps -q)
#webrootフォルダ名をここで指定する
webroot=web
# Create folder and enter it
mkdir ${name} && cd ${name}
# Initialize a drupal9 recipe
lando init \
--source cwd \
--recipe drupal9 \
--webroot ${webroot} \
--name ${name}
# Create latest drupal9 project via composer
lando composer create-project drupal/recommended-project:9.x tmp && cp -r tmp/. . && rm -rf tmp
# Start it up
lando start
# Install a site local drush
lando composer require drush/drush
# Install drupal
lando drush site:install --db-url=mysql://drupal9:drupal9@database/drupal9 -y
# List information about this app
lando info
LANDO用のWORDPRESS/DRUPALスクリプト
環境構築の公式LANDOサイト
こちらのサイトを主に参考にさせていただきました
LANDO公式サイトGETSTARTED WORPRESS編
LANDO公式サイトGETSTARTED DRUPAL編
LANDO公式サイト GETSTARTEDで紹介されたINITコマンドの使い方詳細はこちら
ご自身でLANDO環境のスクリプトを作成する際はこちらが参考になります
LANDOでXDEBUGを使ってPHPSTORMでデバッグする
WSL2のHOST IPの説明
https://docs.lando.dev/guides/setup-lando-on-windows-with-wsl-2.html
この記事についてのご質問またはお困りのことがございましたら、お気軽にお問い合わせください。