我需要运行一个php脚本来刷新数据每10分钟,我正在使用cron。
crontab -e configuration is:
*/10 * * * * php my_file.php
在这个文件中,我使用$_SERVER['my_env_var']
来检索变量的值,这是一个加密的字符串(它在apache2.conf中设置为SetEnv MY_ENCRYPTED_VALUE
什么的)。在web浏览器中使用调试将正确输出值(它正在与apache一起运行,因此它可以读取文件)并识别我正在调用服务器上设置的变量)。
但是,cron正在使用CLI。当使用
时<?php
print_r($_SERVER);
?>
我的变量没有列在这里。
我知道他们不共享相同的.ini
文件和SAPIs (apache2handler vs cli)。
我看到其他帖子说:
设置为
/etc/environment
变量
但如果可能的话,我宁愿不使用它(它安全吗?)
但是,有没有办法通过PHP CLI访问Apache2的SetEnv
变量?
正如@CBroe所说,cli模式下的cli与PHP没有关系。您仍然需要一些通用的环境变量,您可以从CI - CD管道中获得帮助。它会把这些东西安全地放在一个地方。
我们说的几乎是同一件事,我说的是环境应该由管道编写到目标系统,而不是由个别团队手动维护。
CI CD管道为我们提供了一种使用环境变量的方法,安全性是使用它的一个很好的选择。