【PHP】 php.ini 設定オプション一覧
php.ini
php.ini はPHPの動作を指定するための設定ファイルです。設定を記述する要素(ディレクティブ)に値を設定することで、どのように動作させるかを柔軟に設定することができます。設定変更後は、Webサーバーの再起動が必要です。
php.ini の場所の確認
php.ini の場所は、phpinfoを見ることで確認できます。
- phpinfoをwebで見るドキュメントルート配下に「echo phpinfo();」を記載し、ブラウザで確認
- コンソール上で実行して確認php -r "phpinfo();" | grep "php.ini"
スクリプトがうまく動作しない場合にも設定を確認してみましょう。使いたいエクステンションが phpinfo 関数の実行結果に表示されない場合、エクステンションがインストールされていないことがわかります。また変更したはずの設定が反映されていない場合、phpinfo の出力で「Configuration File (pho.ini) Path」を確認します。PHPをいくつもインストールしてしまったような場合、読み込まれていない php.ini を間違えて編集しているのかもしれません。
php.ini に設定を記述する
php.ini の各設定項目は設定方法がいくつかありますが、言うまでもなくphp.ini にダイレクトに記述する方法が最も簡単です。php.ini を開くと多くの項目に既に値が設定されており、コメントして設定例が記述されている項目もあるので、基本的な記述方法は、そちらが参考になると思います。
- php.iniの設定例mbstring.internal_encodeing = EUC-jp
phpの設定を .htaccess に記述するには
Apacheの動作設定を記述できる .htaccess に、PHPの動作設定を記述しておくと、Apacheを再起動しなくても、スクリプトの実行時に反映されます。この場合、php_value というディレクティブに値(パスなどを記述)を指定、php_flag にフラグ(On/Offを記述)を指定します。php.ini 自体を直接編集できない場合にも役立ちます。
- phpの設定を .htaccess に記述する例php_value include_path ".;c:\file\library"
php_flag display_errors Off
phpの設定をスクリプトから行うには
PHPの組み込み関数には、設定値を動的に変更できるものがあります。例えばその名前通りの機能の ini_set 関数や、出力するエラーレベルを設定する error_reporting 関数です。こうした関数を使って設定を変更した場合、該当スクリプトの処理でのみ設定が適用されます。
- ini_set 関数でPHPの設定を追加する例ini_set("SMTP", "mail1, xxx.com");
- エラーレベルを設定する error_reporting 関数error_reporting(0);
変数
always_populate_raw_post_data 既定値:On
解説:変数 $HTTP_RAW_POST_DATAにアクセス可能にする
arg_separator.input 既定値:&
解説:URL解析時の各パラメータ区切り文字
arg_separator.output 既定値:&
解説:URL生成時の各パラメータ区切り文字
auto_globals_jit 規定値:1
解説:サーバー変数や環境変数を、スクリプト開始時でなく使用時に作成する(PHP5.0以降で利用可能)
filter.default 既定値:unsage_raw
解説:規定のフィルタ名(PHP5.2以降で使用可能)
filter.default_flags 既定値:Null
解説:フィルタで使う規定のフラグ(PHP5.2以降で使用可能)
magic_quotes_gpc 規定値:Off
解説:クライアントより<form>フォームで送られた文字列データが全てエスケープされ、 「" → ¥"」「¥ → ¥¥」など変換処理が行われます。
magic_quotes_runtime 既定値:Off
解説:外部から取得した値をバックスラッシュでエスケープする
magic_quotes_sybase 既定値:Off
解説:シングルクォーテーションでエスケープする
post_max_size 既定値:8M
解説:許可される POST送信データの最大サイズ
precision 規定値:14
解説:浮動小数点数の最大桁数
register_argc_argv 既定値:Off
解説:変数$argcと変数$argvを宣言する
register_long_globals 既定値:Off
解説:変数をグローバル変数に登録する
register_long_arrays 既定値:Off(php.ini-dist は On)
解説:変数$HTTP_*_VARSを登録する
variables_order 既定値:GPCS
解説:変数の優先順位
日付
date.default_latitude 既定値:31.7667
解説:既定の緯度を設定する
date.default_longitude 既定値:35.2333
解説:既定の経度を設定する
date.sunrise_zenith 既定値:90.583333
解説:既定の日の出点を設定する
date.sunset_zenith 既定値:90.583333
解説:既定の日没点を設定する
date.timezone 既定値:空
解説:日付時刻関数で使われる既定のタイムゾーン
マルチバイト
いまさら聞けない!マルチバイトとは...
いわゆる2バイト文字のことで、コンピュータで文字を扱えるよう各文字に番号を対応付ける文字コードや文字セットのうち、1文字を2バイト以上のデータ量で表すものです。
mbstring.*ディレクティブで文字コードを指定する場合は、次のように単一の文字コード、複数の文字コード、または「auto」「pass」を指定できます。
- 単一の文字コード:入出力、内部文字コードを指定(例:SJIS)
- 複数の文字コード:文字コードの検出順を指定
- pass:文字コード変換が行われない
- auto:ASCII、JIS、UTF-8、EUC-JP、SJISと同じ意味
mbstring.detect_order 既定値:NULL
解説:文字コードの検出順(「SJIS、EUC-JP」を指定します。)
mbstring.encoding_translation 既定値:Off
解説:内部文字エンコーディングへの変換を有効にする
mbstring.func_overload 既定値:0
いまさら聞けない!オーバーロードとは...
関数の多重定義のこと。引数や戻り値が異なるが名称が同一のメソッドを複数定義するというオブジェクト指向プログラミングのテクニックである。
解説:マルチバイト関数のオーバーロード設定
値 | 関数 | オーバーロードする関数 |
1 | mb_send_mail1 | |
2 | strlen | mb_strlen |
2 | strpos | mb_strpos |
2 | strrpos | mb_strrpos |
2 | substr | mb_substr |
4 | ereg | mb_ereg |
4 | ereg1 | mb_ereg1 |
4 | ereg_replace | mb_ereg_replace |
4 | ereg1_replace | mb_ereg1_replace |
4 | split | mb_split |
mbstring.http_input 既定値:pass
解説:HTTP入力文字エンコーディング
mbstring.http_output 既定値:pass
解説:HTTP出力文字エンコーディング
mbstring.internal_encoding 既定値:null
解説:内部文字エンコーディング
mbstring.language 既定値:neutral
解説:mb_send_mail関数で使う言語
mbstring.strict_detection 既定値:空
解説:綿密な文字コード検出を行う
mbstring.substitude_character 既定値:NULL
解説:代替文字の既定値
ファイル
allow_url_fopen 既定値:On
解説:開くファイルとしてURLを指定可能にする
allow_url_include 既定値:Off
解説:インクルードファイルとしてURLを指定可能にする
auto_append_file 既定値:空文字
解説:実行中のファイルの後に付加されるファイル
auto_detect_line_endings 既定値:Off
解説:行末を自動検出する
auto_prepend_file 既定値:空文字
解説:実行中のファイルの前に付加されるファイル
enable_dl 既定値:On
解説:拡張モジュールのロードを許可する
extension 既定値:設定なし
解説:ロードする拡張モジュール
extension_dir 既定値:PHP_EXTENSION_DIR
解説:拡張モジュールの格納ディレクトリ
file_upload 既定値:On
解説:ファイルアップロードの許可
highlight.bg 既定値:HL_BG_COLOR
解説:コードハイライト表示時の背景色
highlight.comment 既定値:HL_COMMENT_COLOR
解説:コードハイライト表示時のコメント色
highlight.default 既定値:HL_DEFAULT_COLOR
解説:コードハイライト表示時の規定の色
highlight.html 既定値:HL_HTML_COLOR
解説:コードハイライト表示時のHTMLの色
highlight.keyword 既定値:HL_KEYWORD_COLOR
解説:コードハイライト表示時のキーワードの色
highlight.string 既定値:HL_STRING_COLOR
解説:コードハイライト表示時の文字列の色
include_path 既定値:PHP_INCLUDE_PATH
解説:インクルードファイルの格納ディレクトリ
open_basedir 既定値:NULL
解説:開くことができるファイルの配置ディレクトリ
realpath_cashe_size 既定値:16K
解説:realpathキャッシュのサイズ
realpath_cache_ttl 既定値:120
解説:realpathキャッシュの有効時間(秒)
upload_max_filesize 既定値:2M
解説:アップロードするファイルの最大サイズ
upload_tmp_dir 既定値:NULL
解説:ファイルアップロード時に使用するテンポラリディレクトリ
データベース
mysql.allow_persistent 既定値:On
解説:持続的MySQL接続を許可する
mysql.connect_timeout 既定値:60
解説:MySQL接続のタイムアウト値(秒)
mysql.default_host 既定値:null
解説:MySQL接続の既定のMySQLサーバー
mysql.default_password 既定値:null
解説:MySQL接続の既定のパスワード
mysql.default_port 既定値:null
解説:MySQL接続の既定のポート
mysql.default_socket 既定値:null
解説:MySQL接続の既定のソケット名
mysql.default_user 既定値:null
解説:MySQL接続の既定のユーザー名
mysql.max_links 既定値:-1
解説:持続的接続を含むMySQL接続の最大数(-1:無制限)
mysql.max_persistent 既定値:-1
解説:持続的接続MySQL接続の最大数(-1:無制限)
mysql.trace_mode 既定値:Off
解説:トレースモードで実行する
mysqli.default_host 既定値:null
解説:MySQLi接続の既定のMySQLサーバー
mysqli.default_pw 既定値:null
解説:MySQLi接続の既定のパスワード
mysqli.default_port 既定値:3306
解説:MySQLi接続の既定のポート
mysqli.default_socket 既定値:null
解説:MySQLi接続の既定のソケット名
mysqli.default_user 既定値:null
解説:MySQLi接続の既定のユーザー名
mysqli.max_links 既定値:-1
解説:MySQLiの最大接続数(-1:無制限)
mysqli.reconnect 既定値:Off
解説:MySQLiの再接続を許可する
odbc.allow_persistent 既定値:On
解説:持続的ODBC接続を許可する
odbc.check_persistent 既定値:On
解説:接続を再利用する前に、有効な接続か調べる
odbc.default_db 既定値:null
解説:既定のデータベース
odbc.default_pw 既定値:null
解説:既定のパスワード
odbc.default_user 既定値:null
解説:既定のユーザー名
odbc.defaultbinmode 既定値:1
解説:データ変換モード(0:バイナリデータに変換、1:そのまま、2:charに変換)
odbc.defaultlrl 既定値:4096
解説:LONGフィールドの戻り値のサイズ(バイト数)
odbc.max_links 既定値:-1
解説:持続的接続を含むODBC接続の最大数(-1:無制限)
odbc.max_persistent 既定値:-1
解説:持続的ODBC接続の最大数(-1:無制限)
pgsql.allow_persistent 既定値:On
解説:持続的PostgreSQL接続を許可する
pgsql.uato_reset_persistent 既定値:Off
解説:持続的PostgreSQL接続を自動的にリセットする
pgsql.ignore_notice 既定値:0
解説:PostgreSQLからのメッセージを無視する
pgsql.log_notice 既定値:0
解説:PostgreSQLからのメッセージをログに記録する
pgsql.max_links 既定値:-1
解説:持続的接続を含むPostgreSQL接続の最大数を指定します。(-1:無制限)
pgsql.max_persistent 既定値:-1
解説:持続的PostgreSQL接続の最大数を指定します。(-1:無制限)
sql.safe_mode 既定値:Off
解説:データ処理時にセーフモードを適用する
sqlite.assoc_case 既定値:0
解説:フィールド名の大文字と小文字の使用状況(0:混在、1:大文字を使用、2:小文字を使用)
実行制御
asp_tags 既定値:Off
解説:ASPスタイルの開始文字を許可する
disable_classes 既定値:空文字
解説:無効にするクラス
disable_functions 既定値:空文字
解説:無効にする関数(複数指定するときはカンマで区切ります。例:「exec,passthru」)
doc_root 既定値:null
解説:PHPのルートディレクトリ
docref_ext 既定値:空文字
解説:ドキュメントページの拡張子を指定します。(例:.html)
docref_root 既定値:空文字
解説:ドキュメントページが配置されているディレクトリ(例:/manual/ja/)
engine 既定値:On
解説:ApacheでPHPの実行を許可する
expose_php 既定値:On
解説:PHPがインストール済であることをWebサーバーに伝える
implicit_frush 既定値:Off
解説:Onを設定するとechoなどでデータが出力されるたびに自動でフラッシュされる
ignore_user_abort 既定値:On
解説:リクエストが中止されても処理を継続する
max_execution_time 既定値:30
解説:スクリプトのタイムアウト値
max_input_time 既定値:60
解説:フォームから送信されたデータを受け取るまでの最大許容時間(秒)
memory_limit 既定値:128M
解説:スクリプトが使用できる最大メモリサイズ
output_buffering 既定値:4096 (php.ini-dist は Off)
解説:OnまたはOffによって出力バッファリングの有効/無効を指定可能です。数値を指定すると
の最大バイト数になります。output_handler 既定値:NULL
解説:出力をハンドリングする関数名
report_memleaks 既定値:On
解説:ログにメモリリークを出力する
safe_mode 既定値:Off
解説:セーフモードで実行する(PHP6で廃止)
safe_mode_allowed_env_vars 既定値:PHP_
解説:設定可能な環境変数の接頭辞
safe_mode_exec_dir 既定値:空文字
解説:コマンド実行ディレクトリ
safe_mode_gid 既定値:Off
解説:開くGIDをチェックする場合はOn、UIDチェックの場合はOffを指定します。
safe_mode_include_dir 既定値:NULL
解説:UIDやGIDのチェックを省略するディレクトリ
safe_mode_protected_env_vars 既定値:LD_LIBBARY_PATH
解説:設定不可能な環境変数
short_open_tag 既定値:Off (php.ini-dist はOn)
解説:開始/終了タグの短縮形を有効にする
user_agent 既定値:NULL
解説:PHP用のユーザーエージェント
user_dir 既定値:NULL
解説:ユーザー用のホームディレクトリ
y2k_compliance 既定値:On
解説:2000年問題対応を強制する
zend.ze1_compatibility_mode 既定値:Off
解説:PHP4互換モードで動作させる
エラー処理
display_errors 既定値:Off (php.ini-dist は On)
解説:エラーを画面に表示する
display_startup_errors 既定値:Off
解説:PHP起動時のエラーを出力するか
error_append_string 既定値:NILL
解説:エラーメッセージの後に出力する文字列
error_log 既定値:NULL
解説:エラーを記録するファイル名やsyslogを指定します。
error_prepend_string 既定値:NULL
解説:エラーメッセージの前に出力する文字列(例:<font color=red>)
error_reporting 既定値:E_ALL ( php.ini-distは E_ALL & -E_NOTICE)
解説:エラーの出力レベル
gd.jpeg_ignore_warning 既定値:0
解説:GDのJPEG関連の関数が出力するエラーメッセージを無視する
html_errors 既定値:On
解説:エラーメッセージのHTMLタグを出力する
ignore_repeated_errors 既定値:Off
解説:繰り返されるエラーメッセージを記録する
ignore_repeated_source 既定値:Off
解説:同じソースのメッセージを無視する
log_errors 既定値:On ( php.ini-dist は Off )
解説:エラーログに記録する
log_errors_max_len 既定値:1024
解説:エラーメッセージの最大サイズ(キロバイト単位で指定、0指定で無制限)
track_errors 既定値:Off
解説:変数 $php_errormsg に直近のエラーメッセージを格納する
セッション
コンピューターネットワークにおけるセッションとは、通信の開始から終了までを指します。クライアントとサーバーで通信を行う場合であれば、クライアントからサーバーへ接続した時点でセッションが始まり、サーバーから切断するとセッションが終了します。この一連の流れを管理することをセッション管理と言います。
session.auto_start 既定値:0
解説:セッションを自動開始する
session.bug_compat_42 既定値:0 ( php.ini-dist は1 )
解説:セッション処理のバグを許容する
session.bug_compat_warm 既定値:1
解説:セッション処理のバグ許容にメッセージを出力する
session.cashe_limiter 既定値:nocache
解説:セッションのキャッシュ制御方法
session.cookie_domain 既定値:空
解説:クッキーで指定するドメイン
いまさら聞けない!クッキーとは...
WebサイトがスマホやPCの中に保存する情報のことで、保存されることによって同じWebサーバーにアクセスすれば、ユーザーに続きのページを表示するという機能です。
session.cookie_httponly 既定値:空
解説:クッキーに対してHTTP経由のみでアクセスできるようにする
session.cookie_lifetime 既定値:0
解説:クッキーの有効期間(秒単位で指定、0指定でブラウザを閉じるまで有効)
session.cookie_path 既定値:「/」
解説:クッキーで指定するパス
session.cookie_secure 既定値:空文字
解説:セキュア接続でのみクッキーを送信可能にする
session.entorpy_file 既定値:空文字
解説:セッションID生成に使用する外部リソースのパス
session.entorpy_length 既定値:0
解説:セッションID生成時に外部リソースから読み込むバイト数
session.gc_divisor 既定値:1000 ( php.ini-dist は 100 )
解説:PHPでセッションの長さを変更するための設定です。
session.gc_maxlifetime 既定値:1440
解説:
実行までの時間(秒)session.gc_probability 既定値:1
解説:PHPでセッションの長さを変更するための設定です。(詳細は session.gc_divisor を参照)
session.hash_bits_per_character 既定値:5 ( php.ini-dist は 4 )
解説:
変換時に各文字に保存するビット数(PHP5で追加されたディレクティブ)session.hash_function 既定値:0
解説:セッションIDの生成アルゴリズム(0指定でMD5:128ビット、1指定でSHA-1:160ビット)
session.name 既定値:PHPSESSID
解説:セッションIDを保存するときの要素名として使われます。
session.referer_check 既定値:空文字
解説:遷移元チェックに使用する文字列
session.save_handler 既定値:files
解説:セッション保存先のハンドル名
session.save_path 既定値:/tmp
解説:セッション保存先のディレクトリ
session.serialize_handler 既定値:php
解説:シリアライズするときのハンドル名
session.use_cookies 既定値:1
解説:セッションIDの保存先を指定
session.use_only_cookies 既定値:0
解説:セッションIDにクッキーのみを使う(1指定でセッションIDをURLに含めるなど、クッキー以外のセッションIDが使用できません。)
session.use_trans_sid 既定値:0
解説:セッションIDをURLに付加する(1を指定してセッションIDがクッキーを使用しない場合には、セッションIDがURLに付加されます。)
url_rewriter.tags 既定値:a=href,area=href,frame=src,input=src,form=fakeentry
解説:URLにセッションIDを含めるときの対象タグ
ネットワーク
default_charset 既定値:設定なし
解説:規定の文字コード
default_mimetype 既定値:text/thml
解説:規定の
タイプdefault_socket_timeout 既定値:60
解説:ソケット接続のタイムアウト値(秒)
define_syslog_variables 既定値:Off
解説:syslog変数を定義する
from 既定値:NULL
解説:anonymous FTPにログインするためのパスワードとして使用するためのメールアドレスを指定
mail.force_extra_paramaters 既定値:NULL
解説:メール送信時に追加するパラメータ
sendmail_from 既定値:NULL
解説:メール送信元のメールアドレスを指定します(Windowsのみ)
sendmail_path 既定値:DEFAULT_SENDMAIL_PATH
解説:sendmail1のパスを指定します(UNIXのみ)
SMTP 既定値:localhost
解説:メール送信に使うSMTPサーバー名またはIPアドレスを指定します(Windowsのみ)
smtp_port 既定値:25
解説:SMTPサーバーのポート番号を指定します(Windowsのみ)
soap.wsdl_cashe_dir 既定値:/tmp
解説:キャッシュの格納ディレクトリ
WSDL( Web Services Description Language)とは、
インタフェース定義の言語仕様のひとつで、開発したプログラムにアクセスするためのインタフェース定義を記述できる言語。
soap.wsdl_cashe_enabled 既定値:1
解説:WSDLキャッシュを有効にする
soap.wsdl_cashe_ttl 既定値:86400
解説:WSDLキャッシュの有効期限(秒)
sokets.use_system_read 既定値:On
解説:php_readラッパーの代わりにread関数を使う