Обновления приложений PHP - PullRequest
2 голосов
/ 18 января 2009

Я пишу веб-приложение на PHP, и пришло время построить систему обновлений, одно из требований - автоматические обновления, как мне это сделать?

Я хочу сделать это без cron, поэтому мне придется проверять наличие обновлений при запросах к системе, если я делаю это только тогда, когда администратор со значительными привилегиями входит в систему, я думаю это будет лучшим, но по крайней мере 1 клиент сказал, что не хочет этого, потому что он намеревается входить в систему раз в несколько месяцев и все еще хочет получать обновления безопасности.

Ответы [ 3 ]

2 голосов
/ 18 января 2009

Возможно, у вас может быть страница на вашем сайте, которая возвращает небольшой файл XML с самым последним номером версии и URL для загрузки:

<xml> <version>1.x.y</version> <url>http://example.com/current.tgz </url> </xml>

Тогда, если администратор выберет выполнение и обновление, вашему приложению не нужно будет знать ничего, кроме URL-адреса файла XML и номера текущей версии.

Конечно, это очень ограниченный пример, на котором вы можете расширить содержание своего сердца.

1 голос
/ 18 января 2009

Использовать версионирование курса!

Я включаю этот «плагин» в большинство моих производственных сайтов: Конечно, для этого нужно сначала создать учетную запись svn робота с ограниченными правами, а svn должен быть установлен на сервере.

    <?php

    echo(' updating from svn<br>' );
    $username = Settings::Load()->Get('svn','username');
    $password = Settings::Load()->Get('svn','password');
    echo(" <pre>" );
    $repos = Settings::Load()->Get('svn' , 'repository');
    echo system ("svn export --username={$username} --password {$password} {$repos}includes/ ".dirname(__FILE__)."/../includes --force");
    echo system("svn export --username={$username} --password {$password} {$repos}plugins/ ".dirname(__FILE__)."/../plugins --force");

    die();

Убедитесь, что вы разместили это за сайтом .htpasswded, и убедитесь, что вы не обновляете «производственные настройки» из SVN. Et voila, Вы обновляете свою полную кодовую базу одним HTTP-запросом на свой сайт :) SVN автоматически перезаписывает файлы, не оставляя скрытых файлов или папок, и его легко адаптировать для обновления или возврата к определенной версии. Теперь все, что нужно вашей команде - это зафиксировать свой SVN-репозиторий, запустить этот фрагмент кода в среде тестирования, убедиться, что все работает, а затем запустить его на производстве:)

0 голосов
/ 18 января 2009

Кто будет создавать обновления? Если это вы, почему бы просто не отправить обновления на сервер после их создания? Как только обновление написано, просто rsync его, и сервер будет немедленно обновлен. Он превосходит cron, и он определенно превосходит проверку, пока ваши пользователи ждут загрузки своей страницы.

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