- Home ›
- PHP入門 ›
- PHPインストールと初期設定
php.iniファイルの作成と初期設定
PHP に関する設定を記述する php.ini ファイルはデフォルトでは作成されていません。用意されている雛形を使って新しく作成する必要があります。ここでは php.ini ファイルの作成方法、 php.ini ファイルに対して行っておく初期設定、および php.ini の設定内容を確認するための phpinfo 関数の使い方について解説します。
(2021 年 06 月 30 日公開 / 2022 年 10 月 08 日更新)
目次
php.iniファイルをひな形から作成する
php.ini
ファイルは最初から作成する必要はありません。用意されている雛形をコピーして作成し、後から必要な個所を変更して利用します。雛形となるファイルは PHP をインストールしたディレクトリに含まれている次の2つのファイルです。
php.ini-development
php.ini-production
php.ini-production
ファイルは実際の本番環境で使用する場合に適した雛形で、 php.ini-production
ファイルは開発環境で使用する場合に適した雛形となっています。
今回は php.ini-development
ファイルの方を使ってみます。最初から作り直したい時のために php.ini-development
ファイルはそのまま残しておき、コピーしたものを使用するようにして下さい。 php.ini-development
ファイルをコピーし、ファイル名を php.ini
に変更してください。
これで元となる php.ini
ファイルが作成できました。
作成した php.ini
ファイルはテキストファイルです。その為、既存のテキストエディタで開いたり編集したりすることができます。では実際にテキストエディタで開いて見ます。
それでは作成した php.ini
をベースとして必要な修正を加えていきます。
phpinfo関数による設定内容の確認
PHP の phpinfo
関数は PHP の設定内容を出力する関数です。 php.ini
ファイルに変更を加えたあとで phpinfo
関数によって出力された値を確認すれば、変更した内容がきちんと反映されているのかどうかを確認することができます。
それでは phpinfo
関数を含む簡単な PHP スクリプトを記述したファイルを作成します。テキストエディタを開き下記の内容を記述して下さい。
<?php phpinfo(); ?>
作成したファイルは phpinfo.php
というファイル名で Apache のドキュメントルートに設置して下さい。
Apache を起動した状態で、ブラウザから「http://localhost/phpinfo.php」へアクセスして下さい。次のように PHP の設定内容に関する情報が表示されます。
設定されている内容を確認したい場合にはこのように phpinfo
関数を使って設定内容を出力してみて下さい。ただし外部からアクセス可能な場所に phpinfo
関数を使ったファイルをいつまでも残しておくことはお勧めできません。使用が終わりましたら速やかに削除して下さい。
読み込まれているphp.iniファイルを確認する
現在どの php.ini
ファイルを読み込んでいるのかを確認するには Loaded Configuration File
の値を確認して下さい。
現在 PHP で読み込まれている php.ini
ファイルの場所は c:\pg\PHP\php.ini
であることが確認できます。
拡張モジュールのディレクトリ設定(extension_dir)
ここからは php.ini
ファイルに対する初期設定です。最初は拡張モジュールのディレクトリ設定についてです。
拡張モジュールのディレクトリの場所について php.ini
では extension_dir
という項目で設定しています。現在の設定は phpinfo
関数を使って確認してみると C:\php\ext
になっています。
今回 PHP をインストールしたディレクトリが異なるため、実際のディレクトリは C:\pg\php\ext
です。そこで php.ini
を編集して設定を変更します。 php.ini
ファイルを開き extension_dir
で検索してください。次のような記述が見つかります。
; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir ;extension_dir = "./" ; On windows: ;extension_dir = "ext"
extension_dir
の先頭に記述されている ";" を削除して次のように書き換えます。
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
;extension_dir = "./"
; On windows:
extension_dir = "C:/pg/php/ext"
php.ini
ファイルを保存したあと、設定を反映させるために Apache を再起動して下さい。そのあとで改めて phpinfo
関数を使って確認してみると、変更した内容が反映されていることが確認できます。
日本語利用に関する設定(mbstring)
日本語などマルチバイト文字を使うには拡張モジュールの php_mbstring.dll
を有効にし、その後で mbstring
に関する設定を行う必要があります。
php.ini
ファイルをテキストエディタで開き extension=mbstring
で検索して下さい。
;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; ;extension=mbstring
現在はコメントとなっていますので拡張モジュールを有効にするには先頭の ";"を外してください。
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
extension=mbstring
これで php_mbstring.dll
の有効化は完了です。
続いて mbstring
の設定を行います。 php.ini
ファイルでは次のように記述されています。
[mbstring] ; language for internal character representation. ; This affects mb_send_mail() and mbstring.detect_order. ; http://php.net/mbstring.language ;mbstring.language = Japanese ; 次の 3 項目は PHP 8 で非推奨となりました ;mbstring.internal_encoding = ;mbstring.http_input = ;mbstring.http_output = ; 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. ; http://php.net/mbstring.encoding-translation ;mbstring.encoding_translation = Off ; automatic encoding detection order. ; "auto" detect order is changed according to mbstring.language ; http://php.net/mbstring.detect-order ;mbstring.detect_order = auto ; substitute_character used when character cannot be converted ; one from another ; http://php.net/mbstring.substitute-character ;mbstring.substitute_character = none ; Enable strict encoding detection. ;mbstring.strict_detection = Off
多くの設定項目があります。各設定の「;」を外した後でそれぞれ設定を行っていきます。
mbstring.language
は mbstring
で使用される言語設定(NLS)のデフォルト値です。
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
mbstring.language = Japanese
HTTP 入力文字変換を無効にするには mbstring.encoding_translation
に Off
を設定します。
; 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.
; http://php.net/mbstring.encoding-translation
mbstring.encoding_translation = Off
mbstring.detect_order
は文字コードの自動判別を行う時にどの文字コードから順に確認していくのかを指定します。 auto
に設定するとどの文字コードから判別するか分かりませんので明示的に指定しておきます。
; automatic encoding detection order.
; "auto" detect order is changed according to mbstring.language
; http://php.net/mbstring.detect-order
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
mbstring.substitute_character
は無効な文字を代替する文字を定義します。文字を出力しない場合は none
を指定します。
; substitute_character used when character cannot be converted
; one from another
; http://php.net/mbstring.substitute-character
mbstring.substitute_character = none
mbstring.strict_detection
は文字コードの自動判別を厳密に行うかどうかの設定です。それぞれメリットデメリットがありますが今回は Off
にしました。
; enable strict encoding detection.
; Default: Off
mbstring.strict_detection = Off
それぞれの項目について設定部分だけを抜き出すと次のようになります。
[mbstring] mbstring.language = Japanese mbstring.encoding_translation = Off mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII mbstring.substitute_character = none mbstring.strict_detection = Off
php.ini
ファイルを保存したあと、設定を反映させるために Apache を再起動して下さい。そのあとで改めて phpinfo
関数を使って確認してみると、変更した内容が反映されていることが確認できます。
インクルードパスの設定(include_path)
PHP が記述されたファイルから外部のファイルをインクルードする時に、インクルードするファイルを設置するディレクトリの設定を行うのがインクルードパスです。インクルードパスのディレクトリの場所について php.ini
では include_path
という項目で設定しています。現在の設定は phpinfo
関数を使って確認してみると .;C:\php\pear
になっています。
インクルードパスは複数のパスを指定することができ、複数指定する場合はセミコロン(;)で区切って記述します。今回インクルードパスとして 「.」「c:\pg\PHP\pear」「c:\pg\PHP\includes」の 3 つを設定します。 php.ini
ファイルを開き include_path
で検索してください。次のような記述が見つかります。
; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" ; ; PHP's default setting for include_path is ".;/path/to/php/pear" ; http://php.net/include-path
include_path
の先頭に記述されている ";" を削除して次のように書き換えます。
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
include_path = ".;c:/pg/php/pear;c:/pg/php/includes"
;
; PHP's default setting for include_path is ".;/path/to/php/pear"
; http://php.net/include-path
php.ini
ファイルを保存したあと、設定を反映させるために Apache を再起動して下さい。そのあとで改めて phpinfo
関数を使って確認してみると、変更した内容が反映されていることが確認できます。
-- --
php.ini ファイルの作成方法、 php.ini ファイルに対して行っておく初期設定、および php.ini の設定内容を確認するための phpinfo 関数の使い方について解説しました。
( Written by Tatsuo Ikura )

著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。