s3cmd
PHPスクリプトから使用したい。すべてがシェルから機能していますが、PHPスクリプトからは機能していません。
shell_exec('s3cmd --config=/root/s3cmd.conf ls');
これは機能していません、そして私は私のs3cmdインストールへのフルパスを与えました
shell_exec('/usr/sbin/s3cmd --config=/root/s3cmd.conf ls');
PHPスクリプトでは機能しませんが、コマンドでも同じように機能します。
shell_execを呼び出しているPHPファイルはwebrootにあります。
s3cmdがrootユーザーとして構成されていて、www-dataであるPHPから実行していることが問題である可能性があります。これが問題である場合、www-dataの構成ファイルを作成するにはどうすればよいですか。
私が間違っていることを助けてください。
ありがとう
編集 私はS3cmdを使用しています。cronスクリプトでコマンドを実行します。cronスクリプトはPHPスクリプトです。cronを実行しているユーザーはweb11であり、s3cmdはrootユーザーを使用して構成されます。
そのため、PHPスクリプトでshell_exec()を使用してs3cmdを実行すると、失敗します。しかし、シェルで実行すると正常に動作します。
s3cmd ls
これは正常に機能します。私はrootユーザーを使用してログインしています。
runuserコマンドを使用して実行しようとしました
runuser -l root -c "s3cmd ls"
これは正常に機能し、バケットのリストを表示します。しかし、私が使用して実行すると
runuser -l root -c "s3cmd ls"
これは動作しません。s3cmdのフルパスを指定してみました
/ usr / bin / s3cmd ls
これはシェルでは機能しますが、私のPHPスクリプトでは機能しません。
phpスクリプトのパーミッション777を変更し、rootをそのユーザーの所有者にしました。しかし、それでも機能しません。
PHPスクリプトからs3cmdを実行するにはどうすればよいですか。?私はAmazonEc2インスタンスを使用しています。