Проблема с файловой системой PHP, код возврата 2

Хотите архивировать папку с помощью tar из PHP:

$result = shell_exec("tar cf $sourceFile $sourceFolder -C $source > /dev/null; echo $?"); var_dump($result); 

Вывод:

 string(2) "2 " 

the > /dev/null; echo $? > /dev/null; echo $? вещь предназначена для вывода кода результата скрипта под linux;

-C $source – изменяется в правую папку, прежде чем что-либо делать

Это действительно странно, потому что, когда я запускаю это из консоли linux, он работает отлично – создает архив, поэтому это не проблема разрешения.

Другие сценарии, такие как «whoami» или «ls», отлично работают.

Любые идеи, что это значит?

    Возможно: shell_exec("/bin/bash tar ....")

    Только для целей отладки перенаправлять stderr на stdout и использовать passthru () для отображения полного вывода (возможно, включая сообщения об ошибках).

     $cmd = sprintf("tar cf %s %s -C %s 2>&1", escapeshellarg($sourceFile), escapeshellarg($sourceFolder), escapeshellarg($source) ); echo '<pre>', htmlspecialchars($cmd), ": \n"; flush(); passthru($cmd, $code); var_dump($code); echo "</pre>";