この節では、Microsoft Windows 環境に PHP を手動でインストールして設定する方法を説明します。 PHP インストーラを使って PHP や Windows 用ウェブサーバーの設定をしたい場合は Windows インストーラ (PHP 5.2 以降) を参照ください。
PHP バイナリの zip 版を » PHP for Windows: Binaries and Sources からダウンロードします。zip パッケージにはいくつかのバージョンがあります。 使うウェブサーバーにあわせたバージョンを選びましょう。
PHP を IIS で使う場合は、PHP 5.3 VC9 Non Thread Safe あるいは PHP 5.2 VC6 Non Thread Safe を選びます。
PHP 5.3 以降を IIS7 以降で使う場合は、VC9 版のバイナリを使わなければなりません。
PHP を Apache 1 あるいは Apache 2 で使う場合は、PHP 5.3 VC6 あるいは PHP 5.2 VC6 を選びます。
注意:
VC9 版は Visual Studio 2008 でコンパイルしており、パフォーマンスや安定性が優れています。 VC9 版を使うには、 » Microsoft 2008 C++ Runtime (x86) あるいは » Microsoft 2008 C++ Runtime (x64) をインストールしなければなりません。
zip パッケージを、たとえば C:\PHP\ などのお好みの場所に展開しましょう。 zip を展開した中身は、次のようになります。
例1 PHP 5 パッケージ構造
c:\php | +--dev | | | |-php5ts.lib -- 非スレッドセーフバージョンの場合は php5.lib | +--ext -- PHP 拡張モジュールの DLL | | | |-php_bz2.dll | | | |-php_cpdf.dll | | | |-... | +--extras -- 空 | +--pear -- PEAR の初期コピー | | |-go-pear.bat -- PEAR セットアップ用スクリプト | |-... | |-php-cgi.exe -- CGI 実行ファイル | |-php-win.exe -- コマンドプロンプトを開かずにスクリプトを実行する | |-php.exe -- コマンドラインの PHP 実行ファイル (CLI) | |-... | |-php.ini-development -- デフォルトの php.ini 設定 | |-php.ini-production -- 推奨される php.ini 設定 | |-php5apache2_2.dll -- 非スレッドセーフバージョンには存在しません | |-php5apache2_2_filter.dll -- 非スレッドセーフバージョンには存在しません | |-... | |-php5ts.dll -- コア PHP DLL ( 非スレッドセーフバージョンの場合は php5.dll ) | |-...
PHP の zip 版に含まれているモジュールや実行ファイルの一覧をまとめました。
go-pear.bat - PEAR セットアップスクリプト。詳細は » Installation (PEAR) を参照ください。
php-cgi.exe - CGI 実行ファイル。PHP を IIS 上で CGI あるいは FastCGI として実行するときに使います。
php-win.exe - PHP 実行ファイル。コマンドプロンプトを開かずに PHP スクリプトを実行します (Windows GUI を使う PHP アプリケーションなどに使います)。
php.exe - PHP 実行ファイル。PHP スクリプトをコマンドラインインターフェイス (CLI) で実行します。
php5apache2_2.dll - Apache 2.2.X モジュール。
php5apache2_2_filter.dll - Apache 2.2.X フィルタ。
php パッケージを展開したら、php.ini-production を php.ini という名前で同じフォルダにコピーします。 必要に応じて php.ini を別の場所に置くこともできますが、 その場合は PHP 設定ファイル にあるような設定が別途必要となります。
php.ini ファイルには、PHP の設定や動作環境についての情報を記述します。 php.ini ファイルには PHP を Windows 上で動かすための設定項目が数多く用意されています。 その中には必須でないものもあります。 また、環境に合わせて指定するディレクティブも数多くあります。詳細は php.ini ディレクティブのリスト を参照ください。
必須項目
extension_dir = <拡張モジュールのディレクトリへのパス> - extension_dir には、 PHP の拡張モジュールがあるディレクトリを指定しなければなりません。 絶対パス ("C:\PHP\ext") あるいは相対パス (i.e. ".\ext") のどちらでもかまいません。php.ini ファイルに書かれている拡張モジュールは、 extension_dir に置かなければなりません。
extension = xxxxx.dll - 使いたい拡張モジュールがある場合は、それに対応する "extension=" を書かなければなりません。extension_dir にある拡張モジュールのうち、ここで指定したものが起動時に読み込まれます。
log_errors = On - PHP のログ出力機能を使うと、エラーをファイルに記録したり (syslog などの) サービスに渡したりすることができます。これは 次の error_log ディレクティブと組み合わせて使います。 IIS で実行している場合は、log_errors を有効にして error_log を正しく設定しておく必要があります。
error_log = <エラーログファイルへのパス> - error_log には、PHP のエラーを記録するファイルを絶対パスあるいは相対パスで指定しなければなりません。 このファイルは、ウェブサーバーから書き込み可能でなければなりません。 このファイルを置く場所として一般的なのは、たとえば "C:\inetpub\temp\php-errors.log" のような TEMP ディレクトリです。
cgi.force_redirect = 0 - このディレクティブは、IIS で動かす際に必須となります。 他の多くのウェブサーバーではディレクトリセキュリティ機能を必要としますが、 これを IIS で有効にすると、Windows 上での PHP エンジンの実行に失敗します。
cgi.fix_pathinfo = 1 - これは、CGI 仕様に従った path info に PHP からアクセスできるようにします。 IIS の FastCGI 実装では、これを設定しておく必要があります。
fastcgi.impersonate = 1 - IIS での FastCGI には、呼び出し元のクライアントのセキュリティトークンをまねる機能があります。 これを指定すると、IIS にリクエストのセキュリティコンテキストを定義します。
fastcgi.logging = 0 - FastCGI のログ機能は、IIS では無効にしておかねばなりません。 有効にしたままだと、すべてのクラスから発せられるあらゆるメッセージが FastCGI のエラーとみなされ、IIS が HTTP 500 を返すようになってしまいます。
オプションの項目
max_execution_time = ## - このディレクティブでは、スクリプトの実行に費やすことのできる最大時間を PHP に伝えます。デフォルトは 30 秒です。 もし PHP アプリケーションの実行時間が長くなるのなら、このディレクティブの値を増やします。
memory_limit = ###M - PHP プロセスが使えるメモリの量をメガバイト単位で指定します。 デフォルトは 128 で、たいていの PHP アプリケーションではこれで十分です。 複雑なアプリケーションではもう少し必要となるかもしれません。
display_errors = Off - このディレクティブは、ウェブサーバーに返すストリームに エラーメッセージを含めるかどうかを指定します。 これを "On" にすると、error_reporting で設定したすべてのレベルのエラーを エラーストリームの一部としてウェブサーバーに返します。 セキュリティ上の理由で、実運用環境ではこれを "Off" にしておくことを推奨します。 エラーメッセージにはセキュリティ的に問題となる情報が含まれていることが多く、 それが外部に漏れることを防げます。
open_basedir = <ディレクトリへのパス、セミコロン区切り>、 たとえば openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp" - このディレクティブは、PHP からのファイルシステムの操作を許可するディレクトリのパスを指定します。 指定したパス以外でのファイル操作はすべてエラーとなります。 このディレクティブは、共用ホスティング環境に PHP を導入するときに特に有用です。 ウェブサイトのルートディレクトリ以外のファイルを操作させないようにすることができます。
upload_max_filesize = ###M および post_max_size = ###M - ファイルのアップロードおよび POST するデータの最大サイズを指定します。 PHP のアプリケーションで写真や動画などの大きなファイルをアップロードさせたい場合は、 これらの値を増やさなければなりません。
以上で、Windows への PHP のインストールが完了しました。ついで、 使用する WEB サーバー にあわせて、PHP を利用可能とするための設定を行います。 目次から使用する WEB サーバーを選択し、該当するセクションを参照してください。
PHP をウェブサーバー経由で実行するだけでなく、 .BAT スクリプトなどでコマンドラインから実行することもできます。 詳細は Microsoft Windows コマンドラインでの PHP を参照ください。