• Как прочесть переменные окружения в fpm

    Если вы используете Docker, скорее всего, вы активно используете и переменные окружения (environment variables). В php-cli или mod_php прекрасно работает стандартный метод их получения:

    # ~/envapp/read.php
    <?php
    $env = getenv("foo");
    echo $env;
    php read.php
    bar

    Однако, в php-fpm так сделать не получится: дело в настройке «clearenv» (по-умолчанию «true»). Если она активна, прочитать можно будет только те переменные окружения, что указаны в специальном белом списке. Решения, соответственно, два: либо отключить опцию «clearenv», либо добавить необходимые переменные в белый список. В разных обстоятельствах могут понадобиться оба решения:

    Отключение clear_env

    echo "clear_env = no" >> /etc/php5/fpm/pool.d/www.conf

    Белый список

    echo "env[foo] = bar" >> /etc/php5/fpm/pool.d/www.conf