SetEnv in der htaccess-Datei funktioniert nicht mit PHP-FPM

SetEnv in der htaccess-Datei funktioniert nicht mit PHP-FPM

Ich wechsle von einem Prefork-Apache-Setup zum Event-Modus mit php-fpm. Im Prefork-Modus kann ich SetEnv-Direktiven in einer htaccess-Datei wie folgt verwenden:

SetEnv CI_ENV testing

Und dieser Wert landet in PHP:

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

Wenn Apache sich jedoch im Ereignismodus befindet, gelangt dieser Wert nicht mehr in PHP. Ist etwas kaputt? Was ist die beste und orthodoxeste Methode, um das zu beheben? Soll ich einen SetEnv-Befehl in die VirtualHost-Direktive einfügen? In die Datei php-fpm.conf? Bitte um Rat.

S

Antwort1

Es dürfte alle freuen zu hören, dass Sie in der Apache-Konfigurationsdatei tatsächlich eine SetEnv-Direktive in Ihrem VirtualHost einfügen können und dass dies auch mit PHP-FPM funktioniert.

In meinem Fall ist diese Datei/etc/apache2/sites-available/default-ssl.conf:

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

Darin VirtualHostkönnen Sie Ihre SetEnvAnweisung hinzufügen:

    <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>

verwandte Informationen