PHP Uygulama Güncellemeler

3 Cevap php

PHP bir web uygulaması yazıyorum ve bir güncelleme sistemi, şartlarından biri, bunu nasıl yapmalıyım, otomatik güncellemeleri kurmak için zaman geldi?

Ben bir cron olmadan bunu yapmak istiyorum, bu yüzden bu oluyor bir yönetici, önemli privs ile, günlükleri-, sanırım sadece ben bu yapmalıyım, istekleri sisteme yapıldığında güncellemeleri kontrol etmek zorunda kalacağım iyi olmak için ama en az 1 müşteri sadece birkaç ay giriş niyetinde çünkü bu istemiyorum söyledi, ve hala güvenlik güncellemelerini almak istiyorum.

3 Cevap

Belki en güncel sürüm numarası ve indirmek için bir URL ile küçük bir XML dosyası döndürür sitenizde bir sayfa olabilir:

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

Yönetici yapmak ve yükseltmek için seçerse, sonra uygulama XML dosyasına URL ve geçerli sürüm numarasından başka bir şey bilmek gerekmez.

Tabii ki bu sizin kalpleri içerik genişletebilirsiniz bunun üzerine çok sınırlı bir örnektir.

Tabii sürüm kullanın!

I include this 'plugin' in most of my production sites: Ofcourse, you need to create a limited-rights robot svn account for this first and svn must be installed on the server.

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

Make sure you put this behind a .htpasswded site ofcourse, and make sure you do not update the 'production settings' from SVN. Et voila, You update your complete code base with one HTTP query to your site :) SVN overwrites the files automatically, there's no hidden files or folders left behind and its easily adapted to update or revert to a specific version. Now all your team needs to do is commit to their SVN repository, run this piece of code on the testing environment, make sure everything works and then run it on production :)

Kim güncellemeleri oluşturmak için gidiyor? Eğer varsa, neden sadece yaptıkları yaparken güncelleştirmeleri sunucuya itti yok? Bir güncelleme yazıldıktan sonra, sadece üzerinde rsync ve sunucu hemen güncel olacaktır. Cron yener, ve kesinlikle kullanıcıların yüklemek için kendi sayfasına beklerken kontrol yener.