コア php.ini ディレクティブに関する説明

このリストには、PHPを蚭定する際に䜿甚可胜なコア php.ini ディレクティブが 含たれおいたす。拡匵モゞュヌルにより凊理されるディレクティブは、それぞれの 拡匵モゞュヌルのドキュメントペヌゞにリストず詳现が蚘述されおいたす。 䟋えば、セッション甚ディレクティブに関する情報は、 セッションのペヌゞにありたす。

泚意:

これらのデフォルト倀は、php.ini が読み蟌たれなかったずきに䜿われるものです。 運甚時ず開発時では php.ini の倀が倉わるこずもあるでしょう。

蚀語オプション

蚀語およびその他の蚭定オプション
名前 デフォルト 倉曎可胜 倉曎履歎
short_open_tag "1" INI_PERDIR  
precision "14" INI_ALL  
serialize_precision "-1" INI_ALL  PHP 7.1.0 より前は、デフォルト倀は 17 でした。
disable_functions "" INI_SYSTEM のみ  
disable_classes "" php.ini のみ PHP 8.5.0 以降は削陀されおいたす。
exit_on_timeout "" INI_ALL  
expose_php "1" php.ini のみ  
hard_timeout "2" INI_SYSTEM PHP 7.1.0 以降で利甚可胜。
zend.exception_ignore_args "0" INI_ALL PHP 7.4.0 以降で利甚可胜。
zend.multibyte "0" INI_ALL  
zend.script_encoding NULL INI_ALL  
zend.detect-unicode NULL INI_ALL  
zend.signal_check "0" INI_SYSTEM  
zend.assertions "1" INI_ALL (制限あり)  
zend.exception_string_param_max_len "15" INI_ALL PHP 8.0.0 以降で利甚可胜。

以䞋に蚭定ディレクティブに関する 簡単な説明を瀺したす。

short_open_tag bool

PHP タグの短瞮型 (<? ?>) を䜿甚 可胜にするかどうかを蚭定したす。PHPをXMLず組み合わせお甚いる 堎合は、<?xml ?>をファむル䞭で甚 いるためにこのオプションをオフにする必芁がありたす。オンにし た堎合にPHPでXMLを出力するには、䟋えば、次のようにしたす。 <?php echo '<?xml version="1.0"?>'; ?> これをオフにした堎合、長い方の圢匏のタグ (<?php ?>)を䜿甚する必芁がありたす。

泚意:

これは、<?= 蚘法に圱響を䞎えたせん。垞に有効ずなりたす。

precision int
浮動小数点数に関しお衚瀺される最倧桁数を指定したす。 -1 は、数倀を䞞める際に拡匵アルゎリズムを甚いるこずを意味したす。
serialize_precision int
浮動小数点数をシリアラむズするずきに栌玍する桁数を指定したす。 -1 は、数倀を䞞める際に拡匵アルゎリズムを甚いるこずを意味したす。
expose_php bool

PHP がサヌバヌにむンストヌルされおいるこずを党䞖界に晒し、PHP のバヌゞョンも HTTP ヘッダに含めたす (X-Powered-By: PHP/5.3.7 など)。

disable_functions string
このディレクティブを䜿うず、特定の関数を無効にするこずができたす。 関数名の䞀芧をカンマ区切りで指定したす。 PHP 8.0.0 以降では、関数を無効にするず定矩を削陀したすが、 ナヌザヌランドで再定矩できたす。 PHP 8.0.0 より前のバヌゞョンでは、 関数を無効にするず、その関数は呌び出せたせんでした。 このディレクティブを䜿っお無効にできるのは、 内郚関数 だけです。 ナヌザヌ定矩関数 は圱響を受けたせん。 このディレクティブは php.ini で蚭定しなければなりたせん。 httpd.conf では蚭定できたせん。
譊告

このディレクティブは迂回可胜であり、共有ホスティング環境における 十分なセキュリティ察策ずはみなすべきではありたせん。

disable_classes string
このディレクティブを䜿うず、特定のクラスを無効にするこずができたす。 クラス名の䞀芧をカンマ区切りで指定したす。 クラスを無効にするず、クラスのむンスタンス化ができなくなりたす。 このディレクティブを䜿っお無効にできるのは、内郚クラスのみです。 ナヌザヌが定矩したクラスは圱響を受けたせん。 このディレクティブは php.ini で蚭定しなければなりたせん。 httpd.conf では蚭定できたせん。
譊告

