我有一个网站,代码在我使用的签约开发人员之间共享,因为我不想让他们完全访问mysql密码,salt,密钥等,他们使用环境变量存储在网站.conf文件中:
SetEnv SALT ABCxyz123
SetEnv PASS XYZabc123
......等等
使用这种方法我可以让他们在他们自己的环境中处理某些功能/脚本,我可以安全地给他们一份我的网站代码和/或mysql表的副本(或部分),而无需他们知道任何敏感变量。
我有一个配置文件,我的所有网站php页面都使用以下命令来检索数据库密码:
$db_pass = (getenv('PASS'))or die('Could not get mysql password!');
问题是,如果我创建一个cron作业来运行php文件,那么CLI无法访问getenv(),因此脚本将无法运行。我不想最终只运行一个单独的配置文件,因为这些cron脚本能够运行,因为配置文件中有很多功能,包括许多功能。
有没有办法可以将这些重要变量存储在我的网站代码之外,并且仍然可以让CLI访问它们?
答案 0 :(得分:0)
您可以使用系统实用程序直接访问所需的变量:
保存到 demo.php 和 chmod + x demo.php&& ./demo.php 。您也可以将其安装为crontab,以便在那里工作。
#!/usr/bin/php
<?php
//access the environment using system commands:
$data = system("/usr/bin/printenv LANG") . " | " . system("/usr/bin/printenv HOME");
file_put_contents("test.txt", $data);
//if you want to write variables to the environment, I suggest writing them to a global
//file such as `~/.env`. Then in your `.bashrc` you can `source ~/.env` to load the
//variables you saved.
//If this is an acceptable solution, let me know and I'll write some shell scripts.