執行代碼它完美的作品,但是當我試圖通過PHP執行此:PHP不會在cmd中
system("s3cmd put --acl-public --guess-mime-type /html/file.png s3://bucket/files/file.png");
什麼都沒發生。有沒有人有一個想法,爲什麼它不工作?我是否必須修改php.ini中的設置或者我做錯了什麼?
執行代碼它完美的作品,但是當我試圖通過PHP執行此:PHP不會在cmd中
system("s3cmd put --acl-public --guess-mime-type /html/file.png s3://bucket/files/file.png");
什麼都沒發生。有沒有人有一個想法,爲什麼它不工作?我是否必須修改php.ini中的設置或者我做錯了什麼?
有可能等系統命令的限制,你應該嘗試會在error_log看,增加error_reporting級別或在php.ini中禁用的safe_mode
Safe_mode已關閉。出於某種原因,PHP不會生成error_log。 php.ini中的設置看起來很好。如果這是一個權限問題,我應該怎麼做才能解決這個問題? PHP文件的所有者被設置爲root,在httpd.conf中,所有者被設置爲apache,這可能是問題嗎? – John
我第二次的建議,看看Apache日誌文件,但我會打賭,這是一個權限問題(我有這個問題......)。 Apache(httpd?)對/html/file.png
和s3://bucket/files/file.png
有讀寫權限嗎? s3cmd是否需要特殊權限?你需要使用gksudo嗎?
我檢查了Apache的錯誤日誌文件,它報告錯誤:找不到配置文件。請使用--config選項。「這是幹什麼用的? – John
這聽起來像是[s3cmd](http://s3tools.org/s3cmd)命令問題。我猜?它將配置數據存儲在您的主目錄中。您可能只需從您的家庭目錄複製它。當然,你也可以使用你的Apache用戶並運行s3cmd --configure – cwallenpoole
s3cmd在.s3cfg
文件的用戶主目錄中查找。在你的情況下,apache可能是運行該程序的用戶,而apache沒有.s3cfg
文件。
您需要再次以您打算使用s3cmd的用戶身份運行此操作。
/usr/bin/s3cmd --configure
你是否想要使用exec()? – DesignerGuy
我也嘗試過exec,它不起作用。 – John
它是什麼類型的服務器? (我相信* nix命令是以'www-data'的形式運行的,並且有些命令被排除在外) – DesignerGuy