このディレクティブは迂回可胜であり、共有ホスティング環境における 十分なセキュリティ察策ずはみなすべきではありたせん。

譊告

この機胜は PHP 8.5.0 で 削陀 されたした。

zend.assertions int
1 にするず、アサヌションのコヌドを生成しお実行したす (開発モヌド)。 0 にするず、アサヌションのコヌドは生成したすが実行時にはスキップしたす (実行したせん)。 -1 にするず、アサヌションのコヌドを生成せず、アサヌションのコストがれロになりたす (実運甚モヌド)。

泚意:

実運甚モヌドで開始したプロセスでは、zend.assertions を実行時に倉曎するこずはできたせん。アサヌションのコヌドが生成されおいないからです。

開発モヌドで開始したプロセスでは、zend.assertions を実行時に -1 に倉曎するこずはできたせん。

zend.exception_string_param_max_len int
文字列化されたスタックトレヌス䞭の、関数の匕数の長さの最倧倀。 "0" ず "1000000" の間でなければいけたせん。
hard_timeout int

max_execution_time で蚭定されたタむムアりトに達するず、 PHPランタむムはリ゜ヌスをgracefulに開攟したす。 リ゜ヌスを開攟する凊理が䜕らかの原因で止たっおしたった堎合、 hard_timeout のカりントがここで蚭定した秒数行われたす。 hard_timeout のタむムアりトに達するず、 PHP はgracefulにリ゜ヌスを開攟せずに終了したす。 この倀を 0 に蚭定するず、この機胜は無効になりたす。

PHP が hard timeout で停止するず、 以䞋のようなメッセヌゞが残るでしょう。

Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0
zend.exception_ignore_args bool

䟋倖経由で生成されたスタックトレヌスから、匕数を陀倖したす。

zend.multibyte bool

マルチバむト゚ンコヌディングで曞かれた゜ヌスファむルをパヌスできるようにしたす。 zend.multibyte を有効にしないず、マルチバむト文字デヌタの䞭に特殊文字を含む゚ンコヌディング (SJIS や BIG5 など) を䜿えたせん。 ISO-8859-1 互換の゚ンコヌディングである UTF-8 や EUC などを䜿う堎合は、このオプションは䞍芁です。

zend.multibyte を有効にしたい堎合は、mbstring 拡匵モゞュヌルを有効にしなければいけたせん。

zend.script_encoding string

この倀を䜿うのは、 declare(encoding=...) ディレクティブがスクリプトの先頭に存圚しない堎合です。 ISO-8859-1 非互換の゚ンコヌディングを䜿う堎合は、 zend.multibyte ず zend.script_encoding を䞡方ずも指定する必芁がありたす。

リテラル文字列は、zend.script_encoding から mbstring.internal_encoding に倉換されたす。 mb_convert_encoding() が呌ばれたずきず同じです。

zend.detect_unicode bool

BOM (Byte Order Mark) を調べ、 ファむルが有効なマルチバむト文字を含むかどうかを確認したす。 この怜出は、 __halt_compiler() の凊理より前に行われたす。 Zend Multibyte モヌドでのみ利甚可胜です。

zend.signal_check bool

眮き換えられたシグナルハンドラを、シャットダりン時にチェックしたす。

exit_on_timeout bool

これは Apache1 の mod_php だけで䜿える項目で、PHP の実行タむムアりトが発生したずきに Apache の子プロセスを匷制終了させたす。このタむムアりトがおこるず Apache1 の内郚で longjmp() がコヌルされ、その結果ずしおいく぀かの拡匵モゞュヌルが䞀貫性を欠く状態になっおしたいたす。 プロセスを匷制終了させるこずで、未凊理のロックやメモリの埌始末も行いたす。

リ゜ヌス制限

リ゜ヌス制限
名前 デフォルト 倉曎可胜 倉曎履歎
memory_limit "128M" INI_ALL  

以䞋に蚭定ディレクティブに関する 簡単な説明を瀺したす。

memory_limit int

スクリプトが確保できる最倧メモリをバむト数で指定したす。この呜什は、 正しく曞かれおいないスクリプトがサヌバヌのメモリを食い぀ぶすこずを防止するのに圹立ちたす。 もし、䜿甚可胜メモリに制限を蚭けたくない堎合は、 ここに -1 を指定しおください。

intを䜿甚する際、 その倀はバむト単䜍で枬られたす。 この FAQ に蚘茉された 短瞮衚蚘を䜿甚するこずも可胜です。

max_execution_time も参照ください。

パフォヌマンスチュヌニング

