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 VirtualHost
können Sie Ihre SetEnv
Anweisung 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>