<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/configuration.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'uk',
  ),
  'this' => 
  array (
    0 => 'configuration.file.php',
    1 => 'Файл конфігурації',
    2 => 'Файл конфігурації',
  ),
  'up' => 
  array (
    0 => 'configuration.php',
    1 => 'Конфігурація під час запуску',
  ),
  'prev' => 
  array (
    0 => 'configuration.php',
    1 => 'Конфігурація під час запуску',
  ),
  'next' => 
  array (
    0 => 'configuration.file.per-user.php',
    1 => '.user.ini (додаткові конфіг-файли)',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'uk',
    'path' => 'install/ini.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="configuration.file" class="sect1">
  <h2 class="title">Файл конфігурації</h2>
  
  <p class="simpara">
   Файл конфігурації (<var class="filename">php.ini</var>) читається під час запуску PHP. Для версії PHP,
   яка запускається як модуль, це відбувається тільки під час старту веб-сервера.
   Для випадку, коли PHP використовується як <abbr title="Common Gateway Interface">CGI</abbr> або як
   <abbr title="Command Line Interpreter/Interface">CLI</abbr>, це відбувається під час кожного запуску.
  </p>
  <p class="para">
   <var class="filename">php.ini</var> шукається в наступних розташуваннях (за таким порядком):
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      Спеціальне розташування модуля SAPI (визначається директивою
      <code class="literal">PHPIniDir</code> в Apache 2, параметром <code class="literal">-c</code>
      в командному рядку в CGI та CLI).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Змінна оточення <var class="varname">PHPRC</var>.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Розташування файлу <code class="literal">php.ini</code> можна визначати для кожної
      версії PHP окремо. Корінь ключів регістру залежить від розрядності ОС та
      PHP. Для 32-бітного PHP у 32-бітній ОС чи 64-бітного PHP у 64-бітній ОС
      використовується <code class="literal">[(HKEY_LOCAL_MACHINE\SOFTWARE\PHP]</code>,
      натомість для 32-бітних версій PHP у 64-бітній ОС використовується
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]</code>].
      Коли розрядність співпадає, ключі регістру обробляються в такому порядку:
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z]</code>,
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y]</code> та
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x]</code>, де x, y та z
      означають мажорні, мінорні та патч- випуски. Для 32-бітних версій PHP на
      64-бітних ОС ключі регістру обробляються в такому порядку:
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z]</code>,
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y]</code> та
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x]</code>, де
      x, y та z означають мажорні, мінорні та патч- випуски. Якщо значення для
      <code class="literal">IniFilePath</code> знаходиться в будь-якому з цих ключів, воно
      буде використовуватись як розташування файла
      <code class="literal">php.ini</code> (тільки у Windows).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]</code> або
      <code class="literal">[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]</code>, значення
      <code class="literal">IniFilePath</code> (тільки у Windows).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Поточна робоча тека (за виключенням CLI).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Тека вебсервера (для модуля SAPI), або тека PHP
      (в іншому випадку - тека Windows).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Тека Windows (<var class="filename">C:\windows</var>
      або <var class="filename">C:\winnt</var>) (для Windows), або
      параметр <code class="literal">--with-config-file-path</code> під час компіляції.
     </span>
    </li>
   </ul>
  </p>
  <p class="para">
   Якщо <var class="filename">php-SAPI.ini</var> існує (де SAPI означає - SAPI, що
   використовується, наприклад, <var class="filename">php-cli.ini</var> або
   <var class="filename">php-apache.ini</var>), його буде використано замість <var class="filename">php.ini</var>.
   Назву SAPI можна знайти використовуючи функцію <span class="function"><a href="function.php-sapi-name.php" class="function">php_sapi_name()</a></span>.
  </p>
  <blockquote class="note"><p><strong class="note">Зауваження</strong>: 
   <p class="para">
    Веб-сервер Apache змінює теку на кореневу на старті, в результаті чого
    PHP читає файл <var class="filename">php.ini</var> з кореневої теки, якщо він там існує.
   </p>
  </p></blockquote>
  <p class="para">
   Змінні оточення можна використовувати в <var class="filename">php.ini</var> як показано нижче.
  </p>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Приклад #1 Використання Змінних Оточення в <var class="filename">php.ini</var></strong></p>
     <div class="example-contents">