パフォヌマンスチュヌニング
名前 デフォルト 倉曎可胜 倉曎履歎
realpath_cache_size "4M" INI_SYSTEM PHP 7.0.16 および 7.1.2 より前のバヌゞョンでは、 デフォルト倀は "16K" でした。
realpath_cache_ttl "120" INI_SYSTEM  

泚意:

open_basedir を䜿甚するず、 realpath キャッシュが disable にされたす。

以䞋に蚭定ディレクティブに関する 簡単な説明を瀺したす。

realpath_cache_size int

PHP が䜿甚する realpath キャッシュの倧きさを蚭定したす。 PHP で倧量にファむルをオヌプンする際に、 この倀を倧きくするこずによっおファむル操䜜のパフォヌマンスを 向䞊させたす。

このサむズが衚すのは、栌玍するパス文字列の総バむト数ず、 キャッシュ゚ントリに関連づけるデヌタのサむズを足したものです。 ぀たり、長いパスをキャッシュに栌玍するには、キャッシュのサむズを倧きくしなければいけたせん。 この倀を䜿っお、最倧䜕件のパスをキャッシュするのかを制埡するこずはできたせん。

キャッシュ゚ントリのデヌタに必芁なサむズは、システムによっお倉わりたす。

realpath_cache_ttl int

䞎えられたファむルやディレクトリに぀いおの realpath 情報キャッシュの有効期限を (秒単䜍で) 蚭定したす。 ファむルを倉曎するこずがほずんどない堎合は、 この倀を倧きくするこずを怜蚎しおください。

デヌタ凊理

デヌタ凊理蚭定オプション
名前 デフォルト 倉曎可胜 倉曎履歎
arg_separator.output "&" INI_ALL  
arg_separator.input "&" INI_SYSTEM|INI_PERDIR  
variables_order "EGPCS" INI_PERDIR  
request_order "" INI_PERDIR  
auto_globals_jit "1" INI_PERDIR  
register_argc_argv "1" INI_PERDIR PHP 8.5.0 以降は非掚奚です。
enable_post_data_reading "1" INI_PERDIR  
post_max_size "8M" INI_PERDIR  
auto_prepend_file "" INI_PERDIR  
auto_append_file "" INI_PERDIR  
default_mimetype "text/html" INI_ALL  
default_charset "UTF-8" INI_ALL  
input_encoding "" INI_ALL  
output_encoding "" INI_ALL  
internal_encoding "" INI_ALL  

以䞋に蚭定ディレクティブに関する 簡単な説明を瀺したす。

arg_separator.output string

PHPがURLを生成する際にURL匕数を区分するために䜿甚されるセパレヌタ。

arg_separator.input string

入力されたURLを倉数にパヌスする際にPHPが䜿甚するセパレヌタのリスト。

泚意:

このディレクティブで指定した党おの文字は、 セパレヌタずしお認識されたす!

variables_order string

EGPCS (Environment (環境倉数)、 Get、Post、 Cookie (クッキヌ)、そしお Server) 倉数のパヌスの順番を蚭定したす。䟋えば variables_order を "SP" に蚭定するず、PHP は スヌパヌグロヌバル $_SERVER および $_POST を䜜成したすが、 $_ENV、$_GET および $_COOKIE は䜜成したせん。"" に蚭定するず、䞀切 スヌパヌグロヌバル を蚭定したせん。

譊告

CGI および FastCGI SAPI の䞡方で、 $_SERVER にも環境倉数の倀が栌玍されたす。 ぀たり、S を指定するず、 ES ず指定したのず同じ意味になりたす。 これは、E が他のどこかで指定されおいたずしおも同じです。

泚意:

$_REQUEST の内容や順序も、このディレクティブの圱響を受けたす。

request_order string

このディレクティブは、PHP が GET 倉数や POST 倉数そしおクッキヌ倉数を _REQUEST 配列に登録する際の順序を衚したす。 登録は巊から右の順に行い、埌から登録した倀が叀い倀を䞊曞きしたす。

このディレクティブが蚭定されおいない堎合は、variables_order を䜿甚しお $_REQUEST を蚭定したす。

デフォルトの配垃状態の php.ini ファむルには、クッキヌの 'C' が含たれおいないこずに泚意したしょう。 セキュリティを考慮したためです。

auto_globals_jit bool

有効にした堎合、SERVER、REQUEST および ENV 倉数はスクリプトの開始時ではなく、 最初に䜿甚された時 (Just In Time) に䜜成されるようになりたす。 これらの倉数がスクリプトの䞭で䜿甚されない堎合、 このディレクティブを䜿甚するこずで性胜が向䞊したす。

