0

我在 Amazon EC2 机器上的 ubuntu 用户下安装了 EC2 工具,我的 shell 脚本利用这些工具来更新各种环境中的代码。现在我们将 PHP 放在这些 shell 脚本之上,我正在使用 shell_exec 从 Web 执行这些 shell 脚本,但出现以下错误:

home/ubuntu/ec2-tools/bin/ec2-describe-instances: line 9: EC2_HOME: EC2_HOME is not set

我相信这是因为 PHP 将脚本作为 www-data 执行,并且 EC2_HOME 是为 ubuntu 用户定义的。echo $EC2_HOME 在以 Ubuntu 身份登录时从命令行为我提供正确的路径。

任何人都可以帮助我如何使用 PHP 成功执行 shell 脚本。

谢谢

4

1 回答 1

1

你为什么不呢:

  • 在使用 shell_exec 之前,使用 php 函数 putenv (http://php.net/manual/en/function.putenv.php) 设置环境变量 EC2_HOME。
  • 获取 Web 服务器以设置 EC2_HOME 环境变量。(“SetEnv”用于 apache,如果使用 fastcgi 和 nginx,则使用“fastcgi_param EC2_HOME /somelocation”)
于 2012-05-30T16:28:25.993 回答