Beispiel für indivuduelle Anpassung für Apache mit custom.lua

  • Hier mal ein Beispiel, wie man per custom.lua nach der Konfiguration noch ein Script aufruft. Primär für mich zum Nachschlagen, wenn ich es das nächste Mal wieder brauche. :)



    Das Script erst testen mit

    Code
    /usr/lib/liveconfig/lclua /usr/lib/liveconfig/lua/custom.lua


    und anschliessend liveconfig /etc/init.de/liveconfig restart oder service liveconfig restart neu starten. Wenn Fehler im LUA-Code sind, dann startet liveconfig nicht mehr.


    Das Script /etc/apache2/lc_post_vhost_hook.sh, sofern es denn vorhanden und ausführbar ist, wird nach der VHost-Konfiguration aufgerufen.


    In diesem Script nutze ich dann z. B. den "sed" um an einer bestimmten Stelle noch ein Include einzufügen. Include deshalb, damit die Änderung so klein wie möglich bleibt. Das minimiert dann auch Fehler bei der automatischen Nachbearbeitung.


    Hier noch ein Beispiel für das Script: /etc/apache2/lc_post_vhost_hook.sh


  • fx998 Super, vielen Dank hierfür! Hab allerdings noch ein paar kleine Probleme:


    1. Kommentare in Lua werden mit einem vorangestellten doppelten Bindestrich gekennzeichnet. Habe also in Zeile 8,11 und 24 "#" durch "--" ersetzt.


    2. Bekomm aktuell beim Ausführen der Funktion (Speichern eines vHosts in LiveConfig) noch folgende Fehlermeldung in den



    Zeile 14. bezieht sich auf:


    Code
    res = apache_orig.configureVHost(cfg,opts)


    Ne Idee was hier schief läuft?

  • Funktioniert!


    Würde allerdings noch empfehlen den sed Delimiter von "/" auf ein anderes Zeichen abzuändern (zum Beispiel ","), da $conf_include durchaus Slashes enthalten kann und dann die sed expression nicht mehr gültig ist:


    Code
    [...]
    sed -ri -e "/Include $conf_include/d"          \
            -e "s,^(.*ServerName.*$url.*)\$,\1\n    Include $conf_include," $vhost_config_file
  • Sehr schön. Nächstes Bonusfeature: Domainnamen (welcher aktuell noch per Hand in die $conf_include und $url Variablen geschrieben wird) automatisch per Lua auslesen und als 2. Argument an die lc_post_vhost_hook.sh übergeben.


    Somit könnte man das Script generell nutzen und muss nicht für jede "Kundenänderung" eine neue Hook basteln.

  • So, GitHub repository steht und das Script ist soweit auch angepasst (dynamisch, Domainnamen als 2. Argument übergeben): https://github.com/frdmn/LiveConfig-scripts


    Bin mir aktuell noch nicht ganz sicher ob man das nicht etwas eleganter lösen kann, allerdings wissen wir in dem apache_orig_configureVHost(opts, cfg) Funktionsaufruf noch nicht um welchen Domainnamen es speziell geht.


    Dort sind nur _alle_ Domains aus dem entsprechendem Webspace hinterlegt:


    (Beispielobjekt "opts" dekodiert als JSON: http://paste.frd.mn/qetal)


    Edit: Erste Version der nginx_post_vhost_hook ist nun auch fertig und gepusht.


    Bei Feedback oder Verbesserungsvorschlägen einfach kurz Bescheid geben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!