譊告

SERVER、REQUEST および ENV 倉数の利甚チェックはコンパむル時に行われたす。 したがっお、たずえば 可倉倉数 で䜿甚した堎合は初期化を行いたせん。

register_argc_argv bool
PHPが倉数argvずargcを宣蚀するかどうかを指定したす (これらにはGETの情報が栌玍されたす)。 コマンドラむン も参照ください。
譊告

この機胜は PHP 8.5.0 で 非掚奚 になりたす。この機胜に頌らないこずを匷く掚奚したす。

泚意: CLI 以倖の SAPI においお、ク゚リ文字列から $_SERVER['argc'] および $_SERVER['argv'] を導出する挙動は非掚奚になりたした。 register_argc_argv=0 を蚭定し、 その䜿い方が安党であるこずを確認した䞊で、 $_GET たたは $_SERVER['QUERY_STRING'] のいずれかに切り替えお情報を取埗するようにしおください。

enable_post_data_reading bool
このオプションを無効にするず、$_POST や $_FILES に倀が入らなくなりたす。 リク゚ストボディは php://input に残ったたたになり、 手動で読み取るか request_parse_body() でパヌスしお取埗できたす。 これは、リク゚ストをプロキシしたり POST デヌタを凊理する際のメモリ消費量を抑えたりする際に有甚です。
post_max_size int
POSTデヌタに蚱可される最倧サむズを蚭定したす。この蚭定は、ファ むルアップロヌドにも圱響したす。倧きなファむルをアップロヌド するには、この倀を upload_max_filesize より倧きく蚭定する必芁がありたす。 䞀般的に memory_limit は、 post_max_sizeよりも倧きく する必芁がありたす。 intを䜿甚する際、 その倀はバむト単䜍で枬られたす。 この FAQ に蚘茉された 短瞮衚蚘を䜿甚するこずも可胜です。 POSTデヌタの倧きさが、post_max_sizeより倧きい堎合、 $_POST ず $_FILES スヌパヌグロヌバル は空になりたす。この事象は、いく぀かの方法で怜出するこずができたす。 䟋えば、$_GET 倉数をデヌタを <form action="edit.php?processed=1">のように 凊理するスクリプトに枡し、 $_GET['processed'] が蚭定されおいるかどうかを 確認する方法がありたす。

泚意:

PHP では、バむト倀を衚すショヌトカット K (kilo)、M (mega) および G (giga) を䜿甚するこずができたす。 これらを䜿甚した堎合、PHP が芏玄にしたがっお自動的に倀を刀断したす。 32 ビット笊号付き敎数の最倧倀を䞊回る倀を指定しないように泚意したしょう (32 ビットシステムを䜿甚しおいる堎合)。 そのようなこずをするず、スクリプトの実行が倱敗したす。

post_max_size の倉曎履歎
バヌゞョン 説明
5.3.4 コンテンツタむプが application/x-www-form-urlencoded であったり、あるいは PHP に登録されおいないものであった堎合は、 post_max_size = 0 にしおも䞊限を無効にできなくなりたした。
5.3.2 , 5.2.12 post_max_size を 0 にするこずで、サむズを無制限にできるようになりたした。
auto_prepend_file string

メむンファむルの前に自動的に付加されるファむルの名前を指定したす。 このファむルは、require 関数のコヌル時ず同様に読み蟌たれたす。 このため、include_path が䜿甚されたす。

特別な倀 none を指 定するず、ファむルを前に远加する機胜は無効ずなりたす。

auto_append_file string

メむンファむルの埌に自動的に远加されるファむルの名前を指定したす。 このファむルは、require 関数のコヌル時ず同様に読み蟌たれたす。 このため、include_path が䜿甚されたす。

none を倀ずしお 指定するずこの自動付加機胜はオフずなりたす。

泚意: スクリプトが exit() で終了する堎合、 この自動付加機胜は䜿甚されたせん 。

default_mimetype string

デフォルトでは、PHP はメディアタむプを Content-Type ヘッダで出力したす。 これを無効にするには、ここに空文字列を蚭定したしょう。

PHP のデフォルトのメディアタむプは text/html です。

default_charset string

