Существует "Удобный для пользователя svn" USVN. Я думаю, что Вы найдете, что большая часть общественного усилия для чего-то вроде этого является небольшой - SVN является сохраняемым actuvely, но административные средства являются одной частью, которые не делают. Они имеют тенденцию быть записанными однажды и работать навсегда, таким образом, эти инструменты GUI не должны изменяться также. Таким образом - не волнуются слишком много о том, насколько большой сообщество в этом случае.
Вы можете попробовать добавить
</dev/null
в конец вызывающих ошибку команд только в том случае, если каким-то образом командам требуется ввод.
Где хранится закрытый ключ ssh, в файле ~ / .ssh / id _... пользователя, от имени которого вы запускаете команду?
Если да, то apache не работает как ваш пользователь. Apache должен иметь доступ к копии ключа ssh. Вы также можете добавить -i к своим командам ssh и scp, чтобы они не существовали в домашнем каталоге apache.
Функция shell_exec (), вероятно, дает вам некоторую информацию, которую вы игнорируете, не собирая ее. Попробуйте
$info=shell_exec("kindle.sh $outpath");
echo "<pre>$output</pre>";
это то, что я сделал бы, чтобы начать отладку этой проблемы.
Изменить:
Установка привилегий на .ssh и id_rsa на 777 вызовет у вас серьезные проблемы, поскольку ssh отказывается работать, если они слишком разрешительные . Установите их обратно на 700 и 600, соответственно.
Я не понимаю, почему вы не видите, что ничего возвращается, попробуйте
$info=shell_exec("kindle.sh 2>&1 $outpath");
echo "<pre>$output</pre>";
Что должно заставить stderr также выйти из стандартного.
Когда у меня возникают проблемы с выполнением внешних сценариев из процессов httpd и php, я пытаюсь запустить вручную под тем же пользователем, от имени которого запускается процесс httpd.
su никто
Это очень высока вероятность того, что у пользователя nobody не установлена оболочка, вам нужно будет разрешить оболочке su
для него.