【超初心者向け】PHPをインストールする方法(Windows 7)


#はじめに
この記事ではタイトルの通り、Windows7においてPHPをインストールする方法を書いています。書くにあたって、初めての方にも伝わりやすいよう画像を多めにしました。

#ダウンロードと解凍

##ダウンロード

早速[PHP](https://secure.php.net/)をダウンロードしましょう。

リンク先のメインページから「Downloads」をクリックします。

![fig1.png](https://qiita-image-store.s3.amazonaws.com/0/239294/85930add-797e-d184-dc53-f0bd1c583e64.png)

次に、今回OSはWindowsなので「Windows downloads」をクリックします。

![fig2.png](https://qiita-image-store.s3.amazonaws.com/0/239294/a8c9aa17-1de2-124d-8138-7c6d2716fc4a.png)


なお、PHPのバージョンですが、個人でプログラミングをするつもりなので、今回は最新版を選択しました。チームで開発などをする際は揃えた方が良いと思います。

さて、「Windows downloads」をクリックするとこのような画像になり、ダウンロードするファイルを選択することになります。

![fig3.png](https://qiita-image-store.s3.amazonaws.com/0/239294/9a76e7a7-43cc-7886-60b1-59fa391ef9b7.png)

ここで1つのバージョンに対して4つの選択肢があります。オペレーションシステムが32または64bitのどちらか、そして、Thread SafeかNon Thread Safeかの2×2の4パターンです。

32or64bitの選択は他のものをダウンロードする際にもあったかと思いますが、Thread Safeかどうかは私には初見でした。

そこで少し脱線しますが、この意味を調べてみました。

##Thread Safeとは

結論を先に書いておくとThread Safeの選択は**使用するWebサーバがマルチスレッドに対応しているかどうか**に合わせて選択します。

Thread Safeはマルチスレッドに対応し、Non Thread Safeはマルチスレッドに非対応です。

私はWebサーバを用いる場合、マルチスレッドに対応していた方がよさそうだと考えたためThread Safeの方を選択しました。

しかし、この判断をするにはマルチスレッドの概要を知る必要があったので、こちらも調べてみました。

##マルチスレッドとは

マルチスレッドとは、処理において並行処理が発生するもののことです。

例えばサーバの場合マルチスレッドに対応していない場合、サーバにリクエストが複数同時に来た場合は、１つずつ対応することになります。それに対してマルチスレッドの場合は並行して処理することができます。

そのため、今回はThread Safeの方を選択しました。なお、32,64bitの調べかたは環境変数の節を参照してください。

##解凍

脱線してしまいましたが、4つのうちから1つ選択したら、圧縮ファイルをダウンロードし、解凍します。

解凍したら、そのファイルをCドライブ直下に移し、フォルダ名を例えば「php7.2.4」といった具合に変えておきます。


#「php.ini」ファイルの作成

今度は先程名前を変えたフォルダの中に「php.ini」ファイルを作成します。このファイルはPHPの設定ファイルで、簡単に説明するとPHPのプログラムを動かすための設定が書かれたものです。

ではどうするかというとフォルダ内にある、「php.ini-development」か「php.ini-production」をコピーし、その名前を「php.ini」に変更します。変更する際に拡張子に関する警告が出ますが、気にせず変更してしまってかまいません。

ちなみに調べてみると、「php.ini-developmetn」の方がエラーの際にメッセージを出力してくれるようなので、こちらを元に「php.ini」を作成するのが良いかもしれません。

#環境変数の設定

PHPを用いるにあたって、環境変数を設定しておくと便利です。

環境変数を設定するには「エクスプローラー」を起動し、「コンピューター」を右クリック→「プロパティ」をクリックします。

![fig5.png](https://qiita-image-store.s3.amazonaws.com/0/239294/c684d73e-8cdd-d1bd-ff4c-2b60cf0d42d9.png)

その後、「システムの詳細設定」をクリックします。なお、先程の32or64ビットはここで調べることができます。

![fig6.png](https://qiita-image-store.s3.amazonaws.com/0/239294/5e345fa0-9d6f-bd16-3d4d-4347ae5482cd.png)

そして、新たに出てきたウインドウの中の「環境変数」をクリックします。

![fig7.png](https://qiita-image-store.s3.amazonaws.com/0/239294/0f34f6ab-aefb-1eb5-9c85-d4b942d77c89.png)

そして環境変数を追加します。
ユーザーの環境変数の「path」をクリックし、青く網掛けの状態にし、「編集」をクリックします。

![fig8.png](https://qiita-image-store.s3.amazonaws.com/0/239294/269f230d-77ea-3e77-7084-3ab3409f53c9.png)

クリックしたら、変数値の最後の部分に「;C:\(自分の付けたフォルダ名)」とします。

この時の注意点は2つあります。
1つ目はセミコロンを忘れないことです。セミコロンは区切りを表していますので、これをつけないと他の環境変数の設定に影響が出てしまいます。

2つ目はファイルパスの指定です。今回の例だとCドライブ直下に保存しているので";C:\(自分のつけたファイル名)"とします。例えばphp_7.2.4という名前をつけた場合は";C:\php_7.2.4"とします。別の名前の場合はその名前を入力しますし、Cドライブ直下に保存せず、例えばCドライブ内の"programming"というフォルダに保存している場合は";C:\programming\php_7.2.4"といった具合です。

#コマンドプロンプトを用いて確認
最後にコマンドプロンプトを用いてPHPがインストールされているか確認します。

タスクバーの一番左のスタートボタンを押して、"プログラムとファイルの検索"で"cmd.exe"と検索し、クリックすると起動すると思います。

起動したら"php -v"と入力しエンターキーを押してみてください。以下の画像のようにPHPのバージョンが表示されれば成功です。

![fig9.png](https://qiita-image-store.s3.amazonaws.com/0/239294/dd9e87f4-a76f-15b3-da50-3060bad30038.png)

もし上手くいかない場合は環境変数を設定するところで、ユーザー環境変数ではなく、"システム環境変数"の"Path"を先程の説明と同じ要領で書き換えてみてください。

#おわりに
初心者向けに画像を多めにPHPをインストールする方法を紹介しました。一人でも多くのこれからプログラミングを始めてみたいという方の助けになれば幸いです。


#参考文献
この記事を書くにあたって以下のサイトを参考にしました。大変勉強になりました。誠にありがとうございました。

###インストール全般

[WindowsにPHPをインストールする](https://sekaiokaeru.com/tips/php-for-windows)

[PHP7.1をWindowsにインストールする手順](https://weblabo.oscasierra.net/php-71-windows-install/)

###ThreadSafe関連

[PHP のNon Thread Safe とThread Safe の違い](http://gete.blog.shinobi.jp/Entry/41/)

[Apache とPHP のバージョンについて(2014年3月31日)](http://gete.blog.shinobi.jp/Entry/97/)

[スレッドセーフ](http://wa3.i-3-i.info/word12456.html)

[マルチスレッド](http://wa3.i-3-i.info/word12455.html)

[マルチスレッドサーバーの概要](https://docs.oracle.com/cd/E19455-01/806-2726/rpcpguide-74636/index.html)

###php.ini関連

[php.iniファイルの作成](https://www.phpbook.jp/tutorial/install/index5.html)

[php.ini-development と php.ini-production の違い。](http://blog.pdns.jp/php-ini-development-%E3%81%A8-php-ini-production-%E3%81%AE%E9%81%95%E3%81%84%E3%80%82/)

[php.ini](http://wa3.i-3-i.info/word13611.html)