XAMPP for Windows 1.7.3 の初期設定 PHP
XAMPPをインストールしただけでは日本語をうまく扱えないので、設定ファイルを変更しなければなりません。日本語対応の他にエラー表示等の設定についても変更していきます。
変更する設定ファイル
「php.ini」という設定ファイルを編集します。XAMPPを「C:¥」にインストールした場合は「C:¥xampp¥php」フォルダ内にあります。
設定ファイルのバックアップ
設定ファイルを編集するときは、設定ファイルのバックアップを必ずとってから行いましょう。設定ファイルが壊れるとXAMPPを起動することができなくなってしまいます。
「php.ini」をコピーしてファイル名の後に日付をいれておき(例:「php_20110507.ini」)、不具合が起きたらこのファイルを「php.ini」の名前に戻しましょう。
設定ファイルの編集
開始タグの短縮形に関する設定変更
開始タグの短縮形が使えるように226行目を「short_open_tag = On」に変更します。
short_open_tag = Off
short_open_tag = On
開始タグの短縮形
「short_open_tag = On」にすることで下記の開始タグ短縮形を使用できます。よって、以下の記述は全て同じ結果になります。
<?php echo 'Hello World !!';?>
<? echo 'Hello World !!';?>
<?='Hello World !!';?>
エラー表示に関する設定変更
開発時は詳細なエラーを表示させてデバッグの手がかりにします。514行目の「error_reporting = E_ALL」に変更します。
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
error_reporting = E_ALL
公開時のエラー表示について
公開時にエラー内容が表示されると内部のパス情報等が第三者にわかってしまいます。これはセキュリティ上好ましくないので、開発時は531行目を「display_errors = On」に、公開時にはエラーが表示されないよう「display_errors = Off」に変更しましょう。
display_errors = On
display_errors = Off
HTTPヘッダに出力するデフォルト文字コードに関する設定変更
先頭の「;(セミコロン)」を削除して設定を有効にし使用する文字コードを指定します。「UTF-8」で開発する場合は777行目を「default_charset = "UTF-8"」に変更します。
;default_charset = "iso-8859-1"
default_charset = "UTF-8"
マルチバイト文字に関する設定変更
マルチバイト文字で使用する言語を指定します。1774行目の先頭にある「;(セミコロン)」を削除して設定を有効にし「mbstring.language = Japanese」に変更します。
;mbstring.language = Japanese
mbstring.language = Japanese
mbstring関数のデフォルト文字エンコードに関する設定変更
マルチバイト文字を扱うmbstring関数のデフォルト文字エンコードを指定します。1780行目の先頭にある「;(セミコロン)」を削除して設定を有効にし文字コードを指定します。「UTF-8」で開発する場合は「mbstring.internal_encoding = UTF-8」に変更します。
;mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8
HTTP入力用文字エンコード検出に関する設定変更
HTTP入力用文字エンコードを自動検出させるか指定します。1784行目の先頭にある「;(セミコロン)」を削除して設定を有効にし「mbstring.http_input = auto」に変更します。
;mbstring.http_input = auto
mbstring.http_input = auto
自動文字エンコードの検出に関する設定変更
PHP内で使用される文字列の文字エンコードの検出順を指定します。1802行目の先頭にある「;(セミコロン)」を削除して設定を有効にし文字コードを指定します。代表的な文字コードである「SJIS」、「EUC-JP」、「JIS」、「UTF-8」、「ASCII」等を指定しておくといいでしょう。
;mbstring.detect_order = auto
mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII
php.ini 保存時の注意
php.iniを保存する際、Unicode認識用のBOM(Byte Order Mark)が自動的についてしまい正常に動作しなくなることがよくあります。下記の点に注意して保存しましょう。
- メモ帳で編集する時は日本語を使用しない
- TeraPadで編集する時は文字コードを「UTF-8N」で保存する
TeraPadでBOMなし保存する方法について
メニューバーの[ファイル]→[文字/改行コード指定保存]をクリックします。
文字コードを[UTF-8N]に変更して保存します。
BOMを確認してみる
BOMはバイナリエディタで開くと確認することができます。先頭に追加されている「EF BB BF」がBOMであり、これが付加されることでPHPが正常に動かなくなることがあります。
UTF-8Nで保存した場合(BOMなし)
UTF-8で保存した場合(BOMあり)