トップ  »  コンピュータガイド  »  開発言語・スクリプト  »  PHP  »  "PHP4.4.2"のWindowsへのインストール

"PHP4.4.2"のWindowsへのインストール

PHP4をWindowsにインストールする方法にインストーラを使う方法もありますが、PHP拡張モジュールは手動で組み込まなくてはならなかったり、Apache等の自動設定には対応していなかったりして結局マニュアルインストールするのと変わらなかったりします。
また、PHPの公式マニュアルでもマニュアル(手動)インストールを薦めていますし、実はマニュアルインストールも大して難しいものではありません。
という事で、マニュアルインストールする方法を解説します。
尚、PHP4.3.0以降"Windows95"はサポートされなくなりました。
どうしてもWindows95で使いたいという場合にはこれ以前のバージョンが必要です。

PHP4.4.2WindowsバイナリのZIPパッケージを入手する

PHP4.4.2WindowsバイナリのZIPパッケージは「http://www.php.net/downloads.php」からダウンロード可能です。
"php-4.4.2-Win32.zip"をダウンロードして、任意のフォルダ(ディレクトリ)に保存してください。

PHP4.4.2WindowsバイナリのZIPパッケージを展開する

WinZIPその他のZIP形式に対応した解凍(展開)ソフトを使って保存したファイルを展開します。
WindowsXPの場合は標準でZIP形式の圧縮・解凍(展開)に対応していますので、特別なソフトが無くても解凍(展開)出来ると思います。

「php-4.4.2-Win32」というフォルダ(ディレクトリ)に解凍(展開)されるはずですので、これを「php」にリネームしてCドライブの直下(C:\)に移動します。

"C:\Program Files"等のパスの中に空白文字(スペース)を含むフォルダ(ディレクトリ)に配置する事は推奨されません。

設定ファイルとDLLのコピー

上記の手順で展開した"c:\php"フォルダ(ディレクトリ)の直下に"php.ini-dist"と"php4ts.dll"があるはずです。
"php.ini-dist"がPHPの動作をコントロールする設定ファイルです。
こちらはWindowsディレクトリにコピーして"php.ini"にリネームします。

Windows 98/me/XPの場合
C:\Windows\php.ini
Windows NT/2000の場合
C:\Winnt\php.ini

"php4ts.dll"はPHPのコアDLLです。
こちらはWindowsのシステムフォルダ(ディレクトリ)にコピーします。

Windows 98/meの場合
C:\Windows\system\php4ts.dll
Windows NT/2000の場合
C:\Winnt\system32\php4ts.dll
Windows XPの場合
C:\Windows\system32\php4ts.dll

php.iniの設定

上記の手順でWindowsディレクトリにコピーした"php.ini"を"メモ帳"などのテキストエディタを使って編集・保存します。

                   :
output_handler = mb_output_handler  (アンコメントして追記)
                   :
display_errors = On  ("On"を確認、なってなければ変更)
                   :
                   :
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"  
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
include_path = ".;c:\php\includes"  (アンコメント)
                   :
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/php/extensions/"  (変更)
                   :
;Windows Extensions
;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
;
extension=php_mbstring.dll  (アンコメント)
;extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_crack.dll
                   :
                   :
[mbstring]
output_handler = mb_output_handler  (アンコメント)

; language for internal character representation.
mbstring.language = Japanese  (アンコメント)

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = EUC-JP  (アンコメント)

; http input encoding.
mbstring.http_input = auto  (アンコメント)

; http output encoding. mb_output_handler must be
; registered as output buffer to function
mbstring.http_output = EUC-JP  (アンコメントして必要に応じて変更)

; enable automatic encoding translation according to 
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
;       portable libs/applications.
mbstring.encoding_translation = On  (アンコメントして変更)

; automatic encoding detection order.
; auto means 
mbstring.detect_order = auto  (アンコメント)

; substitute_character used when character cannot be converted
; one from another
mbstring.substitute_character = none;  (アンコメント)

; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
mbstring.func_overload = 0  (アンコメント)
                   :
                   :
