WSL2 + Lando:WindowsでのWeb開発環境構築ガイド(#1)

WSL2+Lando:WindowsでのWeb開発環境構築ガイド

Windowsユーザーとして、LAMP環境の構築に悩んでいませんか?
この記事では、WSL2(Windows Subsystem for Linux 2)とLandoを使って、より効率的で柔軟なローカル開発環境を構築する方法を紹介します。

私自身、どの方法がWindowsでの開発環境構築にベストなのか常に迷う一人として、次のような課題を抱えている方々の参考になればと思います。

  • WindowsでLAMP環境を構築したいが、最適な方法が見つからない
  • Xamppは使いやすいが、より本番環境に近い設定が必要
  • Vagrant + VirtualBox は機能的だが、システムリソースを多く消費する
  • Windowsに直接 Apache + PHP + MariaDB (MySQL) をインストールするのは複雑で時間がかかる
  • Dockerの概念は魅力的だが、学習曲線が急で導入に躊躇している
  • WordPress開発用に Local を使用しているが、他の選択肢も検討したい
  • PHP、Python、Node.jsなど、複数の言語やフレームワークを一元管理できる環境が欲しい
  • チーム内で一貫した開発環境を簡単に共有・再現したい

WSL2とLandoの組み合わせは、これらの課題に対する一つの解決策となる可能性があります。完璧な方法ではないかもしれませんが、開発効率を向上させ、より柔軟な環境を実現できる手段の一つです。

このガイドを通じて、手順をわかりやすく説明し、実際に使った感想や注意点も含めてお伝えします。皆さんの開発ワークフロー改善のヒントになれば嬉しいです。

Landoって何?

Landoは、開発者向けに設計されたローカル開発環境の構築ツールです。

もともとDockerというコンテナ技術をベースに作られていて、プロジェクトごとに異なるサーバー環境やツールチェーンを簡単に管理できるのが特長です。たとえば、あるプロジェクトではPHPとMySQLが必要で、別のプロジェクトではNode.jsとMongoDBが必要な場合、Landoを使えばそれぞれの環境をスムーズに切り替えて管理できます。

さらにLandoは、設定ファイルを共有することでプロジェクトの環境を簡単に再現できるので、チーム全体で同じ環境を用意することがとても簡単です。これにより、開発者同士で「私の環境では動くけど、あなたの環境では動かない」といった問題が起こりにくくなります。

Landoは、Windows, macOS, Linuxに対応しています。それぞれにLandoがインストールされていれば、設定ファイルを共有することで、Windows, macOS, Linux の開発者と環境を揃えることが可能です。

詳しくは、Landoの公式サイトをご覧ください。

Landoを選んだ理由

私はこれまで、冒頭で挙げたような様々な開発環境を試してきました。ここ数年は、Windowsに直接 Apache + PHP + MariaDB (MySQL) をインストールして使用し、直近はWordPress用の環境としてLocalも併用していました。

Localは確かに手軽で、自動でインストールされるWordPressを削除することで通常のLAMP環境としても使えるという利点がありました。しかし使い続けるうちに、動作の重さや、他の開発者と環境を共有できないことが気になったり、ドキュメントルートのディレクトリ名を変更できないなど、細かな設定変更が難しい点に不満を感じるように。

そこで、他のツールや方法を探し始めました。その際に求めた要件は次の通りです:

  • PHPやMariaDB (MySQL) のバージョンをプロジェクトごとに設定・変更できること
  • ドキュメントルートを含むディレクトリ構造を自由に指定できること
  • コマンドラインでサーバーの起動や停止が簡単にできること
  • 環境情報を他の開発者と共有しやすいこと

いろいろ調べてもDockerやLocalの情報が多く、あまり大きな変化はないように思っていたのですが、たまたまこちらの記事(Three ways to set up a WordPress local development environment)を見つけて、初めてLandoの存在を知りました。

さらに調べると、LandoにはRecipes(レシピ)と呼ばれる環境パッケージがあり、これを使うことで簡単にLAMPやWordPressの開発環境を構築できることがわかりました。Drupalのレシピもあることから、日本ではDrupal環境として使われているケースが多いようです。(知らなかった…!)

Drupal以外で利用されている記事は見かけませんでしたが、私が求めていた要件を満たし、柔軟な設定と環境の共有ができそうなので、試してみることにしました。

WSL2を使う理由

LandoをWindowsで使う際、2つの方法があります。
1つはWindowsに直接Landoをインストールする方法、もう1つはWSL2(Windows Subsystem for Linux 2)を利用する方法です。

Windowsに直接Landoをインストールするメリットは、導入が簡単なこと。
反面、Windows上でDockerを動かすため、WindowsとLinuxのファイルシステムの違いによってファイルアクセスが遅くなる=パフォーマンスが低下するというデメリットがあります。

WSL2を利用する場合、WSL2はLinuxベースの環境を提供するためLandoやDockerのパフォーマンスが向上します。また、より本番環境に近い状態で開発ができる点もメリットです。
デメリットは、初期設定がやや複雑で、WSL2やLinuxの基本的な知識が必要なこと。また、Windowsのファイルシステムとの間でのファイルアクセスが遅くなることがありますが、これはWSL2内のファイルシステムにプロジェクトを置くことで改善できます。

これらの点を考慮し、私はWSL2を利用してLandoをセットアップすることにしました。

Windowsへのインストールについて、詳しくは公式を参照してください)

目指す環境と、このガイドの目次

このシリーズでは、WSL2とLandoを使ってWindows上に実用的なローカル開発環境を構築していきます。最終的には、次のような環境の構築を目指します。

  • Windows11上のWSL2にLando環境を作る
  • LandoでLAMP環境(Apache, MariaDB, PHP)を作り、
  • プロジェクト内でGitの操作やGulpを使用できるようにする
  • Landoの操作は、WindowsのVSCodeから行えるようにする

また、このガイドの目次は次です。

次回の記事では、Windows11にWSL2とUbuntuをセットアップする手順を詳しく見ていきます。
ぜひ、ご覧になってください。