こちらのサイトではDRUPAL10に関連する記事を掲載しています。
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 Ubuntuxxxx
wsl --list
wsl --list
WINDOWS側で設定からディストリビューションのアンインストールで行うと完了です。
同じディストリビューションを再インストールしたい場合は、WINDOWSのマイクロソフトストアで対象ディストリビューションのアプリ(ex. Ubuntu20.04)をアンインストールをしなくても、再度WSL2側でUBUNTUの起動すると再度環境を構築することが可能です。
WSL2で新しいディストリビューションのインストール
WINDOWS10以降でWSL2が使用できます。ここでWSL2のインストールは省きますが、WINDOWSの公式サイトなどから設定してください。
WSL2が正しく構築されていると、MICROSOFT STOREからUBUNTUディストリビューションをインストールするかWSLコマンドで対象にディストリビューションをインストールしてください
wsl --install -d Ubuntu-22.04
インストールが完了すると、ターミナルからUBUNTUを操作することができるようになります。
DOCKERとLANDOの手動インストール
マニュアルでのインストールは以下のサイトを参照
Dockerのインストール
Landoのインストール
スクリプトでインストール
スクリプトをこちらです。
Ubuntuをインストールした後、スクリプトを実行します。
#INSTALL DOCKER/DOCKER-COMPOSER/DOCKER-MACHINE/KUSANAGI-ROD
echo "/windows/system32/drivers/etc/hostsで上記FDQNが127.0.0.1に紐付けられていることを確認ください"
echo "INSTALL DOCKER/DOCKER-COMPOSE/DOCKER-MACHINE/LANDO/KUSANAGI-ROD"
read -p "Press [Enter] key to move on to the next."
#update
sudo apt-get update
echo "ubuntu update has completed"
read -p "Press [Enter] key to move on to the next."
sudo apt-get upgrade
echo "ubuntu upgrade has completed"
read -p "Press [Enter] key to move on to the next."
#set name and email to git
git config --global user.name "sinceretechnology"
git config --global user.email "admin@sinceretechnology.com.au"
#install gettext (msgfmt)
sudo apt-get install gettext
#install docker
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
#docker test
sudo docker run hello-world
sudo usermod -aG docker ${USER}
echo "DOCKER INSTALL COMPLETED"
read -p "Press [Enter] key to move on to the next."
#install docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose version
echo "Docker-compose installed"
read -p "Press [Enter] key to move on to the next."
#install docker-machine
curl -L https://github.com/docker/machine/releases/download/v0.12.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine &&
chmod +x /tmp/docker-machine &&
sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
echo "Docker-machine installed"
read -p "Press [Enter] key to move on to the next."
#install LANDO
wget https://files.lando.dev/installer/lando-x64-stable.deb
sudo dpkg -i lando-x64-stable.deb
echo "LANDO INSTALL COMPLETED"
#install kusanagi rod
curl https://raw.githubusercontent.com/prime-strategy/kusanagi-docker/master/install.sh |bash
echo "KUSANAGI-ROD INSTALL COMPLETED"
もしくはこちらから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
参考URL
この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。