Windows と Mac でシームレスな PHP の開発環境

何年経っても、 PHP の苦手意識が抜けないのですが、 PHP で仕事している以上は、それなりの成果を求められます。
開発現場の関係で、 Windows と Mac の両方を使っています。
最近は、PHP やツールの互換性が充実してきているので、工夫すれば、どちらの環境でも安定したパフォーマンスを出せるようになってきました。
[MS ナデラ CEO が iPhone や iPad でプレゼンする時代](http://www.itmedia.co.jp/news/articles/1509/18/news139.html)です。
真のエンジニアたるもの、「Windows の方が好き」とか、「Mac じゃなければ開発効率が落ちる」とか言っていたらダメだと思うのです。

※ ここに書くのは、あくまでも私個人に特化した環境です。万人受けするものではないことをご了承ください。

共通の環境
-----------

まず、 Windows でも Mac の両方に入れているものです。

#### Emacs

[Emacs のアイコンを作った人](http://www.slideshare.net/nanasess/emacs-5282932)なので、これは外せません...
設定ファイルを工夫することで、 Windows, Mac を問わず、 FreeBSD や Linux、 Solaris などでも同じような操作性を実現できます。

#### zsh

[漢の zsh](http://news.mynavi.jp/column/zsh/) です。最近は Windows でも真面目に動くようになりました。 Cygwin は使わず、 MSYS2 を使用しています。

#### PHP

Windows では、 [Web Platform Installer](https://www.microsoft.com/web/downloads/platform.aspx) や、[Windows 版バイナリ](http://windows.php.net/)で、PHP5.3～5.6、7 の各バージョンをインストールしています。
Mac では、 [phpbrew](https://github.com/phpbrew/phpbrew) で、PHP5.3～5.6、 7 の各バージョンをインストールしています。

#### Git

Windows は [Git for Windows](https://git-for-windows.github.io/) のものを使用しています。
Mac は Mac OS X にバンドルされたものを使用しています。


#### RDBMS

PostgreSQL, MySQL, SQLite3, Oracle, SQL Database など、それぞれ扱えるようにしています。
phpMyAdmin みたいな Web ツールは使えない人なので、コマンドラインか [Emacs DBI](http://d.hatena.ne.jp/kiwanami/20120305/1330939440) で操作してます。

#### Virtualbox

Windows で UNIX系 OS の動作確認するのが主ですが、こんな VM を入れてます。

- **Solaris 11** - Virtualbox との相性がすこぶる良くて、超安定しているので重宝しています。 Windows で PHPUnit + xdebug を動かすと死ぬほど遅いので、TestSuite を実行する場合は、こちらを使用しています。
- **Gentoo/Linux** - 趣味です
- **lubuntu** - 勉強のため
- **Docker ToolBox** - 仮想コンテナ使うのなら [Solaris Zones](https://docs.oracle.com/cd/E37932_01/html/E36581/zonesoverview.html) で十分なのですが、流行に遅れないよう勉強のため。
- **CentOS** - 顧客の本番環境は、 CentOS が多いので。 [nanasess/vagrant-lamp](https://github.com/nanasess/vagrant-lamp) とか [EC-CUBE/eccube-vagrant](https://github.com/EC-CUBE/eccube-vagrant) を使ってます

本当は FreeBSD も使いたいのですが、共有フォルダに難があるので使っていません...

#### Office

今は無き Office365 Small Business Premium というプランを使い続けています。
どうしても Access を使わなくてはならない場合があるので...
Windows も Mac も含めて 5台まで使えるので重宝しています。


#### クラウドストレージ

Dropbox, GoogleDrive, OneDrive, iCloud と、それぞれ使っています。
Excel や Word といった Office の文書を共有するのには、 OneDrive が最強です。同時に開いても、しっかり排他制御してくれます。


#### IME

Windows では [CorvusSKK](https://github.com/nathancorvussolis/corvusskk)、
Mac では [codefirst/aquaskk](https://github.com/codefirst/aquaskk) です。
Emacs では [ddskk](http://openlab.jp/skk/index-j.html) です。

SKK を使うと何が嬉しいかは [AquaSKK プロジェクト::迷っている人へ](http://aquaskk.osdn.jp/aquaskk_pr.html) を読むと良いでしょう。

#### Happy Hacking Keyboard

[これの初代のモデルです](http://www.pfu.fujitsu.com/hhkeyboard/hhkbpro2/nokeytop.html)

Windows 環境
--------------

元々、 UNIX 使いなので、いろいろ試行錯誤してますが、それなりのパフォーマンスを発揮できる環境になりました。
cygwin.dll に依存するのが嫌で、 Cygwin は使っていません。

また、 EC-CUBE や WordPress といった Webアプリケーションを動かすのに、 XAMPP を使っている人が多いのですが、哀しい思い出しか無いので絶対使いません...

#### conemu

bash や zsh から、 コマンドプロンプト、 PowerShell までこれ一つでこなせます。
https://conemu.github.io/

#### msys2

[MSYS2 Installer](https://msys2.github.io/) から入れています。本来の Windows 環境との互換性もバランス良く取れているので重宝しています。

#### WebMatrix

Windows ローカル環境で EC-CUBE を動かすなら、ほとんどこれです。
https://www.microsoft.com/japan/web/webmatrix/
XAMPP よりも簡単に環境構築できる(と思っている)のですが、 XAMPP と仲が悪いので、[共存するのには工夫が必要](http://blogs.msdn.com/b/web_/archive/2011/07/27/10190225.aspx)です。。。

#### keyhac

Windows で Emacs キーバインドを使えるようになります。
https://sites.google.com/site/craftware/keyhac

Mac の環境
-------------

#### HomeBrew

長らく MacPorts を使っていましたが、勉強のため。

#### nginx

Mac で PHP の Webアプリケーションの動作確認をする時は、ほとんど [PHP ビルトインウェブサーバー](http://php.net/manual/ja/features.commandline.webserver.php)で事足りでいるのですが、きちんと動かしたい時は php-fpm 経由で nginx を使っています。

#### phpbrew

5.3～5.6、7 の各最新バージョンを入れています。
nginx と [php-fpm](https://github.com/phpbrew/phpbrew#php-fpm) とを組み合わせれば、バージョンの切り替えも楽ちんです。

まとめ
-------

長くなってしまいましたが、MS Office の Mac での互換性向上や、各種 UNIX 系ツールの Windows での互換性向上により、プラットフォームの差異に悩むことが少なくなりました。
これもひとえに、互換性の問題を解決しようという開発者の努力と技術力の賜物だと思っています。
偉大なエンジニアの技術力に畏敬の念を抱きます...