Massenänderung PHP-Version

  • Ich verwende Liveconfig in einem Projekt nur für mich als "Verwaltungserleicherungstool", Kunden haben da keinen Zugriff drauf.


    Nun will ich bei diesem Projekt die PHP-Version ändern und stehe vor einem Problem: wie mache ich das massenhaft und nicht nur bei einzelnen Domains. Alle Domains (es sind mehrere 100) durchzuklicken und von Hand zu ändern kann doch eigentlich nicht die Lösung sein? In der API gibt es aber, wenn ich nichts übersehen habe, auch nichts passendes.


    Wie macht man das also am besten? Gibt es einen Weg über die Datenbank evtl. (Liveconfig läuft auf MySQL). Ich weiß soll man nicht (kann ich auch nachvollziehen), aber vielleicht gibt es ja einen "Hack" ;)

  • Das geht nur über einen Eingriff in die Datenbank.
    In der Tabelle WEBRUNTIMES finden Sie die erkannten/registrierten PHP-Versionen. Merken Sie sich dort den Wert von WR_ID für die gewünschte Version.
    In der Tabelle SUBDOMAINS gibt es eine Spalte SD_PHPVERSIONID. Diese muss auf den gewünschten Wert von WR_ID gesetzt werden, z.B.

    SQL
    UPDATE SUBDOMAINS SET SD_PHPVERSIONID=2;


    Damit die Änderungen auch bei Apache ankommen, müssen dann noch alle vHosts aktualisiert werden. Hierzu führen Sie z.B. folgenden SQL aus und starten LiveConfig anschließend neu:

    SQL
    UPDATE HOSTINGCONTRACTS SET HC_REFRESHCFG=1;


    Wie immer: bitte vorher ein Backup der LiveConfig-Datenbank anlegen! ;)

    Edited once, last by kk: Schreibfehler (es muss SD_PHPVERSIONID aktualisiert werden, nicht WR_ID) ().

  • Hat wunderbar geklappt, vielen Dank!


    @ManDal:nicht über die GUI, aber direkt über MySQL (oder ein kleines Script, was man dann wiederrum in die GUI einbauen kann) lässt sich das mit den Hinweisen relativ schnell erstellen

  • Verträge mit PHP 5.6 finden:

    Code
    select HC_NAME from HOSTINGCONTRACTS where HC_ID in(select distinct D_CONTRACTID from DOMAINS where D_ID in(select distinct SD_DOMAINID from SUBDOMAINS WHERE SD_PHPVERSIONID IN(select WR_ID from WEBRUNTIMES WHERE WR_VERSION LIKE '5.6%' AND WR_FOUND = 1)));

    # Das Gras wächst nicht schneller wenn man daran zieht # Bitte keine inflationären Vollzitate #

    Edited 2 times, last by lebenszeit ().

  • Hab jetzt auch das Problem. Wäre nicht eine einfach Lösung, wenn ich z.B: PHP 7.1 opt runterschmeiße und liveconfig --diag (o.ä.) bei Domains, die PHP71 eingestellt haben ein Update auf die DEFAULT-Version durchführt?

  • Noch ein kleiner Einzeiler, der eine Liste der Hostingverträge, konfigurierten Subdomains und konfigurierter PHP-Version ausgibt:


Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!