Функция exec () не управляет проверкой SVN - PullRequest
1 голос
/ 02 мая 2010

Я пишу некоторые функции в php, используя exec () для опроса SVN.

The commands exec("svn list ".$myurl) works.

Теперь я пытаюсь получить путь к хранилищу svn с помощью команды checkout. Когда я помещаю команду "svn checkout http://core.wordress.org/tags/2.9.2/ last-version" прямо в консоли, она работает.

Но когда я делаю это из php-скрипта, используя exec (), вот так:

exec("svn checkout ".$myurl, $dir)

это не работает.

У вас есть идея ??

1 Ответ

0 голосов
/ 02 мая 2010

Это может быть по разным причинам.

  • Пользователь, под которым работает PHP, не может записывать в каталог, который вы хотите проверить в

  • Для репозитория SVN требуются учетные данные для входа в систему, которые не кэшируются для пользователя. PHP работает под

  • Процесс извлечения SVN начинается, но требует некоторого дополнительного ввода, например, ужасного "Хотите вы?"принять этот сертификат "с неподписанными сертификатами.

Попробуйте добавить 2>&1 в команду, чтобы перенаправить stderr в stdout, и посмотрите на $dir.Также используйте параметр $return_var для exec () .

И, как отметил Джейкоб, всегда используйте escapeshellargs() для аргументов вашей команды.

...