Briswell Tech Blog

ブリスウェルのテックブログです

PHPローカル開発環境 Devilboxを試す

はじめに

PHPのローカル開発環境として、Devilboxを試してみました。

Devilboxの日本語の記事が見当たらないので簡単にまとめます。

Devilboxとは

公式サイトの説明によると、 "LAMPやMEAN環境をフルサポートしたPHPスタック。 主な目標はローカル環境のバージョン切り替えを容易にすること"とあります。

The Devilbox is a modern and highly customisable dockerized PHP stack supporting full LAMP and MEAN and running on all major platforms. The main goal is to easily switch and combine any version required for local development.

環境のイメージとしてはLaraDockとよく似ていますね。

Laradockと比較するとDevilboxは公式ドキュメントが充実しているような気がします。

https://raw.githubusercontent.com/devilbox/artwork/master/submissions_diagrams/cytopia/01/png/architecture-full.png

上記は公式の画像ですが、最小構成のApache, PHP, MySQLのみ起動することも可能です。

お客様の環境がオンプレだったり、Docker化されていない既存案件を手軽にローカルで試してみたい人に向いていると思います。

手元に既にDocker化している環境がある場合はDevilbox導入のメリットは特にないです。(そもそも全部入りなDocker環境は不要という意見もよく目にします。)

この記事でやること

  • 下記の弊社記事に必要な開発環境をMac OS X上でDevilboxを使って構築し、CakePHPのinstallと接続確認まで行います。

tech.briswell.com

手順

Devilboxをclone

$ git clone https://github.com/cytopia/devilbox

envファイルをコピー

$ cd devilbox
$ cp env-example .env

envファイルを編集

このenvファイル編集によりPHPのバージョン切り替えも可能です。

$ vim .env

Macで作業する場合、下記リンクの通りUID, GID, cache設定も.envファイルに

https://devilbox.readthedocs.io/en/latest/getting-started/install-the-devilbox.html#osx-performance

docker-compose upで各コンテナの起動

今回はhttpd php mysqlがあれば良いので末尾にhttp php mysqlと指定します。

$ docker-compose up -d httpd php mysql

PHPコンテナ内に入る

$ ./shell.sh

f:id:usami-t:20200806035432p:plain

PHP、composer、npm、Node.js、Vue CLIを確認

全て含まれていますね。 f:id:usami-t:20200806035629p:plain

CakePHP環境の構築

今回はmy-cake.locをアクセス先として繋がるローカル環境を作成していきます。

# PHPコンテナ内の/shared/httpdにて
$ mkdir my-cake
$ cd my-cake

# CakePHP4のインストール
$ composer create-project --prefer-dist cakephp/app:4.* hello_briswell

# my-cake/htdocsにシンボリックリンクを作成
$ ln -s hello_briswell/webroot/ htdocs

実行した結果、下記のようなディレクトリ構成になります。 f:id:usami-t:20200806045901p:plain

/etc/hostsの編集

Macの/etc/hostsファイルに下記の記載を追加します。

127.0.0.1 my-cake.loc

追記した結果、ブラウザにてDevilboxの管理画面であるlocalhost/vhosts.phpにアクセスするとURLが有効であると表示されます。 f:id:usami-t:20200806050244p:plain

接続確認

http://my-cake.loc/にアクセスすると、無事アクセスできました。 f:id:usami-t:20200806050623p:plain

最後に

プロジェクトを追加したい場合は、別フォルダを作成しhtdocsのリンクを作っていけば良いだけなので簡単です。

Devilboxの管理画面もリンクが色々含まれていて便利そうでした。(phpMyAdminやOpcache Control Panelなどへ遷移可能) f:id:usami-t:20200806053424p:plain

今回の記事では未実施ですが、設定を行えばhttpsも使えるようです。

手軽に開発環境を作りたいときの選択肢の一つとしていかがでしょうか。