Вызов git из PHP: ошибка сломанной трубы - PullRequest
2 голосов
/ 22 июня 2009

У меня есть следующий скрипт PHP:

#!/usr/bin/php
<?php
echo shell_exec(
  "/usr/bin/git clone --bare ".
  "/home/dave/create_project/template_project ".
  "/home/dave/create_project/my_test_project.git"
);

Приблизительно в 7 раз из 10 я запускаю git, выдает следующую ошибку:

find: write error: Broken pipe

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

Я уже пробовал:

  • с использованием других функций выполнения PHP: exec, system, popen;
  • передача всей команды в качестве аргумента для bash, т.е. exec('bash -c '.$cmd);

Кто-нибудь знает, что может происходить?

Ответы [ 2 ]

1 голос
/ 22 июня 2009

Это может зависеть от вашей конкретной платформы, но findutils, как известно, выдает такое сообщение об ошибке раньше. В Fedora эта версия пакета rpm 4.2.33-2.fc9 устранила проблему.

0 голосов
/ 23 июня 2009

PHP выдает какие-либо ошибки? Может быть, max_execution_time слишком мало? Мы предполагаем, что приложение PHP закрывается преждевременно.

...