1
0
mirror of https://github.com/php/doc-ja.git synced 2026-03-23 22:52:11 +01:00
Files
archived-doc-ja/appendices/ini.core.xml
Yoshinari Takaoka ec7808c7e3 Improve English grammar for disable_{functions|classes} INI setting
- Clarify type of a few INI values
- [PHP 8.3] Parent dir with open_basedir and ini_set at runtime

a1ab750f29
90787fda14
565582ac37
2025-08-02 21:31:04 +09:00

1836 lines
68 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a1ab750f296de54d79fe3749d5c9164b0593d803 Maintainer: takagi Status: ready -->
<!-- CREDITS: hirokawa,shimooka,mumumu -->
<section xml:id="ini.core" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>コア &php.ini; ディレクティブに関する説明</title>
<para>
このリストには、PHPを設定する際に使用可能なコア &php.ini; ディレクティブが
含まれています。拡張モジュールにより処理されるディレクティブは、それぞれの
拡張モジュールのドキュメントページにリストと詳細が記述されています。
例えば、セッション用ディレクティブに関する情報は、
<link linkend="session.configuration">セッションのページ</link>にあります。
</para>
<note>
<para>
これらのデフォルト値は、&php.ini; が読み込まれなかったときに使われるものです。
運用時と開発時では &php.ini; の値が変わることもあるでしょう。
</para>
</note>
<section xml:id="ini.sect.language-options">
<title>言語オプション</title>
<para>
<table>
<title>言語およびその他の設定オプション</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.short-open-tag">short_open_tag</link></entry>
<entry>"1"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.precision">precision</link></entry>
<entry>"14"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.serialize-precision">serialize_precision</link></entry>
<entry>"-1"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>
 PHP 7.1.0 より前は、デフォルト値は 17 でした。