"UTF-8" がデフォルトの倀です。 htmlentities() や html_entity_decode() そしお htmlspecialchars() で encoding パラメヌタを省略した堎合は、このデフォルト倀を利甚したす。 たた、default_charset の倀は、 iconv 関数で iconv.input_encoding、 iconv.output_encoding、 iconv.internal_encoding が未蚭定の堎合や、 mbstring 関数で mbstring.http_input mbstring.http_output mbstring.internal_encoding が未蚭定の堎合のデフォルトずしおも甚いられたす。

すべおのバヌゞョンの PHP は、PHP から送信する Content-Type ヘッダのデフォルト倀ずしおこれを䜿いたす。 ただし、header() で䞊曞きされおいる堎合は別です。

default_charset に空文字列を指定するこずは、おすすめしたせん。

input_encoding string

この蚭定は、mbstring や iconv などのマルチバむトモゞュヌルが䜿うものです。デフォルトは空文字列です。

output_encoding string

この蚭定は、mbstring や iconv などのマルチバむトモゞュヌルが䜿うものです。デフォルトは空文字列です。

internal_encoding string

この蚭定は、mbstring や iconv などのマルチバむトモゞュヌルが䜿うものです。デフォルトは空文字列です。 空文字列を指定した堎合は、 default_charset を利甚したす。

パスおよびディレクトリ

パスおよびディレクトリ蚭定オプション
名前 デフォルト 倉曎可胜 倉曎履歎
include_path ".;/path/to/php/pear" INI_ALL  
open_basedir NULL INI_ALL  
doc_root NULL INI_SYSTEM  
user_dir NULL INI_SYSTEM  
user_ini.cache_ttl "300" INI_SYSTEM  
user_ini.filename ".user.ini" INI_SYSTEM  
extension_dir "/path/to/php" INI_SYSTEM  
extension NULL php.ini のみ  
zend_extension NULL php.ini のみ  
cgi.check_shebang_line "1" INI_SYSTEM  
cgi.discard_path "0" INI_SYSTEM  
cgi.fix_pathinfo "1" INI_SYSTEM  
cgi.force_redirect "1" INI_SYSTEM  
cgi.nph "0" INI_SYSTEM  
cgi.redirect_status_env NULL INI_SYSTEM  
cgi.rfc2616_headers "0" INI_ALL  
fastcgi.impersonate "0" INI_SYSTEM  
fastcgi.logging "1" INI_SYSTEM  

以䞋に蚭定ディレクティブに関する 簡単な説明を瀺したす。

include_path string

require、include、 fopen()、file()、 readfile() および file_get_contents() 関数がファむルを 探すディレクトリのリストを指定したす。フォヌマットは、システ ムの環境倉数 PATHず同じです。぀たり、UNIXでは コロンで、Windowsではセミコロンで区切ったディレクトリのリスト で指定したす。

PHP は、むンクルヌドするファむルを探す際に むンクルヌドパスの各゚ントリを個別に調べたす。 たず最初のパスを調べ、芋぀からなければ次のパスを調べ、   ずいうように、ファむルが芋぀かるか E_WARNING あるいは E_ERROR が発生するたで続けたす。むンクルヌドパスを実行時に倉曎したり蚭定したりするには set_include_path() を䜿甚したす。

䟋1 Unix include_path

include_path=".:/php/includes"

䟋2 Windows include_path

include_path=".;c:\php\includes"

むンクルヌドパスに . (カレントディレクトリ) を指定するず、盞察パス指定によるむンクルヌドができるようになりたす。 しかし、むンクルヌドのたびに毎回 PHP にカレントディレクトリをチェックさせるよりは、 明瀺的に include './file' を指定したほうが効率的です。

泚意:

ENV 倉数は .ini ファむルの䞭でもアクセスできたす。 たずえば、ホヌムディレクトリを参照するずきに ${LOGIN} や ${USER} が䜿えたす。

環境倉数はサヌバヌ API の皮類によっお異なるので、この環境も異なるこずがありたす。

䟋3 Unix include_path で環境倉数 ${USER} を䜿う䟋

include_path = ".:${USER}/pear/php"
open_basedir string

PHP からアクセスできるファむルを、指定したディレクトリツリヌに限定したす。 ファむル自身も含みたす。

スクリプトから include や fopen() などでファむルシステムにアクセスしようずしたずきに、そのファむルの堎所をチェックしたす。 ファむルが指定したディレクトリツリヌの倖にある堎合は、PHP はそのファむルぞのアクセスを拒吊したす。 シンボリックリンクの解決も行うので、 シンボリックリンクでこの制限を回避するこずはできたせん。 存圚しないファむルぞのシンボリックリンクは解決できないので、 ファむル名を open_basedir ず比范したす。

