我在管理面板上有一个功能,允许管理员运行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'));