PHP - BASIC - 1. Hello PHP! - 6. php.iniファイル

PHPにはのPHPプログラムの動作をカスタマイズするための設定ファイルが存在します。このPHPの設定ファイルを php.ini ファイルと呼びます。 php コマンドによってPHPプログラムが実行される際に php.ini ファイルに記述されている設定項目が適用されるようになっています。

この php.ini ファイルを編集することで、エラーの出力レベル、マルチバイト文字列の設定、タイムゾーンの設定などPHPの様々な設定をカスタマイズできるようになっています。またPHPの実行時に有効となっている設定情報は php -i コマンドで確認できます。

$ php -i
phpinfo()
PHP Version => 7.3.11

...省略
mbstring

Multibyte Support => enabled
Multibyte string engine => libmbfl
HTTP input encoding translation => disabled
libmbfl version => 1.3.2
oniguruma version => 6.9.3
...省略

たとえば上記の実行結果を見れば、PHP上でマルチバイト文字列を扱うmbstringモジュールの設定情報を確認できます。

php.iniファイルの準備

Macに標準でインストールされているPHPの場合、デフォルトでは php.ini ファイルが作成されていません。その代わりに/etcディレクトリに php.ini.default という名前で php.ini ファイルの雛形が用意されているので、このファイルをコピーして php.ini ファイルを作成します。

$ sudo cp /etc/php.ini.default /etc/php.ini

/etc ディレクトリ以下を編集するには管理者権限が必要です。 sudo コマンドは管理者権限で実行するコマンドです。

Windowsの場合はインストール時に作成した php フォルダの中に php.ini-development のようなファイルが用意されているので、そのファイルをコピーして php.ini ファイルを作成すると良いでしょう。

参考までに一般的な php.ini ファイルは以下のようなファイルです。

[PHP]

;;;;;;;;;;;;;;;;;;;
; About php.ini   ;
;;;;;;;;;;;;;;;;;;;
; PHP's initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP's behavior.

(...省略)

[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
mbstring.language = Japanese

; Use of this INI entry is deprecated, use global internal_encoding instead.
; internal/script encoding.
; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)
; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
mbstring.internal_encoding = UTF-8

(...省略)

実際のファイルの行数は1000行を超えるのでここでは一部分のみ抜粋しています。先頭が ; で始まっているものは設定項目を説明するコメントです。 [mbstring] のように設定項目の分類分けがあり、 mbstring.language = Japanesembstring.internal_encoding = UTF-8 の部分が具体的に設定項目に値を指定している部分になります。

まとめ

  • php.ini ファイルはPHPの設定情報を管理する
  • /etc/php.ini など規定のフォルダに配置する
  • php.ini ファイルを編集することで、エラーの出力レベル、マルチバイト文字列の設定、タイムゾーンの設定などPHPの様々な設定をカスタマイズできる