PHPの導入

 

PHPの導入(AN HTTPD編)

 

PHPの入手

 

PHP公式サイトダウンロードページからPHPのWindows版を入手する

 Windows Binaries

  ・PHP 5.2.1 zip package [9,545Kb] - 08 Feb 2007

     2007年04月07日現在の最新

手動インストール

 

ダウンロードしたzipファイルを適当なフォルダ(実行用)に解凍する

 空白を含むパス(例:C:¥program files¥php)にすることは避ける

 

 ※注 バージョン5からはiniファイルやモジュールをコピーしなくなる

php.iniの修正

 

インストール時のフォルダー配下

 php.ini-recommendedをcopyしてphp.ini とする

   ※セキュリティー向上のためdistよりrecommendedの方を使用する

 

php.iniをメモ帳などで編集する

 編集前 nnn ; cgi.force_redirect = 1
 編集後 nnn cgi.force_redirect = 0 <= コメントを外し、「0」にする

 

 編集前 nnn ; extension = php_mysql.dll
 編集後 nnn extension = php_mysql.dll <= コメントを外す

 

 編集前 nnn extension_dir = ”./”
 編集後 nnn extension_dir = ”php_mysql.dllがあるディレクトリー”

 

省略値を必ず使用する

 magic_quotes_gpc = Off

   ※入力データをバックスラッシュでエスケープさせない

       必要な都度”%5C”を使用して付加する

日本語利用の為の設定

 

「UTF-8」を利用する前提で下記の設定を記述する

 (1)マルチバイト処理を行う際に利用する「php_mbstring.dll」を有効にする

    ;extension=php_mbstring.dllの先頭のセミコロンを外す

 

 (2)mbstringに関する設定を変更 する

修正前

修正後

[mbstring]
; 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 = SJIS

; 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 = Off

; 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

; enable strict encoding detection.
;mbstring.strict_encoding = Off

[mbstring]
; 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 = UTF-8

; http input encoding.
mbstring.http_input = pass

; http output encoding. mb_output_handler must be
; registered as output buffer to function
mbstring.http_output = pass

; 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 = Off

; 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

; enable strict encoding detection.
mbstring.strict_encoding = Off

 

 @mbstring.language = Japanese

   セミコロンを外す

 

 Ambstring.internal_encoding = EUC-JP

   セミコロンを外す

   「UTF-8」を文字コードの基準としていく予定ですので「UTF-8」に変更する

   mbstring.internal_encoding = UTF-8

 

 Bmbstring.http_input = auto

   セミコロンを外す

   入力文字変換をする必要はないため「pass」に設定する

     「auto」となっている場合は「ASCII,JIS,UTF-8,EUC-JP,SJIS」の順に調べる

   mbstring.http_input = pass

 

 Cmbstring.http_output = SJIS

   セミコロンを外す

   出力する場合の文字コードも変換する必要はないため「pass」に設定する

     プログラム中で設定された文字コードのまま出力される

   mbstring.http_output = pass


 Dmbstring.encoding_translation = Off
   セミコロンを外す

 

 Embstring.detect_order = auto
   セミコロンを外す

 Fmbstring.substitute_character = none;

   セミコロンを外す


 Gmbstring.func_overload = 0

   セミコロンを外す
 

 Hmbstring.strict_encoding = Off
   セミコロンを外す

MySQL用にモジュールコピー

 

※注 バージョン5からはiniファイルやモジュールをコピーしなくなる

環境変数の設定 バージョン5からpathの設定のみ

 

PHPのフォルダにパスを通す

 「マイコンピュータ」を右クリックして「プロパティ」を選択する

 「詳細設定」タブの「環境変数」をクリックする

 「システム環境変数」の中の「Path」を選択して「編集」をクリックする

 「システム変数の編集」ダイアログで「変数名」が「Path」になっていることを確認する

 「変数値」に元々設定してあった値は消さないように注意して最後に「;?:PHP\php-5.1.1-Win32」を付け加える

 「OK」をクリックしシステムのプロパティを閉じる

 

Windowsの再起動が必要

AN HTTPDの修正

 

AN HTTPDの「オプション一般」の画面を開く

下の方にある「追加」を押し下図のように設定する(パス名は読み替えること)

 

CGI形式の場合

 「PATH_TRANSLATEDを使う」は必ずチエックする

 

動作確認の準備

 

メモ帳などでファイルを用意しtest.phpという名前でドキュメントルートに保存する

 <?php
    phpinfo();
 ?>

動作確認

 

ブラウザから「http://127.0.0.1/test.php」を開く

 

(見本)

 

PHPについて

 

2つのPHP

 

 

CGI版

 CGI版PHP(php.exe)はPerlのようにコマンドラインから実行が可能

   AN HTTPDとは独立したプロセスとして実行される

 AN HTTPDでPHPを利用するならCGI版の方が安定している

 

モジュール版

 SAPIモジュール版はコマンドラインからは使用できない

   AH HTTPDで使用するのはphp4isapi.dll

 PHPスクリプトの実行時にAN HTTPD以外のプロセスは実行されない

   見かけ上、PHPスクリプトをAN HTTPDが処理しているようにみえる

 処理速度が早い