普段は Vagrant 上に Composer をインストールしていた

昨今の PHP 開発では Composer は必須であるが私はいつも Vagrant 上の VM に Composer をインストールしており vagrant ssh した上で composer install / update するなどしていた。 それでも勿論良いのだが PhpStorm 上に Vagrant や Composer のメニューが有り PhpStorm から出ずに vagrant up から vagrant ssh していろいろやったり composer update したりが可能になっている。 このメニューを使用するには PhpStorm 側にローカルの Composer の実行パスを教える必要がある。 つまりローカルに Composer をインストールする必要があった。 そして Composer を使うには PHP が必要となるので PHP をインストールして Composer をインストールする手順を記す。

macOS の場合はほぼ Linux の場合と同じなのでやりやすいが Windows の場合は意外と困る。 あと PHP をインストールするのは Xampp を使うと楽なのだが余計な Apache や MariaDB はインストールしたくないので素の PHP をインストールすることとする。

PHP インストール

Windows 用の PHP バイナリをダウンロードするサイトがあるのでここからダウンロードする。 バージョンは使いたいものでいいと思うが、現時点での最新は PHP 7.1 なのでそれをダウンロード。 Non Thread Safe か Thread Safe のどちらがいいのかというところだが Apache を使う場合は Thread Safe にせよとの事らしい。 コマンドラインから使うだけの分にはどちらでも良さそうだ。

ダウンロードした zip を適当な位置に解凍する。 自分は C:\php71 にした。

その後コマンドラインから実行する為に PATH を通す。 よくある手順だがコントロールパネルの「システムの詳細設定」からの「環境変数」を押下。 自分だけに適用したい場合は「ユーザー環境変数」、ユーザ全員に適用したい場合は「システム環境変数」の PATH を選択する。 そこに先程 PHP をコピーしたディレクトリ C:\php71 を追記する。

php.ini

さて、用意した PHP にはまだ php.ini が無い。 だが元となる php.ini-development が置いてあるので、それをコピーして php.ini にリネームする。 ちなみに本番環境では php.ini-production を使うが、今回の場合は実行時にエラーメッセージが表示される development の方がいい。

そして php.ini の以下の場所のコメントアウトを外す (; を削除する):

; Windows だと ext ディレクトリに DLL が全て入っている
extension_dir = "ext"

; CakePHP 3 インストールに必要
extension=php_intl.dll
extension=php_mbstring.dll

; Composer インストールに必要
extension=php_openssl.dll

コマンドプロンプトを開き php -v などと叩き、正しく PHP バージョンが表示されることを確認する。

Composer

Composer のダウンロードページComposer-Setup.exe をダウンロードして実行する。 ここでローカル PHP のパスを聞かれるので、先程インストールしたものを教える。

コマンドプロンプトを開き composer と叩き正しく Composer のコマンドリストが表示されるのを確認する。

インストールが完了すると Composer が C:\ProgramData\ComposerSetup\bin\composer に入る (ProgramData は隠しフォルダなのでエクスプローラで普通にたどると見えないので注意)。 後は PhpStorm 側でこのパスを教えるなどすれば良い。