htaccess ファイル内の SetEnv は PHP-FPM では機能しません

htaccess ファイル内の SetEnv は PHP-FPM では機能しません

私は、プリフォーク Apache セットアップから php-fpm を使用したイベント モードに移行しています。プリフォーク モードでは、次のように htaccess ファイルで SetEnv ディレクティブを使用できます。

SetEnv CI_ENV testing

そして、その値は PHP で次のように表示されます。

echo $_SERVER["CI_ENV"]; // outputs "testing"

ただし、イベント モードの Apache では、その値は PHP に取り込まれません。何かが壊れているのでしょうか? これを修正する最も適切でオーソドックスな方法は何でしょうか? VirtualHost ディレクティブに SetEnv コマンドを配置する必要がありますか? php-fpm.conf ファイルに配置する必要がありますか? アドバイスをお願いします。

答え1

実際に、Apache 構成ファイルの VirtualHost に SetEnv ディレクティブを配置でき、PHP-FPM でもこれが機能することを知って、誰もが喜ぶはずです。

私の場合、そのファイルはデフォルトssl.conf:

sudo nano /etc/apache2/sites-available/default-ssl.conf

その中にVirtualHost、ディレクティブを追加できますSetEnv:

    <VirtualHost _default_:443>
            ServerAdmin webmaster@localhost
            DocumentRoot /var/www/html

            # ETC ETC ETC

            # added because it doesn't work from .htaccess file with PHP-FPM
            SetEnv CI_ENV testing

            # ETC ETC ETC
    </VirtualHost>

関連情報