3.PHPのインストール
今回は Windows 11 home に PHP 8.1.6 と composer をインストールします。
ちなみに開発環境を想定していますので、運用には向きません。
3-1.パッケージのダウンロード
公式ページから PHP のバイナリーをダウンロードします。
PHP For Windows: Binaries and sources Releases → https://windows.php.net/download
4 種類ありますが、基本的には Thread Safe のものでいいので、あとは Windows が 32 bit なら “VC14 x86 Thread Safe”, 64 bit なら “VC14 x64 Thread Safe” の zip ファイルをダウンロードします。
ちなみにタイトルに VC14 とあるように Visual C++ のパッケージが入っていないと動きませんので、 Visual Studio がインストールされていない場合は再頒布可能パッケージを入れてください。
3-2.解凍と配置
ダウンロードしたら解凍して C ドライブ直下に配置します。別に他の場所でもいいのですが、一番わかりやすくてメンテしやすいので C:\php
がおすすめです。
3-2.PATH の追加
①スタートボタンからシステムの詳細設定を検索しクリック
②環境変数をクリック
③ユーザー環境変数のところの PATH をダブルクリック
④新規ボタンをクリック → C:¥php (PHP を配置したパス) を入力
後は、全てOKで完了です。
⑤スタートボタンからコマンドプロンプトを検索しクリック
この状態で、どこのフォルダーからでも php -v
と入力すれば、バージョンが表示されます。
3-3.php.ini の設定
デフォルトでは php.ini がなく、おそらくいろんなものが動作しないため、 php.ini を配置します。
PHP をインストールしたフォルダーに php.ini-development があるはずなのでこれを php.ini に名前変更します。
テキストエディターでこの php.ini を開き、何行か編集します。
①拡張機能 (Extensions) の設定
extension= で検索すると拡張機能の設定周辺に飛ぶはずなので、
;extension=mbstring
;extension=openssl
コメントアウトを外します。 (行頭のセミコロンを消す)
mbstring と openssl は composer でも必要なので、この時点で外しておきます。あとは必要に応じてコメントアウトを外してください。
②タイムゾーン
任意ですが、タイムゾーンも併せて設定しておきます。
これで PHP のインストールは完了です。
3-4.Composer のインストール
コマンドプロンプトを開き、 C:\php に移動します。
公式ページにある Command-line installation の 4 行をコピペで実行します。
・Composer → https://getcomposer.org/download/
ちなみに 1 行目で composer-setup.php ファイルがダウンロードされます。
2 行目はこのファイルが正しいものかどうかを判断しているだけですが、バージョンアップなどでファイルのハッシュが変わっていると通らないので、公式ページの記述を利用するようにしてください。
どう見ても正常にダウンロードできているのに 2 行目が “Installer corrupt” でファイルが消えてしまうときは、1 行目を再度実行したあと、飛ばして 3 行目を実行しても問題ありません。
①インストールの確認
正常に完了すると composer.phar ファイルができているはずです。
この状態で php composer.phar -V とすると Composer のバージョン情報が表示されます。
②ショートカット (bat ファイル) の作成
このままだと composer を実行するのにいちいち C:\php にこないといけないので、バッチファイルを作成して、 composer だけで呼び出せるようにします。
c:\php> echo @php "%~dp0composer.phar" %*>composer.bat
これで C:\php に composer.bat が生成されていれば OK です。
③再起動して完了
コマンドプロンプトは立ち上げ直すとパスが通りますが、なぜか Git bash や ConEmu は読み込んでくれないので、再起動するのが無難です。
再起動したら、好きなフォルダーで composer を実行してさきほどと同じバージョン情報が表示されれば完了です。