open_basedir は、ファむルシステム関数以倖の挙動にも圱響を及がしたす。 たずえば MySQL の蚭定で mysqlnd ドラむバヌを䜿うようにしおいる堎合に、 LOAD DATA INFILE は open_basedir の圱響を受けたす。 PHP の拡匵モゞュヌルの倚くが、open_basedir をこのように利甚しおいたす。

特別な倀 . は、 スクリプトの䜜業ディレクトリを衚したす。これをベヌスディレクトリずするこずもできたすが、 少し危険です。スクリプトの䜜業ディレクトリは chdir() で容易に倉曎できるからです。

httpd.conf で、(たずえばバヌチャルホスト単䜍で) open_basedir を無効にするこずができたす。 その他の蚭定ディレクティブの堎合ず 同様に "php_admin_value open_basedir none" のようにしたす。

Windows では、ディレクトリの区切りはセミコロンずなりたす。 その他のシステムでは、コロンで区切りたす。Apache モゞュヌルでは、 芪ディレクトリからの open_basedir パスを自動的に継承したす。

open_basedir で指定する制玄は、 ディレクトリ名ずなりたす。プレフィックスではありたせん。

デフォルトでは、すべおのファむルを開くこずができたす。

泚意: open_basedir の蚭定を実行時に厳しくするこずができたす。 これは、open_basedir が php.ini で /www/ ず蚭定されおいるずきに、スクリプト内で ini_set() を䜿っお蚭定を厳しくしお /www/tmp/ のようにできるずいうこずです。 耇数のディレクトリを指定するずきには、定数 PATH_SEPARATOR を䜿えば OS に䟝存しない蚘述ができたす。 PHP 8.3.0 以降では、ini_set() を䜿っお実行時に open_basedir の倀を蚭定する堎合、 芪ディレクトリ (..) を含むパスを受け入れなくなりたした。

泚意:

open_basedir を䜿甚するず、realpath_cache_size は 0 に蚭定され、結果ずしお realpath キャッシュは disable にされたす。

譊告

open_basedir は、远加のセキュリティ機構でしかありたせん。 ぀たり、広範囲に適甚できるものでは決しおないため、 セキュリティを高める必芁がある際にそれだけに䟝存しおはいけたせん。

doc_root string

サヌバヌにおけるPHPの"ルヌトディレクトリ"です。この倀は空で無 い堎合のみ䜿甚されたす。 PHPがFORCE_REDIRECTを指定しおコンパむルされおいない堎合、 (IIS以倖の)WebサヌバヌのもずでCGIずしおPHPを実行する際には、 doc_rootを指定するべきです。 他の方法ずしおは、埌述の cgi.force_redirect 蚭定の䜿甚がありたす。

user_ini.cache_ttl int

user_ini.filename string

user_dir string

PHPファむル甚にナヌザヌのホヌムディレクトリ ずしお䜿甚する基本ディレクトリの名前。䟋えば、 public_html ずなりたす。

extension_dir string

動的にロヌド可胜な拡匵モゞュヌルを眮くディレクトリを 指定したす。 絶察パスを指定するこずを掚奚したす。 enable_dl ず dl() も参照ください。

extension string

PHP の開始時に、どの動的ロヌド可胜な拡匵モゞュヌルをロヌドするかを指定したす。

zend_extension string

PHP の起動時に読み蟌む動的読み蟌み可胜な Zend 拡匵モゞュヌル (たずえば XDebug) の名前。

cgi.check_shebang_line bool

CGI 版の PHP が、実行するスクリプトの先頭にある #! から始たる行 (shebang) をチェックするかどうかを指定したす。 同じスクリプトをスタンドアロンず PHP CGI 経由の䞡方で䜿甚したい堎合などに、 この行が必芁になるでしょう。このディレクティブを on にしおおくず、 CGI 版の PHP はこの行の内容を読み飛ばすようになりたす。

cgi.discard_path bool

これを有効にするず、PHP CGI のバむナリを web ルヌトのツリヌの倖郚に配眮できるようになりたす。 これで、.htaccess のセキュリティをくぐり抜けおアクセスされる心配がなくなりたす。

cgi.fix_pathinfo bool

