shell_exec不加载环境变量



我在管理面板上有一个功能,允许管理员运行CronJobs。我已经通过shell_exec函数实现了它。有两个问题。

问题1执行shell_exec的脚本与用户rc一起运行,我使用echo get_current_user();进行测试,而使用shell_exec执行的命令与www-data一起运行,我通过运行var_dump(shell_exec('whoami'));var_dump(shell_exec('php -r "echo get_current_user()"'))进行测试。

问题2www-data用户不能识别全局环境变量。我已经将APPLICATION_ENV=development添加到/etc/environment,这很好,因为当我运行sudo -u www-data echo $APPLICATION_ENV时,它显示development

执行var_dump(shell_exec('echo $APPLICATION_ENV'))

显示空字符串。我错过了什么吗?

您应该能够使用

完成此操作。
var_dump(shell_exec('source /etc/environment && echo $APPLICATION_ENV'));

最新更新