2

ping google.comのようなコマンドに*shell_exec(cmd)* またはsystem(cmd)を使用しようとすると、正常に動作します。

コード 1:PHP で動作します

<?php
echo shell_exec(ping google.com)
?>

しかし、次のコードを実行しようとすると、空白のページが返されます。

コード 2: PHP では動作しません

<?php
echo shell_exec(ec2-describe-addresses --region us-west-2)
?>

両方のコマンド

1.ping google.com

2.ec2-describe-addresses --region us-west-2

Windows コマンド プロンプトで正しく動作します。

PHPで2番目のコマンドを実行するにはどうすればよいですか?

PS: ec2-describe-addresses --region us-west-2は、アカウントhttp://aws.amazon.com/articles/Amazon-EC2/1346の Elastic IP アドレス を記述するAWS EC2 コマンドです。

4

1 に答える 1

2

問題は、PHP が root ユーザーとしてではなく実行されていることでした。ユーザーを root に変更すると、実際に問題が解決しました。PHPユーザーをROOTに切り替える方法を知りたい人向け。次の手順に従ってください。

ステップ 1: httpd.conf を開く

ステップ 2:ユーザー/グループを検索する

ステップ3:その下にあなたが見つけるでしょう

ユーザー (デフォルトのユーザー名)

グループ (デフォルトのグループ名)

ファイルが次のようになるように、ルートに変更します。

ユーザールート

グループルート

ステップ 4: Apache を再起動する

PS: PHP を root ユーザーとして動作するように切り替えることは、運用サーバーでは推奨されません。これについて確信がある場合にのみ、これを変更してください。

于 2013-09-03T20:58:24.357 に答える