Блог web-мастера POLYGLOTа О жизни, связанной с Linux, PHP, MySQL, JavaScript, AJAX, SVN, CSS и многим другим

24Янв/102

Автоматизация обновления серверной www-директории из svn-репозитория через php-скрипт

subversion_logoМногие программисты при разработке используют систему контроля версий (CVS). Я в своей практике использую Subversion: для отлаженных на рабочем месте скриптов я выполняю commit, а затем на сервере делаю update. Для удобаства обновления серверной www-директориии был разработан следующий php-скрипт …

updater.php
<?php
echo "Update begin: ".date('c')." <br/><pre>";
echo shell_exec('export LC_CTYPE="ru_RU.UTF-8"
/usr/bin/svn --non-interactive --username=user --password=pass up /var/www/domain.com 2>svn_log.txt');
echo "</pre>Update end: ".date('c')."!";
?>

Немного прокомментирую приведенный код.

В первой и последней строках выполняется вывод времени начала и окончания операции обновления. В главной функции shell_exec выполняется 2 действия:

  1. export LC_CTYPE="ru_RU.UTF-8" - выполняется подключения русского языка, на случай, если были закоммичены файлы с русскоязычными названиями
  2. с новой строки выполняется сама операция апдейта данных, в которой указываются:
    • /usr/bin/svn - путь к исполняемому svn-файлу;
    • user – имя пользователя svn;
    • pass – его пароль;
    • /var/www/domain.com – серверный путь к www-директории для апдейта;
    • svn_log.txt – имя файла в который будут писаться сообщения о всех возникших ошибка.

Созданный скрипт updater.php и файл svn_log.txt (дать доступ 777) нужно положить в корень обновляемой www-директории и затем в браузере вызавть урл
http://domain.com/updater.php

После этого на экране Вы увидите сообщение вида:
Update begin: ...
U ...
At revision 293.
Update end: ...

Если Вы увидите только первую и последнюю строки или вообще пустую страницу, то это означает, что произошел какой-то сбой или конфликт, и вся информация о возникших ошибках находится в файле svn_log.txt. После разрешения ошибок необходимо повторно вызвать updater.php.

Связано с категорией: PHP, Subversion Оставить комментарий
Комментарии (2) Пинги (0)
  1. Уважаемый автор! не могли бы Вы подробнее рассказать о том, какие модули нужно установить и как создать и настроить SVN Repository на сервере. Спасибо!


Оставить комментарий


Security Code:

Нет обратных ссылок на эту запись.

Облако меток

Apache Cron crontab PHP Subversion WebMoney WMU WMZ Мир Привет программист

Облако тегов плагина WP Cumulus от сайта "Плагины и шаблоны для WordPress" требует для просмотра Flash Player 9 или выше.

Последние записи

Счетчики

Реклама