为命令行和Web服务器(PHP)设置环境变量

为命令行和Web服务器(PHP)设置环境变量,php,linux,nginx,environment-variables,Php,Linux,Nginx,Environment Variables,我正在使用PHP、NGINX和Mac/linux。我希望设置环境变量,以便可以通过命令行或Web服务器运行的脚本访问它们 在我的nginx配置中设置$\u SERVERfastcgi参数不起作用,因为它们在通过命令行运行的cron作业中不可用 出于安全原因,在web应用程序本身中设置变量不是一个好主意,所以我也不想这样做 正确的方法是什么?一种方法是将php.ini中的auto\u append\u file设置为具有setenv()行的php文件。然后使用getenv()。我不确定OSX是否为

我正在使用PHP、NGINX和Mac/linux。我希望设置环境变量,以便可以通过命令行或Web服务器运行的脚本访问它们

在我的nginx配置中设置
$\u SERVER
fastcgi参数不起作用,因为它们在通过命令行运行的cron作业中不可用

出于安全原因,在web应用程序本身中设置变量不是一个好主意,所以我也不想这样做


正确的方法是什么?

一种方法是将
php.ini
中的
auto\u append\u file
设置为具有
setenv()
行的php文件。然后使用
getenv()
。我不确定OSX是否为web和cli提供了单独的
php.ini
文件


只需重新阅读,就可以看到您的状态是Mac/Linux。对于Linux,您可以在
/etc/profile
/etc/profile.d
中设置这些变量。快速搜索显示OSX的
/etc/launchd.conf
。不确定这些文件的范围,但可能值得一试。

请参阅文档。这是你在找的吗?@Athafoud谢谢,但它们不能在脚本中设置。这是安全问题,明白了!为什么不将变量转储到两个脚本都可以访问的文件中?另外,如果我没有弄错的话,
cron
运行在一个非常严格的环境中,没有完全访问完整路径的权限。再次感谢,在mac上几乎完成了第一个选项的测试。之后将访问linux/ubuntu并报告这两个版本。因此,Mac的php.ini中的
auto_append_file
肯定可以在web和cli上运行。我看不出这个解决方案在任何操作系统上都不起作用的原因。我准备好了,谢谢!请记住,许多Linux发行版都有用于cli和apache的单独php.ini。