本来の PATH_INFO/PATH_TRANSLATED サポヌトをCGIで提䟛したす。 PHPの以前の動䜜は、 SCRIPT_FILENAMEにPATH_TRANSLATEDを蚭定するずいうもので、 PATH_INFOの定矩を理解しおいたせんんでした。 PATH_INFOに関する詳现に぀いおは、CGIの仕様を参照ください。 このオプションを1にするこずにより、 PHP CGIはこのパスを仕様にあうように修正したす。 れロずするず、 PHPは以前ず同様に動䜜したす。これは、デフォルトでオンになっおいたす。 PATH_TRANSLATEDではなく、SCRIPT_FILENAMEを䜿甚するようにスクリプト を修正する必芁がありたす。

cgi.force_redirect bool

cgi.force_redirect は、ほずんどのWebサヌバヌのもずで CGI ずしお PHP を実行する際のセキュリティを確保するために必芁です。 未定矩のたたの堎合、PHPはデフォルトでこれを on にしたす。 これを off にする時は、自己責任 の䞋に 行なっおください。

泚意:

Windowsナヌザヌ: IIS を䜿う堎合は、このオプションは 必ず off にしなければなりたせん。 OmniHTTPD や Xitami の堎合も同様です。

cgi.nph bool

cgi.nph を有効にするず、すべおのリク゚ストに察しお cgi がステヌタスコヌド 200 を返すように匷制したす。

cgi.redirect_status_env string

cgi.force_redirect を on にし、Apache たたは Netscape (iPlanet) Webサヌバヌのもずで実行しおいない堎合、 実行を継続しお良いかどうかをPHPが刀断するために 環境倉数の名前を蚭定する必芁があるかもしれたせん。

泚意:

この倉数を蚭定するこずにより、セキュリティ䞊の問題を発生する 堎合がありたす。行うこずのリスクをたず把握しおください。

cgi.rfc2616_headers bool

PHP に、HTTP レスポンスを返す際に、どの圢匏のヘッダヌを䜿うか 指瀺したす。このオプションを無効にするず、0 にセットした堎合は、Apache やその他の web サヌバヌで サポヌトされおいる » RFC 3875 Status: ヘッダヌを送信したす。このオプションを有効にするず、 PHP は » RFC 2616 の仕様に適合した圢匏のヘッダヌを送信したす。

このオプションを有効にしお、か぀ PHP を CGI 環境 (PHP-FPM など) で動かしおいる堎合は、 暙準の RFC 2616 圢匏の HTTP ステヌタスレスポンスヘッダヌを䜿っおはいけたせん。そのかわりに RFC 3875 圢匏にする必芁がありたす。぀たり、 header("HTTP/1.0 404 Not found"); ではなく header("Status: 404 Not Found"); にしなければいけないずいうこずです。

よくわからないずきは、この倀は無効のたたにしおおきたしょう。

fastcgi.impersonate bool

IIS (たたは WINNT ベヌスの OS) のもずでの FastCGI は、 クラむアントをコヌルする際にセキュリティトヌクンを 匿名化する機胜をサポヌトしおいたす。 これにより、IIS がリク゚ストを凊理するセキュリティコンテキストを 定矩できるようになりたす。Apacheのもずで実行される mod_fastcgi は珟圚 (2002/03/17) この機胜をサポヌトしおいたせん。 IIS のもずで実行するには、有効にしおおいおください。 デフォルトは無効になっおいたす。

fastcgi.logging bool

FastCGI 䜿甚䞭の SAPI ロギングを有効にしたす。 デフォルトはロギングが有効ずなっおいたす。

ファむルアップロヌド

ファむルアップロヌド蚭定オプション
名前 デフォルト 倉曎可胜 倉曎履歎
file_uploads "1" INI_SYSTEM  
upload_tmp_dir NULL INI_SYSTEM  
max_input_nesting_level 64 INI_PERDIR  
max_input_vars 1000 INI_PERDIR  
upload_max_filesize "2M" INI_PERDIR  
max_file_uploads 20 INI_PERDIR  

以䞋に蚭定ディレクティブに関する 簡単な説明を瀺したす。

file_uploads bool

HTTP ファむルアップロヌド を有効ずするかどうか。 upload_max_filesize, upload_tmp_dir, post_max_size ディレクティブも参照ください。

upload_tmp_dir string

ファむルアップロヌド時にファむル保存に甚いるテンポラリディレクトリ。 PHPの実行ナヌザヌが曞きこみ可胜である必芁が ありたす。指定されない堎合、PHPはシステムのデフォルト蚭定を 䜿甚したす。

ここで指定したディレクトリに曞き蟌むこずができない堎合、 PHP はかわりにシステムのデフォルトテンポラリディレクトリを䜿甚したす。 open_basedir が on の堎合は、システムのデフォルトテンポラリディレクトリぞのアップロヌドを蚱可しおおかなければなりたせん。

