0

Amazon EC2 マシンの ubuntu ユーザーの下に EC2 ツールがインストールされており、シェル スクリプトはこれらのツールを使用してさまざまな環境でコードを更新します。これらのシェル スクリプトの上に PHP を配置し、shell_exec を使用してこれらのシェル スクリプトを Web から実行していますが、次のエラーが発生します。

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を使用してシェルスクリプトを正常に実行する方法を教えてください。

ありがとう

4

1 に答える 1

1

あなたも次のことをしてみませんか。

  • shell_exec を使用する前に、php 関数 putenv (http://php.net/manual/en/function.putenv.php) を使用して環境変数 EC2_HOME を設定します。
  • Web サーバーを取得して、EC2_HOME 環境変数を設定します。(apache の場合は「SetEnv」、fastcgi と nginx を使用する場合は「fastcgi_param EC2_HOME /somelocation」を使用)
于 2012-05-30T16:28:25.993 に答える