<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/install.fpm.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'uk',
  ),
  'this' => 
  array (
    0 => 'install.fpm.configuration.php',
    1 => 'Конфігурування',
    2 => 'Конфігурування',
  ),
  'up' => 
  array (
    0 => 'install.fpm.php',
    1 => 'Менеджер процесів FastCGI (FPM)',
  ),
  'prev' => 
  array (
    0 => 'install.fpm.install.php',
    1 => 'Встановлення',
  ),
  'next' => 
  array (
    0 => 'install.pecl.php',
    1 => 'Встановлення розширень PECL',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'uk',
    'path' => 'install/fpm/configuration.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="install.fpm.configuration" class="sect1">
   <h2 class="title">Конфігурування</h2>
   <p class="para">
    FPM використовує синтаксис <var class="filename">php.ini</var> для свого конфігураційного
    файла - <var class="filename">php-fpm.conf</var>, та пулу файлів конфігурації.
   </p>
   <div class="sect2"> 
    <h3 class="title">Список глобальних директив <var class="filename">php-fpm.conf</var></h3>
    <dl>
     
      <dt id="pid">
       <code class="parameter">pid</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para"> 
        Шлях до PID-файла. Початкове значення: none.
       </p>
      </dd>
     
     
      <dt id="error-log">
       <code class="parameter">error_log</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Шлях до файла журнала помилок. Початкове значення:
        <code class="literal">#INSTALL_PREFIX#/log/php-fpm.log</code>.
       </p> 
      </dd>
     
     
      <dt id="log-level">
       <code class="parameter">log_level</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Ріень логування помилок. Можливі значення: alert, error, warning, notice,
        debug. Початкове значення: notice.
       </p> 
      </dd>
     
     
      <dt id="emergency-restart-threshold">
       <code class="parameter">emergency_restart_threshold</code>
       <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      </dt>
      <dd>
       <p class="para">
        Якщо дане число дочірніх процесів завершиться з SIGSEGV чи SIGBUS всередині
        інтервалу часу, встеновленого через <code class="literal">emergency_restart_interval</code>,
        то FPM буде перезапущено. Значення 0 означає &#039;відключено&#039;.
        Початкове значення: 0 (відключено).
       </p> 
      </dd>
     
     
      <dt id="emergency-restart-interval">
       <code class="parameter">emergency_restart_interval</code>
       <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span>
      </dt>
      <dd>
       <p class="para">
        Інтервал часу, який використовує emergency_restart_interval, щоб визначити
        коли FPM буде м&#039;яко перезапущено. Це може бути корисно, щоб уникнути
        випадкових пошкоджень прискорювача загальної пам&#039;яті.
        Доступні Одиниці Виміру: s (секунди), m (хвилини), h (години), або  d (дні).
        Одиниці виміру початково: секунди. Початкове значення: 0 (виключено).
       </p> 
      </dd>
     
     
      <dt id="process-control-timeout">
       <code class="parameter">process_control_timeout</code>
       <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span>
      </dt>
      <dd>
       <p class="para">
        Обмеження часу для дочірніх процесів, щоб дочекатись реакції сигнала від
        майстра. Доступні одиниці виміру: s (секунди), m (хвилини), h (години), або  d (дні)
        Одиниці виміру початково: секунди. Початкове значення: 0.
       </p> 
      </dd>
     
     
      <dt id="daemonize">
       <code class="parameter">daemonize</code>
       <span class="type"><a href="language.types.boolean.php" class="type boolean">boolean</a></span>
      </dt>
      <dd>
       <p class="para">
        Запускає FPM в фоновому режимі. Встановлене значення &#039;no&#039; залишє FPM
        на передньому плані для відлагодження. Початкове значення: yes.
       </p> 
      </dd>
     
    </dl>
   </div>

   <div class="sect2"> 
    <h3 class="title">Список директив пулів</h3>
    <p class="para">
     З FPM ви можете запустити декілька пулів процесів з різними
     налаштуваннями. Ці параметри можна передавати в пул.
    </p>
    <dl>
     
      <dt id="listen">
       <code class="parameter">listen</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Адреса, за якою приймати FastCGI-запити. Дійсний синтаксис такий:
        &#039;ip.add.re.ss:port&#039;, &#039;port&#039;, &#039;/path/to/unix/socket&#039;. Цей параметр
        є обов&#039;язковим для кожного пулу.
       </p> 
      </dd>
     
     
      <dt id="listen-backlog">
       <code class="parameter">listen.backlog</code>
       <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      </dt>
      <dd>
       <p class="para">
        Наприклад, встановіть listen(2) для зворотнього логування.
        Значення &#039;-1&#039; означає &#039;без обмежень&#039;. Початкове значення: -1.
       </p> 
      </dd>
     
     
      <dt id="listen-allowed-clients">
       <code class="parameter">listen.allowed_clients</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Список ipv4 адрес FastCGI-клієнтів, які дозволені для підключення.
        Еквівалент для змінної оточення FCGI_WEB_SERVER_ADDRS в оригінальному
        PHP FastCGI (5.2.2+). Має сенс лише з прослуховуванням TCP-сокета.
        Кожна адреса повинна бути розділена через кому. Якщо встановити пусте значення,
        підключення буде прийматись з будь-якої адреси. Початкове значення: any.
       </p> 
      </dd>
     
     
      <dt id="listen-owner">
       <code class="parameter">listen.owner</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Виставляє права для unix-сокетів, якщо вони використовуються. В Linux,
        права на читання/запис потрібно встановлювати для того, щоб дозволити
        підключення з веб-сервера. В багатьох системах, заснованих на BSD,
        дозволяються підключення незалежно від прав. Початкове значення:
        користувач та група мають такі ж права, як і користувач, від чийого
        імені запущено процес; вистановлено режим 0660.
       </p> 
      </dd>
     
     
      <dt id="listen-group">
       <code class="parameter">listen.group</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Дивіться <code class="literal">listen.owner</code>.
       </p> 
      </dd>
     
     
      <dt id="listen-mode">
       <code class="parameter">listen.mode</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Дивіться <code class="literal">listen.owner</code>.
       </p> 
      </dd>
     
     
      <dt id="user">
       <code class="parameter">user</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Unix-користувач FPM-процесів. Цей параметр є обов&#039;язковим.
       </p> 
      </dd>
     
     
      <dt id="group">
       <code class="parameter">group</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Unix-група FPM-процесів. Якщо не встановлено, використовується початкова
        група.
       </p> 
      </dd>
     
     
      <dt id="pm">
       <code class="parameter">pm</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Вибір того, як менеджер процесів буде контролювати число дочірніх
        процесів. Можливі значення: <code class="literal">static</code>, <code class="literal">ondemand</code>,
        <code class="literal">dynamic</code>. 
        Цей параметр є обов&#039;язковим.
       </p>
       <p class="para">
        <code class="literal">static</code> - фіксоване число дочірніх процесів (<code class="literal">pm.max_children</code>).
       </p>
       <p class="para">
        <code class="literal">ondemand</code> - розмноження процесів на вимогу (під час запиту,
        на відміну від dynamic, при якому <code class="literal">pm.start_servers</code>
        стартує, коли сервсіс запускається).
       </p>
       <p class="para">
        <code class="literal">dynamic</code> - число дочірніх процесів встановлюється
        динамічно, на основі наступних директив:
        <code class="literal">pm.max_children</code>, <code class="literal">pm.start_servers</code>, 
        <code class="literal">pm.min_spare_servers</code>, <code class="literal">pm.max_spare_servers</code>.
       </p>
      </dd>
     
     
      <dt id="pm.max-chidlren">
       <code class="parameter">pm.max_children</code>
       <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      </dt>
      <dd>
       <p class="para">
        Число дочірніх процесів, які будуть створені, коли для параметра
        <code class="literal">pm</code> встановлено значення <code class="literal">static</code>, або ж
        максимальне число дочірніх процесів, що будуть створені, коли для
        параметра <code class="literal">pm</code> встановлено значення
        <code class="literal">dynamic</code>. Цей параметр є обов&#039;язковим.
       </p>
       <p class="para">
        Цей параметр встановлює обмеження на число одночасних запитів, які
        будуть обслуговуватись. Еквівалент директиви ApacheMaxClients з
        mpm_prefork та для змінної оточення <var class="varname">PHP_FCGI_CHILDREN</var>
        в оригінальному PHP FastCGI.
       </p>
      </dd>
     
     
      <dt id="pm.start-servers">
       <code class="parameter">pm.start_servers</code>
       <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      </dt>
      <dd>
       <p class="para">
        Число дочірніх процесів, створених при запуску. 
        Використовується тільки коли для параметра <code class="literal">pm</code>
        встановлено значення <code class="literal">dynamic</code>.
        Початкове значення: min_spare_servers + (max_spare_servers -
        min_spare_servers) / 2.
       </p> 
      </dd>
     
     
      <dt id="pm.min-spare-servers">
       <code class="parameter">pm.min_spare_servers</code>
       <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      </dt>
      <dd>
       <p class="para">
        Бажане мінімальне число неактивних процесів сервера. Використовується
        тільки коли для параметра <code class="literal">pm</code> встановлено значення
        <code class="literal">dynamic</code>. В даному випадку також є обов&#039;язковим.
       </p> 
      </dd>
     
     
      <dt id="pm.max-spare-servers">
       <code class="parameter">pm.max_spare_servers</code>
       <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      </dt>
      <dd>
       <p class="para">
        Бажане максимальне число неактивних процесів сервера. Використовується
        тільки коли для параметра <code class="literal">pm</code> встановлено значення
        <code class="literal">dynamic</code>. В даному випадку також є обов&#039;язковим.
       </p> 
      </dd>
     
     
      <dt id="pm.max-requests">
       <code class="parameter">pm.max_requests</code>
       <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      </dt>
      <dd>
       <p class="para">
        Число запитів кожного дочірнього процеса, які повинні виконуватись перед
        перезапуском. Це може бути корисним для запобігання витоку пам&#039;яті при
        використанні сторонніх бібліотек. Щоб не обмежувати число запитів
        встановіть значення для цього параметра в &#039;0&#039;. Еквівалент для
        <var class="varname">PHP_FCGI_MAX_REQUESTS</var>. Початкове значення: 0.
       </p> 
      </dd>
     
     
      <dt id="pm.status-path">
       <code class="parameter">pm.status_path</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        URI для перекляду сторінки FPM-статуса. Якщо значення для цього параметра
        не встановлено, то не буде URI, де очікується сторінка статуса.
        Початкове значення: none.
       </p> 
      </dd>
     
     
      <dt id="ping.path">
       <code class="parameter">ping.path</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        URI для пінга, щоб викликати сторінку моніторинга FPM. Якщо значення не
        встановлено, не буде URI, де очікується пінг-сторінка. Це можна
        використовувати для перевірки із зовні, що FPM працює та відповідає.
        Зауважте, що значення повинно починатись зі слеша (/).
       </p> 
      </dd>
     
     
      <dt id="ping.response">
       <code class="parameter">ping.response</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Цю дериктиву можна використовувати для компонування відповіді під час
        пінг-запиту. Відповідь формується як text/plain з кодом відповіді 200.
        Початкове значення: pong.
       </p> 
      </dd>
     
     
      <dt id="request-terminate-timeout">
       <code class="parameter">request_terminate_timeout</code>
       <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span>
      </dt>
      <dd>
       <p class="para">
        Таймаут для обслуговування одиночних запитів, після якого робочий процес
        (worker) буде вбито. Цей параметр потрібно використовувати, коли ini-опція
        &#039;max_execution_time&#039; по якійсь причині не зупиняє виконання. Значення
        &#039;0&#039; означає &#039;виключено&#039;. Доступні одиниці виміру: s (секунди, початково),
        m (хвилини), h (години), або d (дні). Початкове значення: 0.
       </p> 
      </dd>
     
     
      <dt id="request-slowlog-timeout">
       <code class="parameter">request_slowlog_timeout</code>
       <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span>
      </dt>
      <dd>
       <p class="para">
        Таймаут для обслуговування одиночних запитів, після якого PHP-бектрейс
        буде поміщено в файл &#039;slowlog&#039;. Значення &#039;0&#039; означає &#039;виключено&#039;.
        Доступні одиниці виміру: s (секунди, початково), m (хвилини), h (години), або d (дні).
        Початкове значення: 0.
       </p> 
      </dd>
     
     
      <dt id="slowlog">
       <code class="parameter">slowlog</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Файл логів для повільних запитів. Початкове значення:
        <code class="literal">#INSTALL_PREFIX#/log/php-fpm.log.slow</code>.
       </p> 
      </dd>
     
     
      <dt id="rlimit-files">
       <code class="parameter">rlimit_files</code>
       <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      </dt>
      <dd>
       <p class="para">
        Встановлює відкритий файловий дескриптор rlimit. Початкове значення:
        визначається налаштуванням системи.
       </p> 
      </dd>
     
     
      <dt id="rlimit-core">
       <code class="parameter">rlimit_core</code>
       <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      </dt>
      <dd>
       <p class="para">
        Встановлює максимальний rlimit-розмір ядра. Можливі значення: &#039;unlimited&#039;
        або ціле число, що більше чи рівне 0.
        Початкове значення: визначається налаштуванням системи.
       </p> 
      </dd>
     
     
      <dt id="chroot">
       <code class="parameter">chroot</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Зміна кореневого каталогу при старті. Цей параметр повинен мати значення
        з абсолютним шляхом. Коли його не визначено, chroot не використовується.
       </p> 
      </dd>
     
     
      <dt id="chdir">
       <code class="parameter">chdir</code>
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
      </dt>
      <dd>
       <p class="para">
        Зміна поточного каталогу при старті. Цей параметр повинен мати значення
        з абсолютним шляхом. Початкове значення: поточна директорія чи /
        при зміні кореневого каталогу.
       </p> 
      </dd>
     
     
      <dt id="catch-workers-output">
       <code class="parameter">catch_workers_output</code>
       <span class="type"><a href="language.types.boolean.php" class="type boolean">boolean</a></span>
      </dt>
      <dd>
       <p class="para">
        Перенаправлення stdout та stderr робочого процеса в головний журнал помилок.
        Якщо не встановлено, stdout та stderr будуть перенаправлятись до /dev/null
        відповідно до специфікації FastCGI. Початкове значення: no.
       </p> 
      </dd>
     
    </dl>
    <p class="para">
     Можна передавати додаткові змінні оточення, та оновлювати налаштування PHP
     конкретного пулу. Для цього вам потрібно додати наступні параметри до
     конфігураційного файла пулу (php-fpm.conf).
     <div class="example" id="example-1">
      <p><strong>Приклад #1 Передача змінних оточення та налаштувань для пула</strong></p>
      <div class="example-contents">
<div class="inicode"><pre class="inicode">env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M</pre>
</div>
      </div>

     </div>
     Налаштування PHP, що передаються через <code class="literal">php_value</code> або
     через <code class="literal">php_flag</code> будуть перезаписувати їхні попередні
     значення. Майте на увазі, що визначення
     <a href="ini.core.php#ini.disable-functions" class="link">disable_functions</a> чи 
     <a href="ini.core.php#ini.disable-classes" class="link">disable_classes</a> не будуть
     перезаписувати їхні попередньо встановлені значення в <var class="filename">php.ini</var>,
     а додадуть нові значення.
    </p>
    <p class="para">
     Значення, що визначені через <code class="literal">php_admin_value</code> та
     <code class="literal">php_admin_flag</code> не будуть перезаписуватись значеннями з
     <span class="function"><a href="function.ini-set.php" class="function">ini_set()</a></span>.
    </p>
    <p class="para">
     Починаючи з 5.3.3, PHP-налаштування також можна встановлювати через веб-сервер.
     <div class="example" id="example-2">
      <p><strong>Приклад #2 встановлення налаштувань PHP в файлі nginx.conf</strong></p>
      <div class="example-contents">
       <div class="inicode"><pre class="inicode">set $php_value &quot;pcre.backtrack_limit=424242&quot;;
set $php_value &quot;$php_value \n pcre.recursion_limit=99999&quot;;
fastcgi_param  PHP_VALUE $php_value;

fastcgi_param  PHP_ADMIN_VALUE &quot;open_basedir=/var/www/htdocs&quot;;</pre>
</div>
      </div>

     </div>
     <div class="caution"><strong class="caution">Застереження</strong>
      <p class="para">
       Оскільки ці налаштування передаються до php-fpm як fastcgi-заголовки,
       php-fpm не повинні бути прив&#039;язаними до загально-доступної адреси.
       В противному разі, будь-хто може змінювати параметри конфігурації PHP.
       Прогляньте також
       <a href="install.fpm.configuration.php#listen-allowed-clients" class="link">listen.allowed_clients</a>.
      </p>
     </div>
    </p>
   </div>
   
  </div><?php manual_footer($setup); ?>