rar 아카이브에서 파일을 삭제하려고합니다. /usr/bin/rar d rar_file.rar del.txt
을 실행하는 경우이 명령은 rar_file.rar에서 del.txt 파일을 삭제합니다.PHP exec rar 파일 삭제
나는 이것을 exec()를 사용하여 실행하려고하지만 작동하지 않습니다.
/usr/bin/rar d '/var/www/temp/temp.rar' teste.txt
Array
(
[0] =>
[1] => RAR 3.90 beta 2 Copyright (c) 1993-2009 Alexander Roshal 3 Jun 2009
[2] => Shareware version Type RAR -? for help
)
는 RAR에서 teste.txt 파일을 삭제하지 않았나요 :
<?php
$file = realpath("temp/temp.rar");
chmod($file, 0777); //make sure I can handle the file
if(file_exists($file)){ //Make sure that the file exists
$rar = escapeshellarg($file);
echo "/usr/bin/rar d $rar teste.txt"; //Lets see the command
exec("/usr/bin/rar d $rar teste.txt", $r);
}
echo "\n";
print_r($r);
?>
여기 내 출력합니다.
그러나 나는 /usr/bin/rar d '/var/www/temp/temp.rar' teste.txt
명령을 복사하여 터미널에서 실행했습니다. 여기 내 출력입니다 :
[email protected]:~$ /usr/bin/rar d '/var/www//temp/temp.rar' teste.txt
RAR 3.90 beta 2 Copyright (c) 1993-2009 Alexander Roshal 3 Jun 2009
Shareware version Type RAR -? for help
Deleting from /var/www/temp/temp.rar
Deleting teste.txt
Done
완벽하게 작동하지만, PHP는 간부에하지 않았다. 나는 파일 권한으로 생각하지 않는다. 사용자 www-data가 rar 파일을 만들었고 (나는 전에 생성했다.) 나는 문제없이 777에 권한을 설정했다.
저는 리눅스를 사용하고 있습니다.
내가 뭘 잘못하고있어? 덕분에 !
나는 내가 한 일을 싫어했지만 일했습니다. 나는 다음 분에 rrun에 cron 작업을 추가했고 cronjob은 rar에서 파일을 삭제했습니다. cronjob은 exec ("crontab file.txt")를 실행하여 쉽게 추가 할 수 있습니다. 어쩌면 나는 이것을 해결책으로 사용하지만, 왜 여전히 exec가 작동하지 않았는지를 알고 싶다. – StiveKnx
메시지의'error.log'를 살펴 보거나 exec 명령 뒤에'2> & 1'을 추가하여 오류 출력을 표시한다. – mario
감사합니다. 해결책을 찾았습니다. 2> & 1을 추가하면 임시 rar 파일을 만들 수있는 권한이 거부되었습니다. 그래서 저는 www 경로를 chmod (스크립트가 실행되는 곳)에서 알았고 작동합니다! – StiveKnx