[PHP]DockerでPHP, MySQL(MariaDB), nginxを使ったローカル開発環境を構築する

Docker とは軽量な仮想化環境を構築するためのツールで、ウェブサーバーやデータベースなどの機能に関連するコンテナーを組み合わせればウェブサイト制作のためのローカル開発環境を簡単に構築することができます。

一般的にローカル開発環境を作る場合、使っているコンピュータ(ホストOS)に直接ウェブサーバーやデータベース機能をインストールするか、Vagrant + VirtualBox を使ってコンピューター上にもう1つの仮想の OS(ゲストOS)をまるごとインストールし、その中に環境を構築していました。

ホストOSに直接開発環境を揃える前者のやり方はマシンによって構築方法が異なったり、バージョンの切り替えが難しかったりするなど、開発チーム内で構築方法を揃えるのは困難でした。

ゲストOS上に Linux(Ubuntu や CentOS など)をインストールし、その中に環境を構築する後者の方法は本番環境とほぼ同じ状態を再現できるため人気がありますが、1台のコンピュータ上で2つの OS を稼働させるには高性能なコンピュータとリソースが必要となります。

続きを読む[PHP]DockerでPHP, MySQL(MariaDB), nginxを使ったローカル開発環境を構築する

[PHP]2018年現在使っているおすすめの開発ツール・開発環境(Mac)

PHPでの開発を始めた頃と現在では随分使っているツールや開発環境が変わってきました。
そこで現在主に使用しているものを紹介してみます。

開発機

MacBook Pro (15-inch, Early 2011)

ものすごく古いマシンなのは承知していますが簡単にメモリやストレージを増設できるので重宝しています。メモリを 16GB に増設し、ハードディスクを SSD に換装したのでまだ使えますが、グラフィックメモリが 256MB しか無いので時間の問題です。もう少し新しいモデルも持っているのですがメモリが増設できないため(8GBでは足りませんでした)そちらは使っていません。

IDE, テキストエディタ

PhpStorm

もはや説明不要ですが JetBrains の PHP 専用 IDE です。これの代わりになるものは無いと思います。
最新バージョンの PHP や各種フレームワークへの対応も早いので安心感があります。

Visual Studio Code

Microsoft がオープンソースで開発しているテキストエディタです。
一時期 Atom を中心に使っていましたが現在は完全にこちらです。
プラグインがひと通り出揃ったので構文エラーのチェックや定義への移動など本格的な事もできます。

ローカルサーバー, データベース

Vagrant

Cent OS 7 を Virtual Box で利用しています。最初の構築が大変ですが自由度が高いので好きなようにカスタマイズできます。サーバー自体の勉強にもなるので触れておいて損はないと思います。
今は使い慣れた Apache で動かしていますがいずれは nginx も覚えないといけないなと考えています。

Valet

Laravel が作ったローカル開発環境です。MAMP に近いものではありますが、ホスト名とフォルダの割当てが簡単にできるのでかなり楽です。詳細なサーバー設定が必要ないのであればこれで十分です。

その他開発ツール

SourceTree

GitHub や BitBucket のリボジトリを管理する定番のツールです。
ターミナルで十分な時もありますがブランチの状況やコンフリクトの確認がしやすいので持っていると心強いです。

Postman

POST, GET などのリクエストをテストするためのツールです。Ajax 処理や API 開発の際にあると便利です。

Sequel Pro

GUI でデータベースを操作するためのツールです。ちょっとした修正や正しくテーブルが作られているかの確認に使ったりします。

ForkLift

2ペインに分割できる Finder のようなアプリケーションです。不可視ファイルの表示/非表示が簡単にできるので見やすいです。一応ファイル一括リネームや FTP 用のツールにもなります。

グラフィック

Photoshop

なんだかんだで手放せないツールです。Affinity Photo なども試しはしたものの他の方とデータをやり取りするのに不便なので変えられません。
主な用途はバナー作成や写真の加工です。以前は装飾されたボタンや文字を作るのに使うことが多かったですが最近はシンプルなデザインがほとんどなので立体的な文字や透明感のあるボタンなどは需要が減ってきました。