</entry>
</row>
<row>
<entry><link linkend="ini.disable-functions">disable_functions</link></entry>
<entry>""</entry>
<entry><constant>INI_SYSTEM</constant> のみ</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.disable-classes">disable_classes</link></entry>
<entry>""</entry>
<entry>&php.ini; のみ</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.exit-on-timeout">exit_on_timeout</link></entry>
<entry>""</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.expose-php">expose_php</link></entry>
<entry>"1"</entry>
<entry>&php.ini; のみ</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.hard-timeout">hard_timeout</link></entry>
<entry>"2"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>PHP 7.1.0 以降で利用可能。</entry>
</row>
<row>
<entry><link linkend="ini.zend.exception-ignore-args">zend.exception_ignore_args</link></entry>
<entry>"0"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>PHP 7.4.0 以降で利用可能。</entry>
</row>
<row>
<entry><link linkend="ini.zend.multibyte">zend.multibyte</link></entry>
<entry>"0"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend.script-encoding">zend.script_encoding</link></entry>
<entry>NULL</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend.detect-unicode">zend.detect-unicode</link></entry>
<entry>NULL</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend.signal-check">zend.signal_check</link></entry>
<entry>"0"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend.assertions">zend.assertions</link></entry>
<entry>"1"</entry>
<entry><constant>INI_ALL</constant> (制限あり)</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend.exception-string-param-max-len">zend.exception_string_param_max_len</link></entry>
<entry>"15"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>PHP 8.0.0 以降で利用可能。</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.short-open-tag">
<term>
<parameter>short_open_tag</parameter>
<type>bool</type>
</term>
<listitem>
<para>
PHP タグの短縮型 (<userinput>&lt;? ?&gt;</userinput>) を使用
可能にするかどうかを設定します。PHPをXMLと組み合わせて用いる
場合は、<userinput>&lt;?xml ?&gt;</userinput>をファイル中で用
いるためにこのオプションをオフにする必要があります。オンにし
た場合にPHPでXMLを出力するには、例えば、次のようにします。
<userinput>&lt;?php echo '&lt;?xml version="1.0"?&gt;'; ?&gt;</userinput>
これをオフにした場合、長い方の形式のタグ
(<userinput>&lt;?php ?&gt;</userinput>)を使用する必要があります。
</para>
<note>
<para>
これは、<userinput>&lt;?=</userinput> 記法に影響を与えません。常に有効となります。
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.precision">
<term>
<parameter>precision</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
浮動小数点数に関して表示される最大桁数を指定します。
<literal>-1</literal> は、数値を丸める際に拡張アルゴリズムを用いることを意味します。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.serialize-precision">
<term>
<parameter>serialize_precision</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
浮動小数点数をシリアライズするときに格納する桁数を指定します。
<literal>-1</literal> は、数値を丸める際に拡張アルゴリズムを用いることを意味します。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.expose-php">
<term>
<parameter>expose_php</parameter>
<type>bool</type>
</term>
<listitem>
<para>
PHP がサーバーにインストールされていることを全世界に晒し、PHP のバージョンも
HTTP ヘッダに含めます (X-Powered-By: PHP/5.3.7 など)。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.disable-functions">
<term>
<parameter>disable_functions</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
このディレクティブを使うと、特定の関数を無効にすることができます。
関数名の一覧をカンマ区切りで指定します。
PHP 8.0.0 以降では、関数を無効にすると定義を削除しますが、
ユーザーランドで再定義できます。
PHP 8.0.0 より前のバージョンでは、
関数を無効にすると、その関数は呼び出せませんでした。
</simpara>
<simpara>
このディレクティブを使って無効にできるのは、
<link linkend="functions.internal">内部関数</link> だけです。
<link linkend="functions.user-defined">ユーザー定義関数</link>
は影響を受けません。
</simpara>
<simpara>
このディレクティブは &php.ini; で設定しなければなりません。
&httpd.conf; では設定できません。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.disable-classes">
<term>
<parameter>disable_classes</parameter>
<type>string</type>
</term>
<listitem>
<para>
このディレクティブを使うと、特定のクラスを無効にすることができます。
クラス名の一覧をカンマ区切りで指定します。
クラスを無効にすると、クラスのインスタンス化ができなくなります。
</para>
<para>
このディレクティブを使って無効にできるのは、内部クラスのみです。
ユーザーが定義したクラスは影響を受けません。
</para>
<simpara>
このディレクティブは &php.ini; で設定しなければなりません。
&httpd.conf; では設定できません。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.assertions">
<term>
<parameter>zend.assertions</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
<literal>1</literal> にすると、アサーションのコードを生成して実行します (開発モード)。
<literal>0</literal> にすると、アサーションのコードは生成しますが実行時にはスキップします (実行しません)。
<literal>-1</literal> にすると、アサーションのコードを生成せず、アサーションのコストがゼロになります (実運用モード)。
</simpara>
<note>
<para>
実運用モードで開始したプロセスでは、<link linkend="ini.zend.assertions">zend.assertions</link>
を実行時に変更することはできません。アサーションのコードが生成されていないからです。
</para>
<para>
開発モードで開始したプロセスでは、<link linkend="ini.zend.assertions">zend.assertions</link>
を実行時に <literal>-1</literal> に変更することはできません。
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.exception-string-param-max-len">
<term>
<parameter>zend.exception_string_param_max_len</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
文字列化されたスタックトレース中の、関数の引数の長さの最大値。
<literal>"0"</literal><literal>"1000000"</literal> の間でなければいけません。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.hard-timeout">
<term>
<parameter>hard_timeout</parameter>
<type>int</type>
</term>
<listitem>
<para>
<link linkend="ini.max-execution-time">max_execution_time</link>
で設定されたタイムアウトに達すると、
PHPランタイムはリソースをgracefulに開放します。
リソースを開放する処理が何らかの原因で止まってしまった場合、
hard_timeout のカウントがここで設定した秒数行われます。
hard_timeout のタイムアウトに達すると、
PHP はgracefulにリソースを開放せずに終了します。
この値を 0 に設定すると、この機能は無効になります。
</para>
<para>
PHP が hard timeout で停止すると、
以下のようなメッセージが残るでしょう。
<screen>
<![CDATA[
Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0
]]>
</screen>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.exception-ignore-args">
<term>
<parameter>zend.exception_ignore_args</parameter>
<type>bool</type>
</term>
<listitem>
<para>
例外経由で生成されたスタックトレースから、引数を除外します。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.multibyte">
<term>
<parameter>zend.multibyte</parameter>
<type>bool</type>
</term>
<listitem>
<para>
マルチバイトエンコーディングで書かれたソースファイルをパースできるようにします。
zend.multibyte を有効にしないと、マルチバイト文字データの中に特殊文字を含むエンコーディング
(SJIS や BIG5 など) を使えません。
ISO-8859-1 互換のエンコーディングである UTF-8 や
EUC などを使う場合は、このオプションは不要です。
</para>
<para>
zend.multibyte を有効にしたい場合は、mbstring 拡張モジュールを有効にしなければいけません。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.script-encoding">
<term>
<parameter>zend.script_encoding</parameter>
<type>string</type>
</term>
<listitem>
<para>
この値を使うのは、
<link linkend="control-structures.declare.encoding">declare(encoding=...)</link>
ディレクティブがスクリプトの先頭に存在しない場合です。
ISO-8859-1 非互換のエンコーディングを使う場合は、
zend.multibyte と zend.script_encoding を両方とも指定する必要があります。
</para>
<para>
リテラル文字列は、zend.script_encoding から
mbstring.internal_encoding に変換されます。
<function>mb_convert_encoding</function> が呼ばれたときと同じです。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.detect-unicode">
<term>
<parameter>zend.detect_unicode</parameter>
<type>bool</type>
</term>
<listitem>
<para>
BOM (Byte Order Mark) を調べ、
ファイルが有効なマルチバイト文字を含むかどうかを確認します。
この検出は、
<function>__halt_compiler</function> の処理より前に行われます。
Zend Multibyte モードでのみ利用可能です。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.signal-check">
<term>
<parameter>zend.signal_check</parameter>
<type>bool</type>
</term>
<listitem>
<para>
置き換えられたシグナルハンドラを、シャットダウン時にチェックします。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.exit-on-timeout">
<term>
<parameter>exit_on_timeout</parameter>
<type>bool</type>
</term>
<listitem>
<para>
これは Apache1 の mod_php だけで使える項目で、PHP の実行タイムアウトが発生したときに
Apache の子プロセスを強制終了させます。このタイムアウトがおこると Apache1
の内部で longjmp() がコールされ、その結果としていくつかの拡張モジュールが一貫性を欠く状態になってしまいます。
プロセスを強制終了させることで、未処理のロックやメモリの後始末も行います。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<section xml:id="ini.sect.resource-limits">
<title>リソース制限</title>
<para>
<table>
<title>リソース制限</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.memory-limit">memory_limit</link></entry>
<entry>"128M"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.memory-limit">
<term>
<parameter>memory_limit</parameter>
<type>int</type>
</term>
<listitem>
<para>
スクリプトが確保できる最大メモリをバイト数で指定します。この命令は、
正しく書かれていないスクリプトがサーバーのメモリを食いつぶすことを防止するのに役立ちます。
もし、使用可能メモリに制限を設けたくない場合は、
ここに <literal>-1</literal> を指定してください。
</para>
&ini.shorthandbytes;
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
<link linkend="ini.max-execution-time">max_execution_time</link>
も参照ください。
</para>
</section>
<section xml:id="ini.sect.performance">
<title>パフォーマンスチューニング</title>
<para>
<table>
<title>パフォーマンスチューニング</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.realpath-cache-size">realpath_cache_size</link></entry>
<entry>"4M"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>
PHP 7.0.16 および 7.1.2 より前のバージョンでは、
デフォルト値は <literal>"16K"</literal> でした。
</entry>
</row>
<row>
<entry><link linkend="ini.realpath-cache-ttl">realpath_cache_ttl</link></entry>
<entry>"120"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<para>
<link linkend="ini.open-basedir">open_basedir</link> を使用すると、
realpath キャッシュが <emphasis>disable</emphasis> にされます。
</para>
</note>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.realpath-cache-size">
<term>
<parameter>realpath_cache_size</parameter>
<type>int</type>
</term>
<listitem>
<para>
PHP が使用する realpath キャッシュの大きさを設定します。
PHP で大量にファイルをオープンする際に、
この値を大きくすることによってファイル操作のパフォーマンスを
向上させます。
</para>
<para>
このサイズが表すのは、格納するパス文字列の総バイト数と、
キャッシュエントリに関連づけるデータのサイズを足したものです。
つまり、長いパスをキャッシュに格納するには、キャッシュのサイズを大きくしなければいけません。
この値を使って、最大何件のパスをキャッシュするのかを制御することはできません。
</para>
<para>
キャッシュエントリのデータに必要なサイズは、システムによって変わります。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.realpath-cache-ttl">
<term>
<parameter>realpath_cache_ttl</parameter>
<type>int</type>
</term>
<listitem>
<para>
与えられたファイルやディレクトリについての realpath
情報キャッシュの有効期限を (秒単位で) 設定します。
ファイルを変更することがほとんどない場合は、
この値を大きくすることを検討してください。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<section xml:id="ini.sect.data-handling">
<title>データ処理</title>
<para>
<table>
<title>データ処理設定オプション</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.arg-separator.output">arg_separator.output</link></entry>
<entry>"&amp;"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.arg-separator.input">arg_separator.input</link></entry>
<entry>"&amp;"</entry>
<entry><constant>INI_SYSTEM</constant>|<constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.variables-order">variables_order</link></entry>
<entry>"EGPCS"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.request-order">request_order</link></entry>
<entry>""</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.auto-globals-jit">auto_globals_jit</link></entry>
<entry>"1"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.register-argc-argv">register_argc_argv</link></entry>
<entry>"1"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.enable-post-data-reading">enable_post_data_reading</link></entry>
<entry>"1"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.post-max-size">post_max_size</link></entry>
<entry>"8M"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.auto-prepend-file">auto_prepend_file</link></entry>
<entry>""</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.auto-append-file">auto_append_file</link></entry>
<entry>""</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.default-mimetype">default_mimetype</link></entry>
<entry>"text/html"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.default-charset">default_charset</link></entry>
<entry>"UTF-8"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.input-encoding">input_encoding</link></entry>
<entry>""</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.output-encoding">output_encoding</link></entry>
<entry>""</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.internal-encoding">internal_encoding</link></entry>
<entry>""</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.arg-separator.output">
<term>
<parameter>arg_separator.output</parameter>
<type>string</type>
</term>
<listitem>
<para>
PHPがURLを生成する際にURL引数を区分するために使用されるセパレータ。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.arg-separator.input">
<term>
<parameter>arg_separator.input</parameter>
<type>string</type>
</term>
<listitem>
<para>
入力されたURLを変数にパースする際にPHPが使用するセパレータのリスト。
</para>
<note>
<para>
このディレクティブで指定した全ての文字は、
セパレータとして認識されます!
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.variables-order">
<term>
<parameter>variables_order</parameter>
<type>string</type>
</term>
<listitem>
<para>
EGPCS (<literal>E</literal>nvironment (環境変数)、
<literal>G</literal>et、<literal>P</literal>ost、
<literal>C</literal>ookie (クッキー)、そして <literal>S</literal>erver)
変数のパースの順番を設定します。例えば
variables_order を <literal>"SP"</literal>
に設定すると、PHP は
&link.superglobals; <varname>$_SERVER</varname> および
<varname>$_POST</varname> を作成しますが、
<varname>$_ENV</varname><varname>$_GET</varname> および
<varname>$_COOKIE</varname> は作成しません。""
に設定すると、一切 &link.superglobals; を設定しません。
</para>
<warning>
<para>
CGI および FastCGI SAPI の両方で、
<varname>$_SERVER</varname>
にも環境変数の値が格納されます。
つまり、<literal>S</literal> を指定すると、
<literal>ES</literal> と指定したのと同じ意味になります。
これは、<literal>E</literal> が他のどこかで指定されていたとしても同じです。
</para>
</warning>
<note>
<para>
<varname>$_REQUEST</varname>
の内容や順序も、このディレクティブの影響を受けます。
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.request-order">
<term>
<parameter>request_order</parameter>
<type>string</type>
</term>
<listitem>
<para>
このディレクティブは、PHP が GET 変数や POST 変数そしてクッキー変数を
_REQUEST 配列に登録する際の順序を表します。
登録は左から右の順に行い、後から登録した値が古い値を上書きします。
</para>
<para>
このディレクティブが設定されていない場合は、<link
linkend="ini.variables-order">variables_order</link>
を使用して <varname>$_REQUEST</varname> を設定します。
</para>
<para>
デフォルトの配布状態の <filename>php.ini</filename> ファイルには、クッキーの
<literal>'C'</literal> が含まれていないことに注意しましょう。
セキュリティを考慮したためです。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.auto-globals-jit">
<term>
<parameter>auto_globals_jit</parameter>
<type>bool</type>
</term>
<listitem>
<para>
有効にした場合、SERVER、REQUEST および ENV 変数はスクリプトの開始時ではなく、
最初に使用された時 (Just In Time) に作成されるようになります。
これらの変数がスクリプトの中で使用されない場合、
このディレクティブを使用することで性能が向上します。
</para>
<warning>
<para>
SERVER、REQUEST および ENV 変数の利用チェックはコンパイル時に行われます。
したがって、たとえば <link
linkend="language.variables.variable">可変変数</link>
で使用した場合は初期化を行いません。
</para>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.register-argc-argv">
<term>
<parameter>register_argc_argv</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
PHPが変数argvとargcを宣言するかどうかを指定します
(これらにはGETの情報が格納されます)。
</simpara>
<simpara>
<link linkend="features.commandline">コマンドライン</link>
も参照ください。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.enable-post-data-reading">
<term>
<parameter>enable_post_data_reading</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
このオプションを無効にすると、<varname>$_POST</varname>
<varname>$_FILES</varname> に値が入らなくなります。
この場合、投稿されたデータを読むには、ストリームラッパー
<link linkend="wrappers.php">php://input</link> を使う以外の方法はなくなります。
これは、リクエストをプロキシしたり
POST データを処理する際のメモリ消費量を抑えたりする際に有用です。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.post-max-size">
<term>
<parameter>post_max_size</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
POSTデータに許可される最大サイズを設定します。この設定は、ファ
イルアップロードにも影響します。大きなファイルをアップロード
するには、この値を <link
linkend="ini.upload-max-filesize">upload_max_filesize</link>
より大きく設定する必要があります。
</simpara>
<simpara>
一般的に <link
linkend="ini.memory-limit">memory_limit</link> は、
<parameter>post_max_size</parameter>よりも大きく
する必要があります。
</simpara>
&ini.shorthandbytes;
<simpara>
POSTデータの大きさが、post_max_sizeより大きい場合、
<varname>$_POST</varname><varname>$_FILES</varname>
<link linkend="language.variables.superglobals">スーパーグローバル</link>
は空になります。この事象は、いくつかの方法で検出することができます。
例えば、<varname>$_GET</varname> 変数をデータを
<literal>&lt;form action="edit.php?processed=1"&gt;</literal>のように
処理するスクリプトに渡し、
<varname>$_GET['processed']</varname> が設定されているかどうかを
確認する方法があります。
</simpara>
<para>
<note>
<para>
PHP では、バイト値を表すショートカット K (kilo)、M (mega) および
G (giga) を使用することができます。
これらを使用した場合、PHP が規約にしたがって自動的に値を判断します。
32 ビット符号付き整数の最大値を上回る値を指定しないように注意しましょう
(32 ビットシステムを使用している場合)。
そのようなことをすると、スクリプトの実行が失敗します。
</para>
</note>
</para>
<para>
<table>
<title><literal>post_max_size</literal> の変更履歴</title>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>5.3.4</entry>
<entry>
コンテンツタイプが application/x-www-form-urlencoded であったり、あるいは PHP に登録されていないものであった場合は、
<parameter>post_max_size</parameter> = 0 にしても上限を無効にできなくなりました。
</entry>
</row>
<row>
<entry>5.3.2 , 5.2.12</entry>
<entry>
<parameter>post_max_size</parameter> を 0 にすることで、サイズを無制限にできるようになりました。
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.auto-prepend-file">
<term>
<parameter>auto_prepend_file</parameter>
<type>string</type>
</term>
<listitem>
<para>
メインファイルの前に自動的に付加されるファイルの名前を指定します。
このファイルは、<function>require</function> 関数のコール時と同様に読み込まれます。
このため、<link linkend="ini.include-path">include_path</link>
が使用されます。
</para>
<para>
特別な値 <constant>none</constant> を指
定すると、ファイルを前に追加する機能は無効となります。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.auto-append-file">
<term>
<parameter>auto_append_file</parameter>
<type>string</type>
</term>
<listitem>
<para>
メインファイルの後に自動的に追加されるファイルの名前を指定します。
このファイルは、<function>require</function> 関数のコール時と同様に読み込まれます。
このため、<link linkend="ini.include-path">include_path</link>
が使用されます。
</para>
<para>
<constant>none</constant> を値として
指定するとこの自動付加機能はオフとなります。
<note>
<simpara>
スクリプトが <function>exit</function> で終了する場合、
この自動付加機能は使用されません 。
</simpara>
</note>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.default-mimetype">
<term>
<parameter>default_mimetype</parameter>
<type>string</type>
</term>
<listitem>
<para>
デフォルトでは、PHP はメディアタイプを Content-Type ヘッダで出力します。
これを無効にするには、ここに空文字列を設定しましょう。
</para>
<para>
PHP のデフォルトのメディアタイプは text/html です。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.default-charset">
<term>
<parameter>default_charset</parameter>
<type>string</type>
</term>
<listitem>
<para>
"UTF-8" がデフォルトの値です。
<function>htmlentities</function>
<function>html_entity_decode</function> そして
<function>htmlspecialchars</function>
<parameter>encoding</parameter> パラメータを省略した場合は、このデフォルト値を利用します。
また、<parameter>default_charset</parameter> の値は、
<link linkend="book.iconv">iconv</link> 関数で
<link linkend="ini.iconv.input-encoding"><parameter>iconv.input_encoding</parameter></link>
<link linkend="ini.iconv.output-encoding"><parameter>iconv.output_encoding</parameter></link>
<link linkend="ini.iconv.internal-encoding"><parameter>iconv.internal_encoding</parameter></link>
が未設定の場合や、
<link linkend="book.mbstring">mbstring</link> 関数で
<link linkend="ini.mbstring.http-input"><parameter>mbstring.http_input</parameter></link>
<link linkend="ini.mbstring.http-output"><parameter>mbstring.http_output</parameter></link>
<link linkend="ini.mbstring.internal-encoding"><parameter>mbstring.internal_encoding</parameter></link>
が未設定の場合のデフォルトとしても用いられます。
</para>
<para>
すべてのバージョンの PHP は、PHP から送信する Content-Type ヘッダのデフォルト値としてこれを使います。
ただし、<function>header</function> で上書きされている場合は別です。
</para>
<para>
<parameter>default_charset</parameter> に空文字列を指定することは、おすすめしません。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.input-encoding">
<term>
<parameter>input_encoding</parameter>
<type>string</type>
</term>
<listitem>
<para>
この設定は、mbstring や iconv などのマルチバイトモジュールが使うものです。デフォルトは空文字列です。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.output-encoding">
<term>
<parameter>output_encoding</parameter>
<type>string</type>
</term>
<listitem>
<para>
この設定は、mbstring や iconv などのマルチバイトモジュールが使うものです。デフォルトは空文字列です。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.internal-encoding">
<term>
<parameter>internal_encoding</parameter>
<type>string</type>
</term>
<listitem>
<para>
この設定は、mbstring や iconv などのマルチバイトモジュールが使うものです。デフォルトは空文字列です。
空文字列を指定した場合は、
<link linkend="ini.default-charset">default_charset</link> を利用します。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<section xml:id="ini.sect.path-directory">
<title>パスおよびディレクトリ</title>
<para>
<table>
<title>パスおよびディレクトリ設定オプション</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.include-path">include_path</link></entry>
<entry>".;/path/to/php/pear"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.open-basedir">open_basedir</link></entry>
<entry>NULL</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.doc-root">doc_root</link></entry>
<entry>NULL</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.user-dir">user_dir</link></entry>
<entry>NULL</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.user-ini.cache-ttl">user_ini.cache_ttl</link></entry>
<entry>"300"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.user-ini.filename">user_ini.filename</link></entry>
<entry>".user.ini"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.extension-dir">extension_dir</link></entry>
<entry>"/path/to/php"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.extension">extension</link></entry>
<entry>NULL</entry>
<entry>&php.ini; のみ</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend-extension">zend_extension</link></entry>
<entry>NULL</entry>
<entry>&php.ini; のみ</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.check-shebang-line">cgi.check_shebang_line</link></entry>
<entry>"1"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.discard-path">cgi.discard_path</link></entry>
<entry>"0"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.fix-pathinfo">cgi.fix_pathinfo</link></entry>
<entry>"1"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.force-redirect">cgi.force_redirect</link></entry>
<entry>"1"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.nph">cgi.nph</link></entry>
<entry>"0"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.redirect-status-env">cgi.redirect_status_env</link></entry>
<entry>NULL</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.rfc2616-headers">cgi.rfc2616_headers</link></entry>
<entry>"0"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.fastcgi.impersonate">fastcgi.impersonate</link></entry>
<entry>"0"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.fastcgi.logging">fastcgi.logging</link></entry>
<entry>"1"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.include-path">
<term>
<parameter>include_path</parameter>
<type>string</type>
</term>
<listitem>
<para>
<function>require</function><function>include</function>
<function>fopen</function><function>file</function>
<function>readfile</function> および <function>file_get_contents</function>
関数がファイルを
探すディレクトリのリストを指定します。フォーマットは、システ
ムの環境変数 <envar>PATH</envar>と同じです。つまり、UNIXでは
コロンで、Windowsではセミコロンで区切ったディレクトリのリスト
で指定します。
</para>
<para>
PHP は、インクルードするファイルを探す際に
インクルードパスの各エントリを個別に調べます。
まず最初のパスを調べ、見つからなければ次のパスを調べ、……
というように、ファイルが見つかるか
<constant>E_WARNING</constant>
あるいは <constant>E_ERROR</constant>
が発生するまで続けます。インクルードパスを実行時に変更したり設定したりするには
<function>set_include_path</function> を使用します。
</para>
<para>
<example>
<title>Unix include_path</title>
<programlisting role="php.ini">
<![CDATA[
include_path=".:/php/includes"
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Windows include_path</title>
<programlisting role="php.ini">
<![CDATA[
include_path=".;c:\php\includes"
]]>
</programlisting>
</example>
</para>
<para>
インクルードパスに <literal>.</literal> (カレントディレクトリ)
を指定すると、相対パス指定によるインクルードができるようになります。
しかし、インクルードのたびに毎回 PHP にカレントディレクトリをチェックさせるよりは、
明示的に <literal>include './file'</literal> を指定したほうが効率的です。
</para>
<note>
<para>
<literal>ENV</literal> 変数は .ini ファイルの中でもアクセスできます。
たとえば、ホームディレクトリを参照するときに
<literal>${LOGIN}</literal><literal>${USER}</literal> が使えます。
</para>
<para>
環境変数はサーバー API の種類によって異なるので、この環境も異なることがあります。
</para>
</note>
<para>
<example>
<title>Unix include_path で環境変数 ${USER} を使う例</title>
<programlisting role="php.ini">
<![CDATA[
include_path = ".:${USER}/pear/php"
]]>
</programlisting>
</example>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.open-basedir">
<term>
<parameter>open_basedir</parameter>
<type>string</type>
</term>
<listitem>
<para>
PHP からアクセスできるファイルを、指定したディレクトリツリーに限定します。
ファイル自身も含みます。
</para>
<para>
スクリプトから
<function>include</function><function>fopen</function>
などでファイルシステムにアクセスしようとしたときに、そのファイルの場所をチェックします。
ファイルが指定したディレクトリツリーの外にある場合は、PHP
はそのファイルへのアクセスを拒否します。
シンボリックリンクの解決も行うので、
シンボリックリンクでこの制限を回避することはできません。
存在しないファイルへのシンボリックリンクは解決できないので、
ファイル名を <option>open_basedir</option> と比較します。
</para>
<para>
<option>open_basedir</option> は、ファイルシステム関数以外の挙動にも影響を及ぼします。
たとえば <literal>MySQL</literal> の設定で <literal>mysqlnd</literal> ドライバーを使うようにしている場合に、
<literal>LOAD DATA INFILE</literal><option>open_basedir</option> の影響を受けます。
PHP の拡張モジュールの多くが、<literal>open_basedir</literal> をこのように利用しています。
</para>
<para>
特別な値 <systemitem class="filesystem">.</systemitem> は、
スクリプトの作業ディレクトリを表します。これをベースディレクトリとすることもできますが、
少し危険です。スクリプトの作業ディレクトリは
<function>chdir</function> で容易に変更できるからです。
</para>
<para>
<filename>httpd.conf</filename> で、(たとえばバーチャルホスト単位で)
<option>open_basedir</option> を無効にすることができます。
その他の設定ディレクティブの場合と
<link linkend="configuration.changes.apache">同様</link>
"<literal>php_admin_value open_basedir
none</literal>" のようにします。
</para>
<para>
Windows では、ディレクトリの区切りはセミコロンとなります。
その他のシステムでは、コロンで区切ります。Apache モジュールでは、
親ディレクトリからの <option>open_basedir</option>
パスを自動的に継承します。
</para>
<para>
<option>open_basedir</option> で指定する制約は、
ディレクトリ名となります。プレフィックスではありません。
</para>
<para>
デフォルトでは、すべてのファイルを開くことができます。
</para>
<note>
<simpara>
open_basedir の設定を実行時に厳しくすることができます。
これは、open_basedir が &php.ini;<literal>/www/</literal>
と設定されているときに、スクリプト内で
<function>ini_set</function> を使って設定を厳しくして
<literal>/www/tmp/</literal> のようにできるということです。
複数のディレクトリを指定するときには、定数 <constant>PATH_SEPARATOR</constant>
を使えば OS に依存しない記述ができます。
</simpara>
<simpara>
PHP 8.3.0 以降では、<function>ini_set</function>
を使って実行時に <option>open_basedir</option> の値を設定する場合、
親ディレクトリ (<literal>..</literal>) を含むパスを受け入れなくなりました。
</simpara>
</note>
<note>
<para>
open_basedir を使用すると、<link linkend="ini.realpath-cache-size">realpath_cache_size</link> は
<literal>0</literal> に設定され、結果として realpath キャッシュは <emphasis>disable</emphasis> にされます。
</para>
</note>
<caution>
<para>
<literal>open_basedir</literal> は、追加のセキュリティ機構でしかありません。
つまり、広範囲に適用できるものでは決してないため、
セキュリティを高める必要がある際にそれだけに依存してはいけません。
</para>
</caution>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.doc-root">
<term>
<parameter>doc_root</parameter>
<type>string</type>
</term>
<listitem>
<para>
サーバーにおけるPHPの"ルートディレクトリ"です。この値は空で無
い場合のみ使用されます。
PHPがFORCE_REDIRECTを指定してコンパイルされていない場合、
(IIS以外の)WebサーバーのもとでCGIとしてPHPを実行する際には、
doc_rootを指定するべきです。
他の方法としては、後述の <link linkend="ini.cgi.force-redirect">
cgi.force_redirect</link> 設定の使用があります。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.user-ini.cache-ttl">
<term>
<parameter>user_ini.cache_ttl</parameter>
<type>int</type>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.user-ini.filename">
<term>
<parameter>user_ini.filename</parameter>
<type>string</type>
</term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.user-dir">
<term>
<parameter>user_dir</parameter>
<type>string</type>
</term>
<listitem>
<para>
PHPファイル用にユーザーのホームディレクトリ
として使用する基本ディレクトリの名前。例えば、
<literal>public_html</literal> となります。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.extension-dir">
<term>
<parameter>extension_dir</parameter>
<type>string</type>
</term>
<listitem>
<para>
動的にロード可能な拡張モジュールを置くディレクトリを
指定します。
絶対パスを指定することを推奨します。
<link linkend="ini.enable-dl">enable_dl</link>
<function>dl</function> も参照ください。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.extension">
<term>
<parameter>extension</parameter>
<type>string</type>
</term>
<listitem>
<para>
PHP の開始時に、どの動的ロード可能な拡張モジュールをロードするかを指定します。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend-extension">
<term>
<parameter>zend_extension</parameter>
<type>string</type>
</term>
<listitem>
<para>
PHP の起動時に読み込む動的読み込み可能な Zend 拡張モジュール (たとえば XDebug) の名前。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.cgi.check-shebang-line">
<term>
<parameter>cgi.check_shebang_line</parameter>
<type>bool</type>
</term>
<listitem>
<para>
<acronym>CGI</acronym> 版の PHP が、実行するスクリプトの先頭にある <literal>#!</literal> から始まる行
(shebang) をチェックするかどうかを指定します。
同じスクリプトをスタンドアロンと PHP <acronym>CGI</acronym> 経由の両方で使用したい場合などに、
この行が必要になるでしょう。このディレクティブを on にしておくと、
<acronym>CGI</acronym> 版の PHP はこの行の内容を読み飛ばすようになります。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.cgi.discard-path">
<term>
<parameter>cgi.discard_path</parameter>
<type>bool</type>
</term>
<listitem>
<para>
これを有効にすると、PHP CGI のバイナリを web ルートのツリーの外部に配置できるようになります。
これで、.htaccess のセキュリティをくぐり抜けてアクセスされる心配がなくなります。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.cgi.fix-pathinfo">
<term>
<parameter>cgi.fix_pathinfo</parameter>
<type>bool</type>
</term>
<listitem>
<para>
<emphasis>本来の</emphasis> <literal>PATH_INFO</literal>/<literal>PATH_TRANSLATED</literal>
サポートを<acronym>CGI</acronym>で提供します。 PHPの以前の動作は、
<literal>SCRIPT_FILENAME</literal><literal>PATH_TRANSLATED</literal>を設定するというもので、
<literal>PATH_INFO</literal>の定義を理解していませんんでした。
<literal>PATH_INFO</literal>に関する詳細については、<acronym>CGI</acronym>の仕様を参照ください。
このオプションを<literal>1</literal>にすることにより、
PHP <acronym>CGI</acronym>はこのパスを仕様にあうように修正します。
ゼロとすると、 PHPは以前と同様に動作します。これは、デフォルトでオンになっています。
<literal>PATH_TRANSLATED</literal>ではなく、<literal>SCRIPT_FILENAME</literal>を使用するようにスクリプト
を修正する必要があります。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.cgi.force-redirect">
<term>
<parameter>cgi.force_redirect</parameter>
<type>bool</type>
</term>
<listitem>
<para>
cgi.force_redirect は、ほとんどのWebサーバーのもとで <acronym>CGI</acronym> として
PHP を実行する際のセキュリティを確保するために必要です。
未定義のままの場合、PHPはデフォルトでこれを on にします。
これを off にする時は、<emphasis>自己責任</emphasis> の下に
行なってください。
</para>
<note>
<para>
Windowsユーザー: IIS を使う場合は、このオプションは
<emphasis>必ず</emphasis> off にしなければなりません。
OmniHTTPD や Xitami の場合も同様です。
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.cgi.nph">
<term>
<parameter>cgi.nph</parameter>
<type>bool</type>
</term>
<listitem>
<para>
cgi.nph を有効にすると、すべてのリクエストに対して
cgi がステータスコード 200 を返すように強制します。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.cgi.redirect-status-env">
<term>
<parameter>cgi.redirect_status_env</parameter>
<type>string</type>
</term>
<listitem>
<para>
cgi.force_redirect を on にし、Apache または Netscape
(iPlanet) Webサーバーのもとで実行していない場合、
実行を継続して良いかどうかをPHPが判断するために
環境変数の名前を設定する必要があるかもしれません。
</para>
<note>
<para>
この変数を設定することにより、セキュリティ上の問題を発生する
場合があります。行うことのリスクをまず把握してください。
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.cgi.rfc2616-headers">
<term>
<parameter>cgi.rfc2616_headers</parameter>
<type>bool</type>
</term>
<listitem>
<para>
PHP に、HTTP レスポンスを返す際に、どの形式のヘッダーを使うか
指示します。このオプションを無効にすると、0 にセットした場合は、Apache やその他の web サーバーで
サポートされている <link xlink:href="&url.rfc;3875">RFC 3875</link> Status: ヘッダーを送信します。このオプションを有効にすると、
PHP は <link xlink:href="&url.rfc;2616">RFC 2616</link>
の仕様に適合した形式のヘッダーを送信します。
</para>
<para>
このオプションを有効にして、かつ PHP を CGI 環境 (PHP-FPM など) で動かしている場合は、
標準の RFC 2616 形式の HTTP ステータスレスポンスヘッダーを使ってはいけません。そのかわりに
RFC 3875 形式にする必要があります。つまり、 header("HTTP/1.0 404 Not found"); ではなく
header("Status: 404 Not Found"); にしなければいけないということです。
</para>
<para>
よくわからないときは、この値は無効のままにしておきましょう。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.fastcgi.impersonate">
<term>
<parameter>fastcgi.impersonate</parameter>
<type>bool</type>
</term>
<listitem>
<para>
IIS (または WINNT ベースの OS) のもとでの FastCGI は、
クライアントをコールする際にセキュリティトークンを
匿名化する機能をサポートしています。
これにより、IIS がリクエストを処理するセキュリティコンテキストを
定義できるようになります。Apacheのもとで実行される
mod_fastcgi は現在 (2002/03/17) この機能をサポートしていません。
IIS のもとで実行するには、有効にしておいてください。
デフォルトは無効になっています。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.fastcgi.logging">
<term>
<parameter>fastcgi.logging</parameter>
<type>bool</type>
</term>
<listitem>
<para>
FastCGI 使用中の SAPI ロギングを有効にします。
デフォルトはロギングが有効となっています。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<section xml:id="ini.sect.file-uploads">
<title>ファイルアップロード</title>
<para>
<table>
<title>ファイルアップロード設定オプション</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.file-uploads">file_uploads</link></entry>
<entry>"1"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.upload-tmp-dir">upload_tmp_dir</link></entry>
<entry>NULL</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.max-input-nesting-level">max_input_nesting_level</link></entry>
<entry>64</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.max-input-vars">max_input_vars</link></entry>
<entry>1000</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.upload-max-filesize">upload_max_filesize</link></entry>
<entry>"2M"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.max-file-uploads">max_file_uploads</link></entry>
<entry>20</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.file-uploads">
<term>
<parameter>file_uploads</parameter>
<type>bool</type>
</term>
<listitem>
<para>
HTTP <link linkend="features.file-upload">ファイルアップロード</link>
を有効とするかどうか。
<link linkend="ini.upload-max-filesize">upload_max_filesize</link>,
<link linkend="ini.upload-tmp-dir">upload_tmp_dir</link>,
<link linkend="ini.post-max-size">post_max_size</link>
ディレクティブも参照ください。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.upload-tmp-dir">
<term>
<parameter>upload_tmp_dir</parameter>
<type>string</type>
</term>
<listitem>
<para>
ファイルアップロード時にファイル保存に用いるテンポラリディレクトリ。
PHPの実行ユーザーが書きこみ可能である必要が
あります。指定されない場合、PHPはシステムのデフォルト設定を
使用します。
</para>
<para>
ここで指定したディレクトリに書き込むことができない場合、
PHP はかわりにシステムのデフォルトテンポラリディレクトリを使用します。
<link linkend="ini.open-basedir">open_basedir</link> が on
の場合は、システムのデフォルトテンポラリディレクトリへのアップロードを許可しておかなければなりません。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.upload-max-filesize">
<term>
<parameter>upload_max_filesize</parameter>
<type>int</type>
</term>
<listitem>
<para>
アップロードされるファイルの最大サイズ。
</para>
<para>
<link linkend="ini.post-max-size">post_max_size</link> には、
この値より大きな値を指定しなければいけません。
</para>
&ini.shorthandbytes;
</listitem>
</varlistentry>
<varlistentry xml:id="ini.max-file-uploads">
<term>
<parameter>max_file_uploads</parameter>
<type>int</type>
</term>
<listitem>
<para>
同時にアップロードできるファイルの最大数。
何もファイルを指定せずに送信されたアップロードフィールドは
ファイル数に数えられません。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<section xml:id="ini.sect.sql-general">
<title>SQL全般</title>
<para>
<table>
<title>SQL全般の設定オプション</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.sql.safe-mode">sql.safe_mode</link></entry>
<entry>"0"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>PHP 7.2.0 以降は削除されています。</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.sql.safe-mode">
<term>
<parameter>sql.safe_mode</parameter>
<type>bool</type>
</term>
<listitem>
<para>
オンにすると、デフォルト値が指定されているデータベース接続関数は、
引数で指定された値よりもデフォルト値を優先して使用します。
デフォルト値の詳細については、関連するデータベースのドキュメントを参照ください。
</para>
<warning>
<simpara>
この機能は PHP 7.2.0 で <emphasis>削除</emphasis> されました。
</simpara>
</warning>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<section xml:id="ini.sect.windows">
<title>Windows のみ</title>
<para>
<table>
<title>Windows 特有の設定オプション</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.windows-show-crt-warning">windows.show_crt_warning</link></entry>
<entry>"0"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.windows-show-crt-warning">
<term>
<parameter>windows.show_crt_warning</parameter>
<type>bool</type>
</term>
<listitem>
<para>
このディレクティブを有効にすると、Windows CRT の警告を表示します。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->