htaccess 文件中的 SetEnv 不适用于 PHP-FPM

htaccess 文件中的 SetEnv 不适用于 PHP-FPM

我正在从 prefork apache 设置转到使用 php-fpm 的事件模式。在 prefork 模式下,我可以在 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,它仍然有效。

就我而言,该文件是/etc/apache2/sites-available/default-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>

相关内容