Illustrator

ロゴやアイコンを作るのに使用しています。JavaScript で自動処理ができるので各アイコンを一気に SVG として書き出すなどの処理が簡単にできます。最近ではウェブでもベクター画像を取り扱うことが珍しくなくなったので使う機会は多いです。

Sketch

ウェブデザインを組み上げるには Sketch を使っています。Photoshop で加工した画像や Illustrator で作ったロゴなどを配置してレイアウトを作ります。
ヘッダーやメニュー等のパーツの使いまわしや修正に強いのが便利です。最近はページをリンクさせて遷移のプレビューができるといったプロトタイピングツールとしての機能も追加されたのでサイトの雰囲気を確認するのにも役立っています。

[PHP]Laravel Valet を使った簡単なローカル環境構築

PHP のローカル環境構築行うには様々な方法がありますが、Laravel Valet を使うと複雑な設定なしに簡単に環境を構築できます。
Laravel が開発しているものですが、Laravel フレームワーク以外にも、CakePHP 3、WordPress、Symfony を始めとするほとんどの主要なフレームワークや静的HTMLファイルがサポートされています。

ここでは Mac に Valet をインストールし、サイトを立ち上げるまでを説明していきます。

PHP のインストール

まず前提として新しい PHP がインストールされている必要があるため、それらをインストールするために Homebrew を使います。
Homebrew がインストールされていない場合は下記のようにしてインストールします。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

次に PHP をインストールします。すでにインストール済みの場合は飛ばして下さい。

brew update
brew install homebrew/php/php71

次に PHP へのパスを通します。「~/.bash_profile」に次の行を追記して下さい。

export PATH="$(brew --prefix homebrew/php/php71)/bin:$PATH"

即時反映させたい場合は「source ~/.bash_profile」で反映されます。

Valet のインストール

Valet のインストールは Composer を使って行います。こちらもインストールされていない場合は次のコマンドでインストールして下さい。

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

先程の ~/.bash_profile ファイルに Composer で使う実行ファイルのためのパスを通します。

export PATH="$PATH:$HOME/.composer/vendor/bin"

保存後、必要に応じて source コマンドで反映させて下さい。次に Valet をインストールします。

composer global require laravel/valet
valet install

Valet のインストールを終えたら、プロジェクトの親フォルダを指定します。1つ1つのプロジェクトのフォルダではなく、それらの複数のプロジェクトが格納されている親のフォルダを指定します。ここでは例として「~/Sites」を指定しします。

cd ~/Sites
valet park

valet park コマンドを実行したときのフォルダが Valet と紐付けられ、「http://フォルダ名.test」でアクセスできるようになります。

例えば hello フォルダを作って index.html ファイルを設置した場合、「http://hello.test」でその HTML ファイルが表示されます。

Laravel フレームワークのように公開フォルダとして public がサブディレクトリとして用意してある場合でも特に問題なく表示できました。独自フレームワークなどで任意の公開フォルダを指定したい場合、link コマンドで割り当てることもできます。

cd ~/Sites/my-project/web
valet link project-name

このように好きな名前(ここではproject-name)を現在のディレクトリに割り当てると「http://project-name.test」で「~/Sites/my-project/web」が表示されるようになります。
もとに戻したい場合は「valet unlink app-name」のようにします。

また、ドメイン名の *.test では不都合がある場合、valet domain コマンドで変更できます。

valet domain app

このようにすると *.app でアクセスできるようになります。

TLS を使って暗号化するには「valet secure」コマンドを使います。これにより指定したプロジェクトが「https://〜」でアクセスできるようになります。解除するには「valet unsecure」でもとに戻せます。

valet secure app-name

その他のコマンド

その他にも基本的なコマンドとして下記のものなどが用意されています。

valet forget park コマンドで登録したパスを解除する。
valet paths park コマンドで登録されているパスの確認。
valet restart Valet デーモンの再起動
valet start Valet デーモンの開始
valet stop Valet デーモンの停止
valet uninstall Valet デーモンのアンインストール