PHPのインストールと設定

さっさどダウンロードしてぱっぱどインストールしてしまいすぺっさぁ。

まずはダウンロード

まず、Windows用のPHPを下記のサイトの「Downloads」のページからダウンロードします。

PHP(PHPの本家サイト)

「Downloads」に行くと「Windows Binaries」という個所があるので、そこの


PHP 4.*.* zip package(PHP4)」もしくは「PHP 5.*.* zip package(PHP5)」


というリンクをクリックして、色んな国旗が並んだページに飛び、その中からお好みの国旗の横にあるリンクをクリックします。すると、


php-4.*.*-win32.zip(PHP4)」もしくは「php-5.*.*-win32.zip(PHP5)」


というファイルのダウンロードのダイアログが現れるので、見付け易いようにデスクトップにダウンロードします。

更に、PHP5の場合は「Collection of PECL modules for PHP 5.*.*」なるものがありますが、これはPHP5用の拡張モジュールです(PHP4に標準で含まれていたものがPHP5になってPECLというものに分離されたらしい)。折角なのでついでにこれも同様にダウンロードします。

インストール!

デスクトップに、以下のようなzip形式のファイルがダウンロードされているので、ダブルクリックしてまず解凍します。

解凍ツールが無い場合は、Vector辺りで適当にダウンロードしてきて下さい。

ダウンロードしたファイル(ファイル名:「php-4.3.6-win32.zip」) もしくは ダウンロードしたファイル(ファイル名:「php-5.0.2-Win32.zip」) ついでに ダウンロードしたファイル(ファイル名:「pecl-5.0.2-Win32.zip」)

解凍すると、以下のように構成されたフォルダが開きます。


[ PHP4 の場合]


解凍して開いたフォルダのイメージ(PHP4の場合)


[ PHP5 の場合]


解凍して開いたフォルダのイメージ(PHP5の場合)


[ ついでにダウンロードしたPHP5用PECL ]


解凍して開いたフォルダのイメージ(PHP5の場合)

前回、Apacheの「httpd.conf」ファイルの設定で、以下の様に記述しました。


[ PHP4 の場合]

LoadModule php4_module C:/php/sapi/php4apache.dll

[ PHP5 の場合]

LoadModule php5_module C:/php/php5apache.dll

Apacheの起動時に、「C:\php\sapi\php4apache.dll(PHP4)」もしくは「C:\php\php5apache.dll(PHP5)」ファイルをロードするという設定です。共にApache1用モジュールです。

このように設定しちゃったので、その通りに設置しましょう。ダウンロードして解凍して開いたフォルダの中に「sapi」フォルダがあり、その中に「php4apache.dll」ファイルがある(PHP4の場合)ので、開いたフォルダ名を「php」に変更して「C:」ドライブの中に移動しちゃいます(無論、ドライブ名やフォルダ名は任意に変更出来ますが、その場合はちゃんと「httpd.conf」ファイルを修正します)。

その後の流れ(PHP4の場合)
  1. 「php」フォルダ内の「php4ts.dll」というファイルを、「Windows 9x/Me」なら「C:\windows\system」フォルダへ、「Windows NT/2000」なら「C:\winnt\system32」フォルダへ、「Windows XP」なら「C:\windows\system32」フォルダへコピーします。
  2. 「php」フォルダ内の「php.ini-recommended」というファイルを「php.ini」にリネームして、「Windows 9x/Me/XP」なら「C:\windows」フォルダへ、「Windows NT/2000」なら「C:\winnt」フォルダへコピーします。
  3. 「php」フォルダの中の「dlls」フォルダ内の全ての「*.dll」ファイルを、「Windows 9x/Me」なら「C:\windows\system」フォルダへ、「Windows NT/2000」なら「C:\winnt\system32」フォルダへ、「Windows XP」なら「C:\windows\system32」フォルダへコピーします。
その後の流れ(PHP5の場合)
  1. 「php」フォルダ内の「php5ts.dll」というファイルを、「Windows 9x/Me」なら「C:\windows\system」フォルダへ、「Windows NT/2000」なら「C:\winnt\system32」フォルダへ、「Windows XP」なら「C:\windows\system32」フォルダへコピーします。
  2. 「php」フォルダ内の「php.ini-recommended」というファイルを「php.ini」にリネームして、「Windows 9x/Me/XP」なら「C:\windows」フォルダへ、「Windows NT/2000」なら「C:\winnt」フォルダへコピーします。
  3. 「php」フォルダ内の(「php5*.dll」以外の)全ての「*.dll」ファイルを、「Windows 9x/Me」なら「C:\windows\system」フォルダへ、「Windows NT/2000」なら「C:\winnt\system32」フォルダへ、「Windows XP」なら「C:\windows\system32」フォルダへコピーします。
  4. 「php」フォルダの中の「ext」フォルダに、ダウンロードして解凍したPECLの「*.dll」ファイルを全部放り込みます。

以上で、PHPのインストールは完了です。

設定ファイル「php.ini

Apacheと同様、PHPにも設定ファイルがあります。先程「windows」フォルダにコピーした「php.ini」というファイルです。

ドキュメントルートの変更

doc_root ディレクティブ(436行目付近)
doc_root =

[COMMENT]
;doc_root =
doc_root = "C:\html\public_html"

上のような感じで、Apacheの設定ファイルで設定したのと同じ様にドキュメントルートを設定します。

