🍔

DDEVで始めるPHPローカル開発環境構築[入門編]

2024/03/10に公開

みなさんは自身の端末で開発環境を構築する際にどんなツールを利用されていますか?
定番はDockerを利用することだと思いますが、何も知らないところから始めようとすると仕組みやDockerfile,docker-compose.yml等覚えることがたくさんあり一番の目的のアプリケーション開発前にモチベーションが低下する可能性があります。

そこでおすすめしたいのがDDEVになります!
今回は入門編としてDDEVのインストールと phpinfo(); をWEBページに表示するところまでやってみたいと思います。

ローカル環境はMacを想定して記述しています。

DDEV とは

  • ローカルWEB開発環境を簡単に構築する為のツール
  • PHP,Node.jsのWEBアプリケーションをサポート
  • Dockerの知識が無くともDocker上に簡単にコンテナを構築
  • Dockerの知識があれば機能を拡張することも容易

DDEV インストール

前提としてDockerのインストールが必要になります。
MacであればOrbStackcolimaといったアプリケーションでも大丈夫です。

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