Pergunta

Eu estou escrevendo uma aplicação web em PHP, e ele veio tempo para construir um sistema de atualização, um dos requisitos é atualizações automáticas, como devo fazer isso?

Eu quero fazê-lo sem um cron, então eu vou ter que verificar se há atualizações quando as solicitações são feitas ao sistema, que eu deveria fazer isso apenas quando um administrador, com privs significativas, os logs-in, eu acho este vai ser o melhor, mas pelo menos 1 cliente disse que eles não querem isso porque eles só pretende iniciar sessão a cada poucos meses, e eles ainda querem obter o atualizações de segurança.

Foi útil?

Solução

Talvez você pode ter uma página em seu site que retorna um arquivo XML pequena, com o número da versão mais atual e uma URL para download:

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

Então, se os escolhe de administrador para executar e atualizar, seu aplicativo não precisa saber nada diferente do URL para o arquivo XML e o número da versão atual.

É claro que este é um exemplo muito limitado sobre a qual você pode expandir os vossos corações conteúdo.

Outras dicas

Use versionamento é claro!

Eu incluir esta 'plug-in' na maioria dos meus locais de produção: Claro, você precisa criar uma conta de direitos limitados robô svn para esta primeira e svn deve ser instalado no servidor.

    <?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();

Certifique-se de colocar isso atrás de uma ofcourse local .htpasswded, e certifique-se você não atualizar das configurações de produção 'de SVN. Et voilà, você atualizar sua base de código completo com um HTTP consulta ao seu site :) SVN substitui os arquivos automaticamente, não há arquivos ocultos ou pastas deixados para trás e sua facilmente adaptadas para atualizar ou reverter para uma versão específica. Agora todas as suas necessidades de equipe a fazer é comprometer-se a seu repositório SVN, executar este pedaço de código no ambiente de teste, certifique-se tudo funciona e, em seguida, executá-lo em produção:)

Quem vai estar criando as atualizações? Se é você, porque não basta ter as atualizações empurrados para o servidor quando eles são feitos? Uma vez que uma atualização está escrito, apenas rsync-lo mais e o servidor será imediatamente atualizado. Ele bate cron, e definitivamente bate verificando enquanto os usuários estão à espera de sua página para carregar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top