DDEVで始めるPHPローカル開発環境構築[入門編]
みなさんは自身の端末で開発環境を構築する際にどんなツールを利用されていますか?
定番はDockerを利用することだと思いますが、何も知らないところから始めようとすると仕組みやDockerfile,docker-compose.yml等覚えることがたくさんあり一番の目的のアプリケーション開発前にモチベーションが低下する可能性があります。
そこでおすすめしたいのがDDEVになります!
今回は入門編としてDDEVのインストールと phpinfo();
をWEBページに表示するところまでやってみたいと思います。
ローカル環境はMacを想定して記述しています。
DDEV とは
- ローカルWEB開発環境を簡単に構築する為のツール
- PHP,Node.jsのWEBアプリケーションをサポート
- Dockerの知識が無くともDocker上に簡単にコンテナを構築
- Dockerの知識があれば機能を拡張することも容易
DDEV インストール
前提としてDockerのインストールが必要になります。
MacであればOrbStackやcolimaといったアプリケーションでも大丈夫です。
Homebrewがインストールされている場合、以下のコマンドでインストールを行います。
# ddevインストール
brew install ddev/ddev/ddev
# ローカル環境用のSSL証明書セットアップ
mkcert -install
Homebrewを利用しない場合、以下のコマンドでインストールを行います。
curl -fsSL https://ddev.com/install.sh | bash
インストールが正常に完了すると以下のように ddev version
で情報が表示出来ます。
~ ❯❯❯ ddev version
ITEM VALUE
DDEV version v1.22.7
architecture arm64
db ddev/ddev-dbserver-mariadb-10.4:v1.22.7
ddev-ssh-agent ddev/ddev-ssh-agent:v1.22.7
docker 25.0.3
docker-compose v2.24.5
docker-platform orbstack
mutagen 0.17.2
os darwin
router ddev/ddev-traefik-router:v1.22.7
web ddev/ddev-webserver:v1.22.7
サンプルWEBサイト作成
メインの phpinfo を表示するサンプルサイトを構築します。
ディレクトリ/ファイル構成
ファイル構成は以下のようになります。
.ddev
配下にDDEVに関する各種ファイルが格納され、web
配下がWEBサイトのドキュメントルートになります。
.
├── .ddev
│ └── config.yaml
└── web
└── index.php
プロジェクトディレクトリ作成
今回のサンプルサイトを動かす為のディレクトリを作成します。
# プロジェクトディレクトリ作成
mkdir ddev-tutorial && cd $_
DDEV初期設定
DDEVの初期設定を行います。
project-type
にphpを指定しphpアプリケーションを動かすことを明示します。
docroot
はWEBサイトのドキュメントルートの指定になります。
ddev config --project-type=php --docroot=web
上記コマンドによってDDEVの初期設定が行われ以下のコンテナが起動する状態になります。
MariaDB、Mailpitは今回のサイトでは使用しませんがデフォルトで導入されるものになります。
- nginx
- MariaDB
- Mailpit
詳細は .ddev/config.yaml
に定義されています。
こちらの内容は別記事にて解説予定です。
index.php作成
phpinfoを表示するindex.phpの作成を行います。
# ドキュメントルート作成
mkdir web && cd $_
# index.php作成
cat << EOF > index.php
<?php
phpinfo();
EOF
DDEV起動
起動準備が整ったのでいよいよDDEVを起動しWEBサイトを表示します。
# DDEV起動
ddev start
# 初回実行時はコンテナのダウンロードやビルドが行われる為時間がかかる
Network ddev_default created
Starting ddev-tutorial...
Network ddev-ddev-tutorial_default created
Container ddev-ssh-agent Created
Container ddev-ssh-agent Started
ssh-agent container is running: If you want to add authentication to the ssh-agent container, run 'ddev auth ssh' to enable your keys.
Building project images...
Project images built in 0s.
Container ddev-ddev-tutorial-db Created
Container ddev-ddev-tutorial-web Created
Container ddev-ddev-tutorial-db Started
Container ddev-ddev-tutorial-web Started
Waiting for web/db containers to become ready: [web db]
Starting ddev-router if necessary...
Container ddev-router Created
Container ddev-router Started
Waiting for additional project containers to become ready...
All project containers are now ready.
# 正常に起動すると以下のメッセージが表示され ddev-tutorial.ddev.site でアクセス可能な状態になる
Successfully started ddev-tutorial
Project can be reached at https://ddev-tutorial.ddev.site https://127.0.0.1:32772
ブラウザで http://ddev-tutorial.ddev.site/
にアクセスするとphpinfoが表示されました!
簡単にローカル開発環境の構築が出来ました 👍
まとめ
- DDEVを使うとDockerの知識が無くとも簡単にローカル開発環境が構築出来る
- シンプルなphpサイトを立てるだけであれば↑のステップだけで出来る
開発環境が簡単に構築出来るとメインのWEBアプリ開発に専念出来ます!
ぜひDDEVを使ってみてください!
次回はDDEVのconfigに関する解説をしようと思います。
Discussion