我試圖創建通過PHP的exec一個.tgz的文件()一個TGZ文件;函數在AJAX Web界面中,但是,我的代碼沒有製作任何文件,也沒有寫出任何錯誤。創建通過PHP的exec()
這個代碼在外殼:
tar cvfz destination/testfolder.tgz source/testfolder
我設置destination/testfolder.tgz
和source/testfolder
作爲PHP變量,因爲他們改變基於用戶輸入的,所以我的代碼看起來是這樣的:
$q=$_GET["q"];
$part = explode("/", $q);
$source = $q;
$dest = "destination/" .$part[1].".tgz";
exec("tar cvfz " . $dest . " " . $source);
我呼應"tar cvfz " . $dest . " " . $source
和複製/粘貼成外殼,裏面的作品,所以我很困惑,我在做什麼錯。
可能是一個權限問題 – 2012-08-12 20:36:46
只是作爲一個觀察,你必須要非常小心,並直接將一個'_GET'可變進外殼。我可以輕鬆通過'; rm -rf /'到GET變量中,然後整個服務器將被刪除。 – David 2012-08-12 20:37:10
像Dagon說的那樣,它可能是權限。 _Temporarily_做'chmod -R 777/path/to/the/directory'來查看是否有問題。然後,出於安全原因逐步退出權限。 – David 2012-08-12 20:38:01