PHP不会在cmd中执行代码

时间:2011-07-02 01:07:25

标签: php http amazon-s3 amazon-ec2 amazon-web-services

执行时

s3cmd put --acl-public --guess-mime-type /html/file.png s3://bucket/files/file.png

通过putty中的cmd它完美无缺,但是当我尝试通过PHP执行此操作时:

system("s3cmd put --acl-public --guess-mime-type /html/file.png s3://bucket/files/file.png");

没有任何反应。有没有人知道它为什么不起作用?我是否必须修改php.ini中的设置或者我做错了什么?

4 个答案:

答案 0 :(得分:1)

我将推荐查看Apache日志文件,但我会打赌这是一个权限问题(我遇到了这个问题......)。 Apache(httpd?)是否具有对/html/file.pngs3://bucket/files/file.png的读/写权限? s3cmd需要特殊权限吗?你需要使用gksudo吗?

答案 1 :(得分:1)

s3cmd在用户主目录中查找.s3cfg文件。在您的情况下,apache可能是运行该程序的用户,而apache没有.s3cfg文件。

您需要再次以想要使用s3cmd的用户身份再次运行。

/usr/bin/s3cmd --configure

答案 2 :(得分:0)

系统命令可能有这么限制,您应该尝试查看error_log,增加error_reporting级别或禁用php.ini中的safe_mode

答案 3 :(得分:0)

有一些问题从php文件(apache用户)执行s3cmd s3cmd无法找到s3cfg文件,我把它放在命令中它工作:

s3cmd -c /var/www/.s3cfg put file...