前回構築した環境から引き続き初期設定を行っていきます。
※前回↓
設定ファイルのバックアップ
設定ファイルは、/etc 配下に php.ini ファイルがありますので、修正前の状態を残しておくために、こちらのファイルをバックアップします。
$ sudo cp /etc/php.ini /etc/php.ini.YYYYMMDD
※バックアップ時の suffix 部分は、変更日がわかるように日付を設定します。
設定ファイルの編集方法
vi もしくは、vim コマンドにて php.ini ファイルを開き、編集します。
$ sudo vim /etc/php.ini
文字コード設定(日本語環境にする設定)
default_charset
デフォルトの文字コード設定となります。UTF-8へ設定します。
以下に紹介する mbstring.http_input、mbstring.http_output、mbstring.internal_encoding が未設定の場合のデフォルトとしても使用されます。
※変更可能:PHP_INI_ALL
default_charset = "UTF-8"
mbstring.language
mbstringのデフォルトの言語設定となります。日本語設定には、Japaneseを設定します。
※変更可能:PHP_INI_ALL
mbstring.language = Japanese
mbstring.internal_encoding
内部文字のエンコーディングのデフォルト値の設定となります。
※PHP5.6.0以降非推奨となっているので、コメントアウトしていますが、空のままでも大丈夫です。
※変更可能:PHP_INI_ALL
; mbstring.internal_encoding = # 空のまま、もしくは、コメントアウト
mbstring.http_input
HTTP入力文字のエンコーディングのデフォルト値の設定となります。
※PHP5.6.0以降非推奨となっているので、コメントアウトしていますが、空のままでも大丈夫です。
; mbstring.http_input = # 空のまま、もしくは、コメントアウト
mbstring.http_output
HTTP出力文字のエンコーディングのデフォルト値の設定となります。
※PHP5.6.0以降非推奨となっているので、コメントアウトしていますが、空のままでも大丈夫です。
; mbstring.http_output = # 空のまま、もしくは、コメントアウト
mbstring.encoding_translation
HTTP入力文字のエンコーディングを内部文字のエンコーディングに自動的に変換するかどうかの設定となります。
自動的に変換しないように「Off」を設定します。
※変更可能:PHP_INI_PERDIR
mbstring.encoding_translation = Off
mbstring.detect_order
文字コード自動検出の優先順位の設定となります。
ちなみに、auto を設定すると、ASCII, JIS, UTF-8, EUC-JP, SJISの順になります。
※変更可能:PHP_INI_ALL
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
タイムゾーン設定
date.timezone
PHP内部で扱う時間の設定を行っていきます。
日本時間を利用するため、タイムゾーンを「Asia/Tokyo」に設定します。
※変更可能:PHP_INI_ALL
date.timezone = Asia/Tokyo
メモリ、データ関連設定
PHPで扱うメモリとデータの設定関係を行っていきます。
サービスの要件次第で変わってくる箇所になるかと思います。
memory_limit
スクリプトが確保できる最大メモリの設定となり、デフォルトは、128Mとなってます。
-1 を設定するとメモリ制限なしの状態になりますが、無限ループ等、誤ったスクリプトでのサーバー負荷を防止するためでもありますので、あまりおすすめはできません。
※post_max_size よりも大きくする必要があります。
memory_limit > post_max_size > upload_max_filesize
※変更可能:PHP_INI_ALL
memory_limit = 128M
post_max_size
送信できるPOSTデータの最大サイズの設定となり、デフォルト 8M となってます。
※upload_max_filesize よりも大きくする必要があります。
※変更可能:PHP_INI_PERDIR
post_max_size = 8M
max_input_vars
送信する入力変数の上限値の設定となります。
$_GET、$_POST そして $_COOKIE のそれぞれ個別に適用されます。
この設定値を超えた入力変数があった場合には、設定値以降の数の入力変数は削除されますので、基幹システム等で入力項目が多い画面の場合には注意が必要です。
※変更可能:PHP_INI_PERDIR
max_input_vars = 1000
upload_max_filesize
アップロードするファイルの最大サイズの設定となります。
デフォルト 2M なので、サービスの仕様に応じて、適宜変更する設定となります。
※変更可能:PHP_INI_PERDIR
upload_max_filesize = 2M
セキュリティ関連設定
サービスを運用する上で、必ず抑えておきたいところです。
expose_php
HTTP のレスポンスヘッダーに PHP のバージョン情報を出力するかどうかの設定となります。
こちらを On に設定していると、PHP のバージョンが露呈してしまいますので、特に理由がない限りは、Off に設定した方がいいです。
※php.ini でのみ設定可
expose_php = Off
session.sid_length
こちらを設定する事で、セッション ID 文字列の長さを指定することができます。
22 から 256 までの値を設定することができ、デフォルトは 32 となってます。
公式では、少なくとも 32 を指定することが推奨となってます。
※PHP 7.1.0 で導入された設定となります。
※変更可能:PHP_INI_ALL
session.sid_length = 32
session.sid_bits_per_character
セッション ID 文字のビット数を指定することができ、 ‘4’、’5′ 、’6′ のいずれかを指定します。 デフォルトは 4 となっており、値が大きいほどセッション ID が強力になります。
公式では、5 を推奨となってます。
※PHP 7.1.0 で導入された設定となります。
※変更可能:PHP_INI_ALL
session.sid_bits_per_character = 5
タイムアウト設定
max_execution_time
スクリプトのタイムアウト時間(実行時間)の設定となります。
値は秒単位で指定することができ、0 を設定すると無制限の設定となります。
重たい処理がある場合に、サーバーの負荷を防止するためでもありますので、php.ini ではあまり大きな値にしないことをおすすめします。
もし、バッチ処理や帳票出力でどうしても時間がかかる場合には、ini_set を使用し、その処理でのみ、設定することをおすすめします。
※変更可能:PHP_INI_ALL
max_execution_time = 30
※プログラム内に ini_set で設定する場合
ini_set("max_execution_time", 3600);
エラー関連設定
display_errors
画面上にエラーを出力するかどうかの設定となります。
開発環境では On に設定し、本番環境では、エラー内容が表示されるとよくないので Off に設定します。
環境に応じて変更するため、php.ini では設定せずに、PHP ファイル内に ini_set を使用して設定する事が多いかと思います。
※変更可能:PHP_INI_ALL
display_errors = Off
error_reporting
出力するエラーレベルの設定となります。
※変更可能:PHP_INI_ALL
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
※プログラム内に設定する場合
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT)
コメント