PHPを学習する上で、XAMPP環境でPHPを実行したことはあるが設定や環境については詳しくない、という方もいらっしゃるのではないでしょうか。
PHPを学習した次のステップとして、PHPの環境設定方法を少しご紹介します。
php.ini とは
php.iniとは、サーバー上でPHPが起動する時に読み込まれるPHPの設定ファイルです。このファイルに書かれている内容を元にして、PHPの基本動作が設定されます。
テキスト形式のファイルとなっているため、テキストエディタで開き、中の記述を変更することでPHPの設定を変えることが出来ます。
WindowsのXAMPPでは、下記の場所にphp.iniがあります。
XAMPPインストールフォルダ/php/php.ini
php.iniの記述ルール
【php.ini の一部抜粋】
; PHP’s default character set is set to empty. ・・・①
; http://php.net/default-charset
default_charset = “UTF-8″ ・・・②
①コメント
「;(セミコロン)」から始まる箇所はコメントになるため、設定情報としては読み込まれません。説明やメモを書くための領域です。PHPにおける「//」と同じものです。
②環境変数
「キー = 値」が1つの設定になります。キーが項目名、「=(半角イコール)」の右側にはその項目に対して設定したい値を書きます。
文字コードとタイムゾーンの設定
【文字コードを設定する】
default_charset = UTF-8
「defaut_charset」はPHPの文字コードを設定するためのものです。
日本語環境はマルチバイト文字(全角文字)を使うため、マルチバイト文字のための文字コード設定である「mbstring.internal_encoding」も合わせて同じ文字コードに設定しておいた方が文字化け対策になってよいでしょう。詳しくは後述します。
【タイムゾーンの設定】
date.timezone=Asia/Tokyo
「date.timezone」はタイムゾーンの設定になります。XAMPPを使ってPHPをインストールしたときなど、最新版のXAMPPだと日本語版のXAMPPではなくアメリカやドイツ版のXAMPPしか用意されてない場合があります。
PHPを練習する分には問題ないのですが、PHPのdate関数などで現在日時の取得をした際、アメリカやドイツの現在日時を取得してしまうので、この項目を日本のタイムゾーンに合わせるために「Asia/Tokyo」に変えましょう。
マルチバイト文字を扱う上で行っておくべき設定
他にも文字に関わるものとして設定しておいた方がよいのが「mbstring.~」系の項目です。
PHPの関数にはマルチバイト文字を処理する様々な関数があるのですが、その関数を適切に使えるようにする設定です。
まずは「mbstring拡張モジュール」という追加機能を有効にする設定をします。
もし以下の記述の先頭に「;」が入ってた場合は「;」を消して下さい。入っていない場合はそのままで大丈夫です。
【適切な状態】
extension=php_mbstring.dll
合わせて設定しておきたい項目と値リストです。この順番で並んでいるわけではないので、適宜探して下さい。
【マルチバイト文字にかかわる環境変数】
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = Off
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.detect_order = auto
php.iniを変更する際の注意点
php.iniの内容を書き変えたら必ずPHP、もしくはサーバーを再起動して下さい。
また、php.iniにはPHPの本体動作に関わる様々な設定が記述されていますので、設定を間違ったり誤って必要な記述を削除してしまうとPHPの不具合に繋がります。
慣れないうちは、必ずバックアップとしてphp.iniのファイルをコピーし、不具合があったらコピーを上書きして初期状態に戻せるようにしておきましょう。