我正在从 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>