Beiträge von kk

    Hallo,


    aufgrund eines Umzugs in neue Räume (innerhalb des Gebäudes) sind wir heute nur sehr eingeschränkt erreichbar. Wir gehen davon aus, dass die Technik bis ca. 15:00 umgezogen und wieder einsatzbereit ist.
    Ich bitte also noch um ein klein wenig Geduld für aktuelle Tickets.
    Anschrift und Telefonnummern bleiben unverändert.


    Viele Grüße


    -Klaus Keppler

    Welche Ubuntu-Version genau verwenden Sie? Ubuntu 16 bringt PHP 7.0.30 mit, Ubuntu 18 PHP 7.2.7.
    Zudem hat liveconfig-meta keine Abhängigkeit von PHP 7.1...


    Zum Opcache-Fehler: ist das Paket "libpcre3" installiert?


    Welche Fehlermeldung exakt meldet APT?

    Dort ergibt PHP-FPM aber IMHO - selbst mit "ondemand" - wenig Sinn.


    ACK. Shared Hosting ist mit FastCGI und den vielen "exotischen" Ansprüchen wesentlich entspannter (der eine Kunde braucht IonCube, der andere ZendGuard, der dritte sonstwas - und die sind bisweilen zueinander inkompatibel...).
    FPM macht insbesondere bei Projekt-Servern Sinn, da FPM einfach eleganter skaliert als FastCGI. Schneller ist es nicht (auch wenn das immer wieder hartnäckig behauptet wird).
    Mass Shared Hosting mit NGINX macht auch keinen Sinn (die Performance, die ein NGINX bietet, kann ein Shared Webspace gar nicht vernünftig nutzen, und man benötigt irre viel "Tuning", um handelsübliche CMS zum Laufen zu bringen...). Aber ich glaube ich schweife ab...

    Die Alternative dazu ist, für jeden Benutzer einen komplett eigenen PHP-FPM-Prozess (und nicht nur einen eigenen Pool) zu erstellen.


    Das hatten wir uns natürlich auch schon überlegt :D
    Mit systemd und "socket activation" bekommt man das sogar halbwegs sauber hin, ohne dass hunderte idle-Pools die Prozessliste zumüllen. Aber leider eben nur mit systemd. Und übersichtlicher wird das ganze dann auch nicht. Die Idee behalten wir mal im Hinterkopf, bei "normalem" Mass-Shared-Hosting schießt das eher über's Ziel hinaus.

    Und noch ein kurzer Nachtrag: FPM bietet gegenüber Apache mod_fcgid kaum nennenswerte Vorteile, lediglich die Skalierbarkeit lässt sich etwas besser konfigurieren. Die Kommunikation zwischen den Prozessen (Apache <-> PHP) ist bei beiden Verfahren sogar identisch.
    Lediglich mit NGINX macht FPM aufgrund des eigenen Prozessmanagers das Leben erheblich einfacher.


    Wer sich etwas tiefer mit Control Panels, Shared Hosting und FPM beschäftigt wird feststellen, dass FPM und insbesondere Caching (nicht nur Opcache, sondern auch APC) hierbei ein ernstzunehmendes Problem darstellen. Es gibt Control Panels, denen das völlig Schnuppe ist - LiveConfig zählt nicht dazu. ;)

    Hallo,


    mit Blick auf LiveConfig v2.7.0 und der Unterstützung von PHP-FPM möchte ich auf zwei wichtige Informationen hinweisen:


    1. PHP-FPM unterstützt aufgrund seiner Architektur keine zend_extension-Anweisung pro Vertrag. Das ist keine Einschränkung von LiveConfig, sondern von PHP (siehe #73408).
      Erweiterungen, die via zend_extension geladen werden müssen (z.B. xdebug oder IonCube-Loader) müssen also in eine "echte" php.ini aufgenommen werden und sind somit global aktiv. Der sauberste Weg hierfür ist es, im jeweiligen "conf.d"-Verzeichnis (z.B. /etc/php/X.Y/fpm/conf.d, /opt/php-X.Y/etc/conf.d) eine Datei wie "ioncube.ini" anzulegen und darin die notwendige zend_extension-Anweisung einzutragen.
      LiveConfig erzeugt derzeit in der jeweiligen FPM-Pool-Konfigurationsdatei die "php_admin_value[zend_extension]"-Anweisung, die wird aber ignoriert (wir werden die künftig also gar nicht erst rausschreiben).
      Das bedeutet: wir empfehlen, individuelle zend_extension-Anweisungen aus der php.ini-Verwaltung von LiveConfig zu entfernen und die Erweiterungen statt dessen global (via conf.d/###.ini) zu aktivieren - somit gibt es keinen Unterschied in der PHP-Umgebung wenn man zwischen FastCGI und FPM umschaltet.
    2. LiveConfig wird während des Upgrades auf v2.7.0-r5082 zwei weitere Einstellungen in die php.ini-Verwaltung aufnehmen: opcache.file_cache=%HOME%/tmp und opcache.lockfile_path=%HOME%/tmp. Das ist zwingend notwendig, um Dateien innerhalb des gemeinsamen Caches von Opcache sauber voneinander zu trennen.
      Architekturbedingt teilen sich nämlich alle PHP-FPM-Prozesse einen gemeinsamen Shared-Memory-Cache (also über Kunden/Vertragsgrenzen hinweg). Bis Anfang 2017 war das sogar ein akutes Sicherheitsrisiko (siehe ausführliche Diskussion bei #69090).
      Mit FastCGI (mod_fcgid) gab/gibt es dieses Problem nicht, das betrifft nur FPM.
      Die von uns bereitgestellten PHP-Pakete enthalten in der Datei conf.d/opcache.ini ab sofort zusätzlich die Anweisung "opcache.validate_permission=1" (zur Sicherheits nochmal der Hinweis: das ist nur für FPM relevant, beim bisherigen FastCGI macht das keinen Unterschied!)
      Fazit: die von LiveConfig erstellte Opcache-Konfiguration sorgt dafür, dass die Opcache-Dateien im jeweiligen Verzeichnis der einzelnen Kunden bleiben.
      Trotzdem ist Opcache ein latentes Sicherheitsrisiko in Shared-Hosting-Umgebungen, da die Sicherheit hier auf Anwendungsebene (PHP) und nicht auf Betriebssystemebene realisiert wird. Schafft es jemand, einen PHP-FPM-Prozess zu "kapern", hat er u.U. Zugriff auf den gemeinsamen Opcache.
      Wer etwas paranoider ist, sollte ggf. die Option opcache.file_cache_only aktivieren. Dann werden PHP-Scripte nicht im Shared Memory, sondern ausschließlich auf Dateiebene gecached und sind somit sauber isoliert.


    Die aktuellen PHP-Versionen (gestern gab es ein neues Release) sind eben frisch compiliert und stehen in Kürze in unseren Repositories bereit.


    Viele Grüße


    -Klaus Keppler

    Hallo Herr Graupner,


    vielen Dank für Ihre Hinweise! Bislang hatte LiveConfig OpenSUSE 15 noch nicht unterstützt, wir bauen das aber gerade ein (sollte dann mit v2.7.1 direkt unterstützt werden).


    Viele Grüße


    -Klaus Keppler

    Preview wurde auf v2.7.0-r5076 aktualisiert, da stimmt die SSL-Zuordnung wieder.


    Wir haben die Erzeugung der vHost-Konfigurationen massiv optimiert - in einem Testfall mit 3000 vHosts in einem einzelnen Vertrag (ca. 15 MB Konfigurationsdatei) dauert das aktuell nur noch 5 Sekunden statt vorher tatsächlich einigen Minuten.

    wurde an der SSL Auswahl was verändert? Gemäß GUI wurde das richtige SSL Zertifikat ausgewählt, aber Apache wählt das SSL Zertifikat darunter.


    An der Auswahl wurde nichts geändert, aber an der Konfigurationserzeugung. Fehler wird gerade behoben, Update folgt in wenigen Minuten...

    Die Preview wurde eben noch mal aktualisiert (v2.7.0-r5075).


    Wir testen derzeit noch die Umstellung von bestehenden Verträgen auf PHP-FPM - wenn nichts dazwischen kommt, erfolgt das Release noch diese Woche.


    Viele Grüße


    -Klaus Keppler

    Catchall könnten wir über eine LCDEFAULTS-Einstellung global abschaltbar machen (ist ein überschaubarer Aufwand).


    Was die externen Weiterleitungen betrifft: hier ist tatsächlich eine Blacklist geplant, um insbesondere Ziele bei gmail.com, t-online.de etc. zu blockieren, da Weiterleitungen dorthin häufig sehr problematisch sind.

    Wir haben inzwischen in einer Testumgebung einen Vertrag mit mehreren tausend vHosts erzeugt und in dieser Konfiguration verschiedene Profiling-Analysen durchgeführt.
    Wir werten die Daten aktuell aus, Anfang kommender Woche gibt's dann ein Update zu dem Thema.


    Viele Grüße


    -Klaus Keppler

    • Detected 'Debian GNU/Linux 7.11 (wheezy)'


    Debian 7 ist End-of-Life und sollte NICHT mehr genutzt werden. Ich empfehle wärmstens, auf Debian 8 zu aktualisieren (tut auch gar nicht weh ;)


    Zitat

    Laut App-installationsdatei ist nur PHP5.3 notwendig. Wo ist der Fehler? Muss das Installationsskript von PHP5.6 ausgeführt werden?


    Die im Installer-Script angegebene Mindest-Version wird bislang weder gepflegt noch ausgewertet - die Angabe sagt also nichts aus.
    ownCloud braucht mind. PHP 5.6.
    Der AppInstaller führt /usr/bin/php aus - Sie könnten also /usr/bin/php in /usr/bin/php-5.5 umbenennen und einen Symlink von /usr/bin/php auf /opt/php-5.6/bin/php erstellen.


    Viele Grüße


    -Klaus Keppler

    Backend ist MySQL (um genau zu sein MariaDB, ist ein Debian9-System), es sind runde 2600 VHosts in der webx.conf


    Wir werden mal ein Testsystem aufsetzen und versuchen das zu reproduzieren (inkl. ACME-Zertifikate). Dauert aber vermutlich 2-3 Tage, bis wir soweit sind.


    Zitat

    Die SSD hatte ich neulich ja schon mal getestet, zwar nicht überragend, aber auch nicht Mega-schlecht (und auf jeden Fall deutlich schneller als eine HDD) - an der sollte es also nicht liegen. Woran könnte es noch liegen?


    Auf den ersten Blick vermute ich, dass irgendeine SQL-Abfrage, die zum Aufbau der vHost-Konfiguration verwendet wird, langsam ist. Eine "durchschnittliche" vHost-Konfiguration hat ja nur eine überschaubare Zahl an VirtualHosts, daher fällt es meistens nicht auf wenn vielleicht ein Datenbankindex fehlt.


    Zitat

    Mir fällt ansonsten gerade noch auf, dass im /conf/acme-Verzeichnis fast 13000 Dateien sind - muss das so sein?


    Sie können alle alten ACME-Authz problemlos löschen:

    Code
    find conf/acme -type f -mtime +30 -delete


    Ich dachte eigentlich dass LiveConfig das erledigt, werden wir prüfen...

    [...] dauert es bei einer "Schreibezeit" von 2-3 Minute pro webx.conf also minimum 20 Minuten, eher mehr,[...]


    Da scheint mir an dem System eher grundsätzlich etwas nicht zu stimmen. Eine komplette vHost-Konfiguration ist üblicherweise in wenigen Millisekunden komplett geschrieben, auch wenn die mehrere MB groß ist.


    Verwenden Sie SQLite oder MySQL als Backend-Datenbank für LiveConfig?
    Wie viele VirtualHost-Abschnitte enthält eine Apache-Konfiguration bei Ihnen?

    Hallo,


    ab sofort steht eine erste Preview-Version von LiveConfig v2.7.0 zum Download bereit. Es sind noch nicht alle neuen Funktionen in allen Details durchgetestet, also bitte noch nicht produktiv einsetzen.


    Die wohl wichtigste Neuheit ist: LiveConfig unterstützt PHP nun auch via FPM (FastCGI Process Manager). Technisch betrachtet ist FPM das selbe wie FastCGI, allerdings läuft hier der Prozessmanager (der die PHP-Instanzen nach Bedarf startet und stoppt) als separater Prozess. Bei Apache macht das wenig bis keinen Unterschied gegenüber mod_fcgi, bei NGINX wird die PHP-Kontrolle damit aber wesentlich besser.
    Die konfigurierten PHP-FPM-Instanzen werden sowohl von Apache als auch von NGINX aus gemeinsam verwendet - wer bislang also beide Webserver nutzt, spart künftig viele Ressourcen ein.
    Um PHP-FPM zu nutzen, muss das Apache-Modul mod_proxy_fcgi aktiviert sein - dann kann man in den Vertragseinstellungen die PHP-Ausführung auf "FPM" einstellen.
    WICHTIG: beim Umstellen bestehender Verträge ist darauf zu achten, dass die aktuell ausgewählten PHP-Versionen (unter "Hosting" -> "Domains" eingestellt) auch als FPM auf dem Server verfügbar sind. Ist eine PHP-Version eingestellt, für die keine FPM-Version vorhanden ist, dann ist PHP dort sicherheitshalber deaktiviert.
    (ggf. muss für die Distributions-PHP-Pakete also das Paket "php-fpm" nachinstalliert werden)
    Der Aufruf von "liveconfig --diag" zeigt nun auch für jede gefundene PHP-Version separat die CGI- bzw. FPM-Variante an:


    Die zweite große Änderung betrifft die Installation von LiveConfig: mittels AutoDeploy kann die Installation besser automatisiert werden.
    Wurde zudem während der Installation kein admin-Passwort festgelegt, dann landet man ab sofort beim ersten Aufruf der LiveConfig-Oberfläche in einem separaten "Onboarding"-Menü. LiveConfig generiert ein Startpasswort (wird in /root/LiveConfig.txt gespeichert) - mit diesem müssen dann ein (sicheres) admin-Passwort, der Lizenzschlüssel und optional Kontaktdaten des Administrators eingegeben werden, bevor man sich am LiveConfig selbst anmelden kann.


    Daneben gibt es noch einige kleinere Änderungen und Verbesserungen, die im Changelog aufgeführt sind.


    Viele Grüße & ein schönes Wochenende


    -Klaus Keppler

    Das Paket "liveconfig-meta" für Debian/Ubuntu wurde eben auf Version 0.6.0 aktualisiert.
    Die Änderungen sind:

    • mod_http2 wird automatisch aktiviert (inklusive Umstellung von mpm_prefork/mpm_worker auf mpm_event)
      WICHTIG: falls mod_php aktiviert sein sollte, wird nur eine Warnung ausgegeben (HTTP/2 bzw. mpm_event verträgt sich nicht mit mod_php).
    • mod_proxy_fcgi wird automatisch aktiviert (wird für PHP-FPM benötigt, was LiveConfig ab der kommenden Version 2.7.0 unterstützt)


    (siehe Quellcode)


    Viele Grüße


    -Klaus Keppler