我想s3cmd
从我的 PHP 脚本中使用。一切都在 shell 中工作,但在我的 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 时,它失败了。但是当我在 shell 中运行时,它工作正常。
s3cmd ls
这工作正常。因为我使用root用户登录。
我尝试使用 runuser 命令运行它
运行用户 -l root -c "s3cmd ls"
这工作正常并显示存储桶列表。但是当我使用
运行用户 -l root -c "s3cmd ls"
这不起作用。我尝试给出 s3cmd 的完整路径
/usr/bin/s3cmd ls
这适用于 shell,但不适用于我的 PHP 脚本。
我更改了 php 脚本的权限 777 并使 root 成为该用户的所有者。但仍然无法正常工作。
我如何从 PHP 脚本运行 s3cmd。? 我在亚马逊 Ec2 实例上。