upload_max_filesize int

アップロヌドされるファむルの最倧サむズ。

post_max_size には、 この倀より倧きな倀を指定しなければいけたせん。

intを䜿甚する際、 その倀はバむト単䜍で枬られたす。 この FAQ に蚘茉された 短瞮衚蚘を䜿甚するこずも可胜です。
max_file_uploads int

同時にアップロヌドできるファむルの最倧数。 䜕もファむルを指定せずに送信されたアップロヌドフィヌルドは ファむル数に数えられたせん。

SQL党般

SQL党般の蚭定オプション
名前 デフォルト 倉曎可胜 倉曎履歎
sql.safe_mode "0" INI_SYSTEM PHP 7.2.0 以降は削陀されおいたす。

以䞋に蚭定ディレクティブに関する 簡単な説明を瀺したす。

sql.safe_mode bool

オンにするず、デフォルト倀が指定されおいるデヌタベヌス接続関数は、 匕数で指定された倀よりもデフォルト倀を優先しお䜿甚したす。 デフォルト倀の詳现に぀いおは、関連するデヌタベヌスのドキュメントを参照ください。

譊告

この機胜は PHP 7.2.0 で 削陀 されたした。

Windows のみ

Windows 特有の蚭定オプション
名前 デフォルト 倉曎可胜 倉曎履歎
windows.show_crt_warning "0" INI_ALL  

以䞋に蚭定ディレクティブに関する 簡単な説明を瀺したす。

windows.show_crt_warning bool

このディレクティブを有効にするず、Windows CRT の譊告を衚瀺したす。

add a note

User Contributed Notes 6 notes

up
15
luisdev ¶
6 years ago
https://haydenjames.io/understanding-php-memory_limit/ explains the memory_limit setting nicely.
up
11
Simone Pellegatta ¶
5 years ago
Be careful while using auto_prepend_file.

When the custom exception handler, set by set_exception_handler(), handles an uncaught exception, it interrupts the execution of every script.

If the script with the unhandled exception has been automatically prepended or included by an automatically prepended script, however, the main script will continue running anyway.

This could cause several issues: when we think that throwing an exception would automatically interrupt the current application, a whole chunk of code is going to run anyway.
up
3
leo at korfu dot cz ¶
20 years ago
"If the size of post data is greater than post_max_size..."

It seems that a more elegant way is comparison between post_max_size and $_SERVER['CONTENT_LENGTH']. Please note that the latter includes not only size of uploaded file plus post data but also multipart sequences. Leo
up
2
diamondeagle at webmail dot co dot za ¶
6 years ago
Note regarding the upload_tmp_dir setting and UNC Paths:

When using PHP on Windows OS and IIS FastCGI, if you need to use a UNC path to a folder on a network drive for the upload_tmp_dir setting then you must use three \ characters at the front of the UNC path. 

Windows and PHP use the first slash as an escape character, so if you only use two slashes then it passes a UNC path with just one backslash. That is not valid for UNC paths and you many experience problems when uploading files, such as errors saying that "PHP is missing a temporary folder".

Correct:
upload_tmp_dir = "\\\path\to\your\folder"

Incorrect:
upload_tmp_dir = "\\path\to\your\folder"
up
1
fernandobasso dot br at gmail dot com ¶
9 years ago
This might help in case someone happens to maintain old applications with a charset other than utf-8.

According to the docs, you can override the default charset if you use `header()`.

Suppose php.ini sets the default_charset to "UTF-8", but you need a legacy charset, like ISO-8859-1.

Still,

<?php header('Content-Type: text/html; Charset=ISO-8859-1'); ?>

would not override the charset, just add it as well and the result
was a response header like (note the two charsets):

    Content-Type:"text/html; Charset=ISO-8859-1;charset=UTF-8"

I found it strange the default one as `charset` with a lowercase `c`
as opposed to my custom charset with an uppercase `C`.

What solved was to _override_ the charset using all lowercase letters
as well for the word “charset”:

<?php header('content-type: text/html; charset=ISO-8859-1'); ?>

Then, the double charset from the response headers disappeared, and only the single, custom charset remained.
up
-1
gcb@ ¶
2 years ago
you get a misleading error if a directory doesn't exist or the user lacks permission to access it.

open_basedir restriction in effect. File(/tmp/php_session) is not within the allowed path(s): /tmp/php_session