PHPのインストール

Windows版のApacheでの利用を前提とします。

PHPの種類

PHPにはバージョンの違いの他、スレッドセーフかどうかなどによって、いくつかの種類があります。どれを選択するかはお使いのシステムによりますが、開発環境にインストールするならば本番環境と同じものとします。

CGI版とモジュール版

CGI版とモジュール版

PHPは、HTMLファイル内に記述するタイプのスクリプト言語です。通常のCGIとして使用できますが、PHPモジュールApacheサーバに組み込むことにより、 Perl/CGIと比較して処理速度の高速化、サーバ負荷の低減が可能です。

日本PHPユーザー会 (Japan PHP Users Group) - [ PHPについて ]

いずれの版で呼び出されているかは、phpinfo()で設定情報を出力し、Server APIの項目で確認できます。

  • 「CGI」から始まるならば、CGI版
  • 「Apache」から始まるならば、モジュール版

なお共用のレンタルサーバの多くでは「CGI版」が使用されています。

スレッドセーフ

Apache 2のようなマルチスレッドのサーバでモジュール版を利用するならば、スレッドセーフ版 (TS) を選択します。それ以外は非スレッドセーフ (NTS) で構いません。PHP をダウンロードするときの「スレッドセーフ」の意味は? - PHP: PHP を手に入れるには - Manual

バージョンによる違い

PHP 7.0

PHP 7.0は、2019/01/10にサポートが終了しています。PHP: Unsupported Branches

PHP 5.3

PHP 5.3は、2014/08/14にサポートが終了しています。PHP: Unsupported Branches

VC9かVC6、スレッドセーフか非スレッドセーフの組み合わせで4種類あります。このうちVCのバージョンは、対象とするサーバによって異なります。

  スレッドセーフ 非スレッドセーフ
VC9 x86 IIS IIS
VC6 x86 Apache Apache
PHP: 手動でのインストール - Manual

PHP 5.3より前

手動でインストールするならば[PHP x.x.x zip package]を、インストーラを利用したいならば[PHP x.x.x installer]をダウンロードします。

サポート期限

PHPの各バージョンは、それの最初のリリースから原則3年間サポートされます。

  • Active support … 最初の安定版のリリースから2年間。バグとセキュリティの修整
  • Security fixes only … Active support後の1年間。重大なセキュリティの修整

ダウンロード

インストーラを利用するのが簡単ですが、すべてのバージョンで用意されているわけではありません。そのような場合には手動で行います。

PHP For Windows: Binaries and sources Releases

過去のバージョンはwindows.php.net - /downloads/releases/archives/にあります。

インストール

ダウンロードしたファイルに応じて、

の2つの方法があります。

手動でのインストール

ダウンロードしたzipファイルを展開し、適当なディレクトリに配置します。そして、そこに含まれる

  • php.ini-development … 開発環境向け (既定ですべてのエラーを出力)
  • php.ini-production … 本番環境向け

のいずれかのファイルをコピーして、php.iniに名前を変更します。それからPHPとサーバとの関連付けを行います。また必要ならば、php.iniを編集してPHPの設定をします。

インストーラによるインストール

インストーラを利用する方法は簡単ですが、自動でされる設定は安全なものではありません。よってインターネット接続されたサーバでは、利用すべきではありません。

ダウンロードしたmsiファイルを実行し、ウィザードに従いインストールと設定を行います。


セットアップするサーバの選択

[Apache Configuration Directory]では、Apacheの設定ファイル (httpd.conf) があるディレクトリを指定します。

既定では%ProgramFiles%/Apache Software Foundation/Apache2.2/conf/にあります。


インストールする拡張モジュールの選択

拡張モジュールの追加/削除

インストール済みの拡張モジュールは、phpinfo()またはget_loaded_extensions()で確認できます。get_loaded_extensions()ではモジュール名が配列で返されるため、

print_r( get_loaded_extensions() );

とすると、

Array
(
    [0] => Core
    [1] => bcmath
    [2] => calendar
    ...
)

のようにインストール済みのモジュールを確認できます。PHP: get_loaded_extensions - Manual

また拡張モジュールの実体は、php.iniextension_dirディレクティブで指定されたディレクトリにあり、ファイル名が[php_***.dll]の形式のものがそれです。

手動でインストールした場合

インストーラでインストールした場合

コントロールパネルの[プログラムのアンインストールまたは変更]からインストール済みのPHPを選択し、[変更]をクリックします。

Setup Wizardが開くので[Change]を選択します。

以降はインストール時と同様に行い、追加または削除する拡張モジュールを選択します。

アップグレード

アップグレードする場合には、その手順よりも、バージョン間の差異に注意する必要があります。

PHP: 付録 - Manual

手動でインストールした場合

手動でのインストールと同じ手順で行います。

インストーラでインストールした場合

インストーラを使用してインストールした場合、そのまま上書きしてインストールできます。PHP: Windows インストーラ (PHP 5.2 以降) - Manual

トラブル対処法

PHPが期待通りに動作しない場合には、コマンドラインから

C:\php>php -v

のように実行すると、発生しているエラーを確認できます。

PHPのマニュアルから検索