Frage

ich eine Web-App in PHP schreibe, und es hat sich Zeit, um ein Update-System, eine der Voraussetzungen ist, automatische Updates zu bauen, wie soll ich tun?

Ich will es tun, ohne einen Cron, so dass ich gehen zu müssen, um nach Updates zu überprüfen, wenn Anforderungen an das System gestellt werden, sollte ich dies nur tun, wenn ein Admin, mit erheblichen privs, logs-in, ich glaube, das wird die beste, aber mindestens 1 Client sein hat gesagt, sie dies nicht wollen, weil sie nur alle paar Monate um sich einzuloggen beabsichtigen, und sie wollen immer noch die Sicherheits-Updates erhalten.

War es hilfreich?

Lösung

Vielleicht können Sie eine Seite auf Ihrer Website, die eine kleine XML-Datei mit der aktuellen Versionsnummer und eine URL zum Download gibt:

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

Dann, wenn der Administrator ausführen und aktualisieren wählt, wird Ihre Anwendung nicht brauchen, um etwas anderes als die URL der XML-Datei und die aktuellen Versionsnummer zu kennen.

Natürlich ist dies ein sehr begrenztes Beispiel, auf das Sie nach Herzenslust erweitern können.

Andere Tipps

Mit Versionierung ofcourse!

ich um diesen ‚Plugin‘ in den meisten meiner Produktionsstandorte: Natürlich steht, benötigen Sie einen begrenzten Rechts Roboter svn Konto für diese erste und SVN zu erstellen, muss auf dem Server installiert werden.

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

Stellen Sie sicher, dass Sie hinter einer .htpasswded Website setzen diese ofcourse, und stellen Sie sicher, dass Sie die ‚Produktionseinstellungen‘ aus dem SVN nicht aktualisieren. Et voilà, aktualisieren Sie Ihre vollständigen Code-Basis mit einer HTTP-Abfrage auf Ihre Website :) SVN automatisch die Dateien überschreibt, gibt es keine versteckten Dateien oder Ordner hinter sich gelassen und seine leicht auf eine bestimmte Version zu aktualisieren oder wiederherstellen angepasst. Nun sind alle Ihr Team ist, um ihre SVN-Repository verpflichten tun muss, führen Sie dieses Stück Code auf der Testumgebung, stellen Sie sicher funktioniert alles und dann auf die Produktion laufen:)

Wer wird die Updates zu schaffen werden? Wenn Sie es sind, warum haben nicht nur die Updates auf den Server übertragen, wenn sie gemacht sind? Sobald ein Update geschrieben, rsync es knapp über und der Server wird sofort auf dem neuesten Stand sein. Es schlägt Cron, und es auf jeden Fall schlägt Kontrolle, während die Benutzer warten auf ihre Seite zu laden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top