output_handler = mb_output_handler
"mb_output_handler"を指定する事によって、出力バッファの文字を内部文字エンコーディングからHTTP出力文字エンコーディングに変換可能となります。
display_errors = On
"On"を指定する事によって、PHP実行時にエラーがあった場合にHTMLの一部として画面に出力されるようになります。
開発時には必要ですが、開発したスクリプトに問題があった場合にその内容を晒す事になる等のセキュリティ上の観点から、公開する場合には"Off"に設定した方が良いでしょう。
あくまで開発者向けの機能であるという事です。
include_path = ".;c:\php\includes"
require()関数やinclude()関数などがファイルを探すディレクトリの規定値を定義します。
";"(セミコロン)で区切って複数指定が出来ます。
extension_dir = "C:/php/extensions/"
PHPが動的に読み込む拡張モジュールの位置(ディレクトリ)をフルパスで指定します。
extension=*****.dll
アンコメントする事によってそのモジュールが有効になります。
例えば、PostgreSQLを利用する(PostgreSQL関数を有効にする)場合には";extension=php_pgsql.dll"の行をアンコメントします。

php.iniファイルのコメントにも書かれている通り、MySQLとODBCのサポートはデフォルトで組み込まれていますので、モジュールの指定はしなくても利用可能です。

extension=php_mbstring.dll
日本語などのマルチバイト文字に対応させる為の"mbstring"を有効にします。
mbstring.language = Japanese
mbstringで使用される言語設定(NLS)のデフォルト値を定義します。
mbstring.internal_encoding = EUC-JP
内部文字エンコーディングのデフォルト値を定義します。
PHPは公式には以下のエンコーディングは動作しないとしています。
特別な事情でもない限り、内部エンコーディングには指定しない方が得策です。
  • JIS
  • SJIS
  • ISO-2022-JP
  • BIG-5
mbstring.http_input = auto
HTTP入力文字エンコーディングのデフォルト値を定義します。
mbstring.http_output = EUC-JP
HTTP出力文字エンコーディングのデフォルト値を定義します。
mbstring.encoding_translation = On
HTTP入力文字エンコーディング検出と内部エンコーディングへの変換を定義します。
"On"を指定すると、HTTP入力文字は"mbstring.internal_encoding"で指定された内部エンコーディングへ変換される様になります。
mbstring.detect_order = auto
文字コード検出のデフォルト値を定義します。
"auto"を指定すると、値は"ASCII, JIS, UTF-8, EUC-JP, SJIS"として展開されこの順に自動文字エンコーディングの検出がされる事になります。
mbstring.substitute_character = none;
無効な文字を代替する文字を定義します。
mbstring.func_overload = 0
シングルバイト対応の関数を対応するmbstring関数でオーバーロード(置換)するかを定義します。
php.iniファイルのコメントにも書かれている通り、"mail()"や"ereg()"等は"mb_send_mail()"や"mb_ereg()"に置き換えられる事になります。
有効な値は以下の4つとこれらビットマスクの組み合わせになります。
例えば、"7"を指定すると、"1 + 2 + 4"の組み合わせとしてメール関数、文字列関数、正規表現関数の全てがオーバーロードされるといった具合です。
  • 0 : オーバーロードしない(規定値)
  • 1 : メール関数をオーバーロード
  • 2 : 文字列関数をオーバーロード
  • 4 : 正規表現関数をオーバーロード

Apache(httpd.conf)の設定

Apacheの設定は「"Apache2.0.59"のWindowsでの設定」ページの「PHP4を使う為の設定」を参照してください。
全ての設定が終ったら、設定を反映させる為にApacheを再起動してください。

動作確認

適当なPHPのスクリプトを書いて実行してみれば動く動かないは確認できますが、"phpinfo()"関数を使えばどのように組み込まれているかの確認も出来ますのでこれを使って確認します。

記述する内容はとても簡単で、"phpinfo()"関数を呼び出す記述をするだけです。
以下のように"phpinfo()"関数呼び出しの一文を記述したファイルをApacheのドキュメントルート配下に置いて、ウェブブラウザで参照してみます。
ファイル名は「phpinfo.php」でも「test.php」でも構いませんが、拡張子「.php」はApacheの設定でPHPスクリプトとして認識するように設定したものでなくてはいけません。

<?php    phpinfo();    ?>

PHPのバージョンを始め、組み込まれたモジュールの詳細やApacheの環境情報などがズラズラっと表示されれば問題なくPHPが組み込まれたといって良いでしょう。

トラックバック(0)

トラックバックURL: http://www.ezms.net/mt/mt-tb.cgi/28