为命令行和Web服务器(PHP)设置环境变量
我正在使用PHP、NGINX和Mac/linux。我希望设置环境变量,以便可以通过命令行或Web服务器运行的脚本访问它们 在我的nginx配置中设置为命令行和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是否为
$\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。