Svn-Updates von einem serverseitigen Cron-Job automatisieren

Ich führe WordPress auf Ubuntu mit Apache und MySQL. Ich möchte kleinere und Sicherheitsupdates automatisch in WordPress installieren.

Wie ich es verstehe, wird der Standard-Auto-Update-Mechanismus (siehe auch Wie funktionieren automatische Updates? ) Letztendlich durch eine Web-Anfrage ausgetriggers, was bedeutet, dass der Update-process als Apache-Benutzer ausgeführt wird (für mich sind es www-data ). Also muss der www-data Benutzer die Erlaubnis haben in die PHP-Dateien von WordPress zu schreiben. Das macht mich unbehaglich – es könnte einen Angreifer dazu bringen, eine “create files” -V Schwachstelle zu “beliebigen Code auszuführen” eskalieren zu lassen. Ich würde lieber die WordPress-PHP-Dateien und das Verzeichnis behalten, die jemand anderem als www-data , und lassen sie nur-lesen zu www-data . Daher würde ich den Standardmechanismus lieber nicht verwenden.

Die einzige Alternative, die ich kenne, ist das Ausführen von svn sw wie hier beschrieben . Dies erfordert jedoch das Ausführen eines Befehls einschließlich der gewünschten neuen Version. Ich kann es also nicht in einen Cron-Job einfügen, da ich nicht weiß, wie der Cron-Job ohne manuellen Eingriff herausfinden würde, was die neue Versionsnummer ist. Ich könnte eine Art Hack erstellen, der versucht, die neueste Versionsnummer von wordpress.org , aber das scheint sehr fragil zu sein. Gibt es einen besseren Weg oder ein existierendes Skript, das ich einfach benutzen könnte?

Der letzte Schritt in einem SVN-Update besteht darin, wp-admin/config.php mit einem Webbrowser zu besuchen und sich bei Bedarf einzuloggen. Gibt es eine direkte Möglichkeit, dies automatisch von einem Cron-Job auf dem Server durchzuführen, im Idealfall, ohne mein Admin-Passwort in ein Skript zu schreiben?

Solutions Collecting From Web of "Svn-Updates von einem serverseitigen Cron-Job automatisieren"

Ich würde lieber die WordPress-PHP-Dateien und das Verzeichnis behalten, die jemand anderem als www-data gehört, und lassen sie nur-lesen zu www-Daten

Gut, warum nicht? Tun Sie es einfach, aber nachdem es von jedem (von mindestens zwei) Kanal von “Release Notification” (geringe Aktivität, leicht auch mit den Augen gesteuert) per Hand abonniert hat: Mail-Liste oder RSS-Kanal auf der offiziellen Website für die Kategorie “Releases” . Mit diesen Benachrichtigungen können Sie:

  • Anmelden, um mit der Site zu hosten
  • Rücksendungen | Besitz
  • führe ein “klassisches” WP-Update durch
  • Rollback-Besitz | Persmissions in “strikter RO” -Zustand
  • Sei glücklich, bis die nächste Veröffentlichung veröffentlicht wird

Auf der anderen Seite können Sie etwas Automatisierung um ML-Nachrichten | Feeds und, mit SVN-kontrollierten WP-Blog, Subversions-Update nicht in Cron (verschwendete Zeit und Ressourcen in 99% -Läufen), aber auf Anfrage (Howto zu diesem Thema ist) Offtopic hier, fragen Sie auf SuperUser | WebMaster | StackOverFlow)

Wenn Sie Ihren aktuellen Blog in SVN-verwaltet konvertieren und es wird ein Event “Neues Release”, gestartet (muss um meine schmutzige Idee geschrieben werden) SVN-Updater kann neueste Release eher leicht erkennen (und wechseln WC von Blog zu it): In dem von dir notierten Artikel “Installieren / Aktualisieren von WordPress mit Subversion” ist es nur so

 cd blog svn sw https://core.svn.wordpress.org/tags/4.7.3/ . 

wo 4.7.3 die richtige Version ist, müssen Sie nur halbautomatisch die “The Right” -Version ändern. Nun, schauen wir uns die URL im Befehl und die Ausgabe eines weiteren SVN-Befehls an (wird im Live-WP-Core Repo verwendet)

 >svn ls https://core.svn.wordpress.org/tags/ 1.5/ ... 4.7.3/ 

letzter String ist immer die Nummer des letzten WP-Release (ok, Release mit der größten Nummer, technisch gesehen). Für gute OS mit guter Shell “letzte Zeichenfolge von SVN ls” Ausgabe ist nur svn ls |tail -1 und Sie haben Ziel, auf dem Sie wechseln müssen

Schlussnote:

Der letzte Schritt in einem Svn-Update besteht darin, wp-admin / config.php mit einem Webbrowser zu besuchen

Nein. Nach der gleichen Seite in Codex wie oben erwähnt

Führe die übliche wp-admin / upgrade.php aus und du bist fertig

und diese Aufgabe kann (ohne getestet !!!) ohne den Browser des Clients ausgeführt werden, indem zB cURL mit URL in der Server-Konsole aufgerufen wird (Aufgabe des gleichen SVN-Updater-Skripts)