<div class="inicode"><pre class="inicode">; PHP_MEMORY_LIMIT бере значення із оточення
memory_limit = ${PHP_MEMORY_LIMIT}</pre>
</div>
     </div>

    </div>
  </p>
  <p class="para">
   Директиви <var class="filename">php.ini</var>, що обробляються через розширення, мають опис на
   відповідних сторінках розширень. <a href="ini.php" class="link">Список директив
   ядра</a> знаходиться в додатку. Не всі PHP-директиви описані в цьому
   посібнику: повний їх список можна знайти в коментарях файлу <var class="filename">php.ini</var> вашої
   версії PHP. Окрім цього, можна прочитати
   <a href="https://github.com/php/php-src/blob/master/php.ini-production" class="link external">&raquo;&nbsp;останню версію файлу <var class="filename">php.ini</var></a>
   зі сховища Git.
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Приклад #2 Частина вмісту з файлу <var class="filename">php.ini</var></strong></p>
    <div class="example-contents">
<div class="inicode"><pre class="inicode">; будь-який текст після символів крапки-з-комою (;) ігнорується
[php] ; маркери розділів (текст вередині квадратних дужок) також ігнорується
; Логічні значення можуть встановлюватись такими записами:
;    true, on, yes
; або false, off, no, none
register_globals = off
track_errors = yes

; рядок можна взяти в подвійні дужки
include_path = &quot;.:/usr/local/lib/php&quot;

; зворотні слеші сприймаються точно так як і інші символи
include_path = &quot;.;c:\php\lib&quot;</pre>
</div>
    </div>

    
   </div>
  </p>
  <p class="para">
   Дозволено посилатись на наявні змінні .ini з середини файлу .ini. Наприклад:
   <code class="literal">open_basedir = ${open_basedir}
   &quot;:/new/dir&quot;</code>.
  </p>
  <div class="sect2" id="configuration.file.scan">
   <h3 class="title">Пошук файлів .ini в теках</h3>

   <p class="para">
    Дозволено налаштувати PHP для пошуку файлів .ini в теці вже після обробки
    <var class="filename">php.ini</var>. Для цього, під час компіляції, вказується опція
    <strong class="option configure">--with-config-file-scan-dir</strong>. Цільову теку
    можна перепризначити у ході виконання коду, задавши потрібне значення
    змінній середовища <var class="varname">PHP_INI_SCAN_DIR</var>.
   </p>

   <p class="para">
    Для пошуку в різних теках треба відокремити їх роздільником шляхів
    (<code class="literal">;</code> у Windows, NetWare та RISC OS; <code class="literal">:</code>
    на всіх інших платформах; значення, що використовує PHP, доступне як
    константа <strong><code><a href="dir.constants.php#constant.path-separator">PATH_SEPARATOR</a></code></strong>). Якщо в
    <var class="varname">PHP_INI_SCAN_DIR</var> вказано порожню теку, PHP виконає пошук
    в теці, заданій під час компіляції опцією
    <strong class="option configure">--with-config-file-scan-dir</strong>.
   </p>

   <p class="para">
    В кожній теці PHP буде вибирати всі файли з закінченням
    <code class="literal">.ini</code> у алфавітному порядку. Список оброблених файлів та
    їхній порядок повертає <span class="function"><a href="function.php-ini-scanned-files.php" class="function">php_ini_scanned_files()</a></span>, або PHP,
    запущений з опцією <strong class="option unknown">--ini</strong>.
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
Припускається, що PHP налаштовано з --with-config-file-scan-dir=/etc/php.d,
а роздільник — :...

$ php
  PHP обробить всі файли /etc/php.d/*.ini як файли конфігурації.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php
  PHP обробить всі файли /usr/local/etc/php.d/*.ini як файли конфігурації.

$ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php
  PHP обробить всі файли /etc/php.d/*.ini, потім
  /usr/local/etc/php.d/*.ini як файли конфігурації.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php
  PHP обробить всі файли /usr/local/etc/php.d/*.ini, потім
  /etc/php.d/*.ini  як файли конфігурації.
</pre></div>
    </div>
   </div>
  </div>
 </div><?php manual_footer($setup); ?>