PHPの設定ファイルでは、Apacheの設定ファイルとは違って、パスを指定する際に使用する、フォルダの区切り文字が「/(スラッシュ)」ではなく「\(円マーク)」である事に注意して下さい。

また、行の先頭に「;(セミコロン)」を置くと、その行はコメントアウトされ無視されます。「[ ](角括弧)」に囲まれたテキストも無視されます。

PHP拡張モジュールの位置の変更

PHPも、Apacheと同様に、幾つかのモジュールによって機能が構成(付加)されています。そのモジュールは、PHPをインストールした「php」フォルダの中の「extensions(PHP4の場合)」もしくは「ext(PHP5の場合)」に収められています。

extension_dir ディレクティブ(443行目付近)
extension_dir = "./"

[ PHP4 の場合]

;extension_dir = "./"
extension_dir = "C:\php\extensions\"

[ PHP5 の場合]

;extension_dir = "./"
extension_dir = "C:\php\ext\"

「extensions」の後には「\(円マーク)」を置く事に注意。

PHP拡張モジュールを有効にする

モジュールを有効にする事によって、PHPで使用できる関数が追加されます。

extension ディレクティブ(553行目付近)
;extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_crack.dll
    ……

    ……
extension=php_gd2.dll
    ……
extension=php_mbstring.dll
    ……


必要なモジュールの行の、先頭の「;(セミコロン)」を外して有効にします。今回は上記の2つのみ有効にしました。契約中のサーバに合せる(「<?php phpinfo(INFO_MODULES); ?>」と記述したファイルをサーバにアップしてロードされた拡張モジュールを確認)なり適宜有効にして下さい。

インクルードパスの設定

「PHPの基本」講座の「制御構造2」のページでもちょろっと解説しましたが、通常、HTML内に例えば「<img src="test.gif" alt="" />」と記述されてあれば、読み込まれる画像は「そのHTMLドキュメントと同じディレクトリ内のファイル」ですが、PHPにおいては、「include」、「require」、「include_once」、「require_once」の制御構造によってPHPファイルをインクルードする場合に限り、読み込まれるファイルは「include_path」に指定されたディレクトリ内のファイル」です(他にインクルードパスを使用する関数もあります)。

include_path ディレクティブ(429行目付近)
;include_path = ".;c:\php\includes"

include_path = ".;c:\php\pear;c:\php\cli\pear;c:\html\_incs_"

;(セミコロン)」で区切って複数指定できます。

今回指定したのは、「.」、「c:\php\pear」、「c:\php\cli\pear」、「c:\html\_incs_」の4つです。

左側に記述したもの程優先順位が高いので、左側から順にファイルを走査し、発見すればそこからファイルを読み込む事になります。

ちなみに、「.」は、「読み込み元と同じディレクトリ」という意味なので、例えばPHPスクリプト内に「include "test.inc";」と記述すれば、それを記述したファイルと同じディレクトリ内のファイルを探します。なければ次に指定したディレクトリ内を探していきます。

これを見れば判るように、ドキュメントルートである「C:\html\public_html」よりも上位のディレクトリからもファイルを読み込む事が出来ます。HTMLではあり得ない事で、これにより、ブラウザからは絶対にアクセスできない位置にファイルを置く事が出来るようになります。

各拡張モジュールの設定

各拡張モジュール用の設定を行います。ここでは、先程「extension=php_mbstring.dll」と有効にしたマルチバイト文字列関数モジュールの設定を行います。

以下、「mbstring(マルチバイト文字列)(「関数ミニリファレンス」の「はじめに」のページで解説)」用の設定。

mbstring.* ディレクティブ(1041行目付近)
;mbstring.language = Japanese
    ……
;mbstring.internal_encoding = EUC-JP
    ……
;mbstring.encoding_translation = Off

mbstring.language = Japanese
    ……
mbstring.internal_encoding = EUC-JP
    ……
mbstring.encoding_translation = Off
  • mbstring.language」は、「mbstring」で使用される言語のデフォルト値を指定します。
  • mbstring.internal_encoding」は、内部文字エンコーディング(PHPファイルの文字コードと一致させる)のデフォルト値を指定します。
  • mbstring.encoding_translation」は、HTTP入力の文字コードを内部文字エンコーディングに変更するか否かを指定します。

その他の設定

他にも色々設定する所がありますが、色々ありすぎてアレなんで、少しだけ羅列します。

error_reporting ディレクティブ(347行目付近)
[“通知”以外の全てのエラーを報告するという設定]
error_reporting = E_ALL & ~E_NOTICE

[“厳格チェック”も含めた全てのエラーを報告するという設定(PHP5)]
;error_reporting = E_ALL | E_STRICT
display_errors ディレクティブ(354行目付近)
[報告されたエラーを出力する]
display_errors = On
magic_quotes_gpc ディレクティブ(466行目付近)
[GET/POST/COOKIE に含まれる引用符を自動的にエスケープする]
magic_quotes_gpc = On

開発・テスト用サーバと契約中の実運用サーバの設定の相違によって問題が発生する可能性もあるので、「phpinfo()」関数で実運用サーバの設定をチェックして、それと同じ設定にしたり、またテスト用の設定を各自行いましょう。

以上で、PHPのインストールと設定の解説は終了です。次のページでは、「.htaccess」ファイルでの設定について解説します。

作成日:2004年06月02日 最終更新日:2004年11月19日
【通常モード で表示】