Shell_exec с git pull? - PullRequest
       13

Shell_exec с git pull?

3 голосов
/ 26 марта 2010

Я настраиваю учетную запись github, чтобы работать над небольшим проектом с некоторыми друзьями. Я хотел бы, чтобы моя домашняя машина могла выполнять git pull через php, так что нам просто нужно вызвать этот небольшой php-файл, чтобы машина была в курсе.

На данный момент:

<code><?php
$output = shell_exec('git help');
echo "<pre>$output
"; ?>

Это работает отлично, и я получаю вывод, я нахожусь в правильном каталоге, поэтому git pull должен работать так же хорошо, но я получаю зависшую страницу, без ошибок, ничего.

Есть идеи?

РЕДАКТИРОВАТЬ: Несколько точности, репо довольно маленький, около 300 КБ, это займет всего несколько секунд от командной строки. Я также попытался shell_exec ("dir"), и я в правильном каталоге. Я запускаю установку xampp по умолчанию на Windows 7 x64, если я могу быть достаточно точным:)

Ответы [ 2 ]

3 голосов
/ 26 марта 2010

Я предлагаю изучить set_time_limit () , а также убедиться, что ваш git pull не останавливается, если пользователь отключается через ignore_user_abort () . Даже работая с гигабитного сервера, некоторые репозитории просто клонируются.

Также проверьте рабочий каталог PHP и убедитесь, что пользователь, работающий с PHP, имеет права на запись в репозиторий. Если вы запустили его через CLI, и он «просто работает», вполне вероятно, что PHP работал без соответствующих привилегий при доступе через любой веб-сервер, который вы используете.

Если вы chmod каталог описания как 777, и он работает, есть очень хороший шанс, что вам нужно перекомпилировать apache / php для поддержки suexec. Пожалуйста, не оставляйте это как 777, если это так:)

В любом случае, время ожидания и пользовательские прерывания остаются действительными соображениями, даже после того, как вы заработаете.

1 голос
/ 26 марта 2010

Итак, чтобы ответить на мой собственный вопрос.

На самом деле это была проблема с правами доступа (спасибо, Тим), из PHP CLI, скрипт работал.

Проблема заключалась в том, что при установке службы php используются некоторые странные разрешения. Так что вам / мне нужно запустить сервер PHP через командную строку (или в этом случае панель управления Xampp).

Теперь он работает, давая мне «Уже в курсе». ответа я ждал :) 1009 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...