1. PHPのインストール
PHPのサイトよりPHP 5.4 (5.4.31)のVC9 x86 Thread Safe (2014-Jul-24 01:06:39)からzipファイルをダウンロードします。
PHP5.5系はapache2.4以上が必要らしく、apache2.2をインストールしている私の環境では動きませんでした。
- ダウンロードしたzipファイルを解凍
- 解凍されたフォルダのフォルダ名をphpに変更
- phpフォルダをCドライブの直下に移動(C:\php)。
- phpフォルダ内にある「php.ini-development」をC:\Windowsへコピー。
- コピーしたphp.ini-developmentをphp.iniにファイル名を変更
2. php.iniファイルの編集
1の最後に設定したphp.iniを開いて以下の該当箇所を編集します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
;;;;;;;;;;;;;;;;;;;; ; Language Options ; ;;;;;;;;;;;;;;;;;;;; 【変更前】 ;output_handler = 【変更後】 output_handler = mb_output_handler ;;;;;;;;;;;;;;;;; ; Data Handling ; ;;;;;;;;;;;;;;;;; 【変更前】 ;default_charset = "UTF-8" 【変更後(コメントを外す)】 default_charset = "UTF-8" ;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; 【変更前】 ;include_path = ".;c:\php\includes" 【変更後(コメントを外す)】 include_path = ".;c:\php\includes" 【ドキュメントルートを設定(apacheインストール時に設定したパス)】 doc_root = "C:\www" 【変更前】 ; extension_dir = "ext" 【変更後(拡張モジュールのディレクトリを設定)】 extension_dir = "c:\php\ext" ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; 【変更前】 ;extension=php_mbstring.dll 【変更後(コメントを外す)】 extension=php_mbstring.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;; [Date] 【変更前】 ;date.timezone = 【変更後(タイムゾーンを東京に設定)】 date.timezone = "Asia/Tokyo" [mail function] 【変更前】 ;sendmail_from = me@example.com 【変更後(phpから送られてくるメールアドレスの設定)】 sendmail_from = test@hoge.com [mbstring] 【変更前】 ;mbstring.language = Japanese 【変更後(コメントを外す)】 mbstring.language = Japanese 【変更前】 ;mbstring.internal_encoding = UTF-8 【変更後(コメントを外す)】 mbstring.internal_encoding = UTF-8 【変更前】 ;mbstring.http_input = UTF-8 【変更後(passに設定)】 mbstring.http_input = pass 【変更前】 ;mbstring.http_output = pass 【変更後(コメントを外す)】 mbstring.http_output = pass 【変更前】 ;mbstring.encoding_translation = Off 【変更後(コメントを外す)】 mbstring.encoding_translation = Off 【変更前】 ;mbstring.detect_order = auto 【変更後(コメントを外す)】 mbstring.detect_order = auto 【変更前】 ;mbstring.substitute_character = none 【変更後(コメントを外す)】 mbstring.substitute_character = none 【変更前】 ;mbstring.func_overload = 0 【変更後(コメントを外す)】 mbstring.func_overload = 0 |
output_handler
phpファイルのエンコードと出力するHTMLのコードが違う場合に機能します。ブラウザで表示した場合に文字化けする場合はコメントアウトします。
また、php.iniで設定しなくてもphpファイルの方で対応できるので、そちらで制御したほうが汎用的です。
default_charset = “UTF-8”
HTTPヘッダのContent-Type: text/html; charset=*****の*****に反映されます。
mbstring.internal_encoding = UTF-8
日本語等のマルチバイト文字を扱う関数でのデフォルトエンコードになります。関数を使用する場合にエンコードの指定がなかった場合、この指定が有効になります。
mbstring.http_input、mbstring.http_output、mbstring.encoding_translation
HTTP通信の際の文字コードを変換する場合に指定します。ここではpassとOff(無変換)にしていますが、変換が必要な場合は文字コード、Onを記載します。
mbstring.detect_order
文字コードの自動判別の際に確認するエンコードを順番に記載します。ここではautoとしていますが、詳細に指定したい場合は優先順位の高い順にカンマ区切り(例:UTF-8,SJIS,EUC-JP)で記載します。
mbstring.substitute_character
文字変換に失敗した時に表示する文字です。ここでは表示しないのでnoneを指定しています。
mbstring.func_overload
シングルバイト向けの関数をマルチバイト向けの関数に変換する際の設定らしいのですが…、詳しくはわかりませんでした。基本は0にするようです。
3. httpd.confファイルの編集
1 2 3 4 5 6 7 8 9 10 |
# モジュールの追加 LoadModule php5_module "C:¥php¥php5apache2_2.dll" LoadModule php5_module "C:¥php¥php5ts.dll" <IfModule mime_module> ~ # ApacheでPHPが使えるように下記2行を追加 AddHandler application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule> |
モジュールの追加はphpをインストールしたパスを指定します(今回はCドライブ直下)。モジュールが記載されているブロックの最後に追加します。
拡張子phpとphpsが利用できるように<IfModule mime_module>の中に追記する。
4. PHPの動作確認
info.php(ファイル名はなんでもいい)を作り以下のコードを記載します。
1 |
<?php phpinfo(); ?> |
apacheのドキュメントルート直下にinfo.phpを置きブラウザでhttp://127.0.0.1/info.phpを開き、以下の様なPHPの情報が表示されれば無事成功となります。
[tmkm-amazon asin=’4899772149′][/tmkm-amazon]