normal_post Autor Thema: apache Webserver, DynDNS, VirtualHosts  (Gelesen 73414 mal)

Offline >WP< Troubleshooter

  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 927
  • aka Trouble
apache Webserver, DynDNS, VirtualHosts
« am: 04. Oktober 2020, 16:46:10 »
Ich komme gerade mit dem Thema VirtuelleHosts nicht weiter.
Vermutlich stehe ich irgendwo voll auf der Leitung und evtl. kann mir einer von euch weiterhlfen (Forum oder mal TS).

System:
RaspberryPi, apache2
FritzBox mit myfritz DynDSN

Es sollen 3+x "Webseiten" auf dem Raspberry, apache laufen.:
1) NextCloud - von außen erreichbar
2) Pi-Hole - nur im lokalen Netz erreichbar
3) eine ganz primitve html Testwebseite - von außen erreichbar
4) ein smf Forum Testserver  - von außen erreichbar
5, ...) tbd

Router Freigaben
- Port 80 & 443 für https
- Port 81 ist nicht freigegeben (PiHole soll nicht von extern erreichbar sein)

Mein bisheriger Ansatz/Vorstellung:
1) /var/www/nextcloud ; extern: 123MeineAdresse.myfritz.net/nextcloud/
2) /var/www/PiHole ; intern: 192.168...:81/PiHole/admin/
3) /var/www/html ; extern: 123MeineAdresse.myfritz.net/html/
4) /var/www/smf ; extern: 123MeineAdresse.myfritz.net/smf/

2) und 4) gehen wie gewünscht
3) hat nur internen Zugriff, extern funzt nicht wie gewünscht (komme dann immer auf den smf)
1) habe ich jetzt jüngst versucht hinzuzufügen und damit bin ich voll in den Wald gekommen, das will nicht gehen


Ich habe einige Blogs, Videos, ... zu apache VirtualHosts durchsucht, aber irgendwie nie so ganz meine Konfiguration (vor allem 1 DynDNS auf verschiedene VirtualHosts) gefunden.
Die Anfänger Tutorials beziehen sich auf apache mit der einen Default HP starten (hatte ich hin bekommen, inkl. auf smf umbauen).
Die Fortgeschrittenen Tutorials sind dann direkt eher für Leute die mehrere IP Adressen zur Verfügung haben.

Zum Einstieg vielleicht die ersten Punkte:
Muss ich für alle "Webseiten" einen extra Port verwenden oder geht das auf Port80 mit den Pfaden?
Oder denke ich falsch und alles ist nur eine "Webseite" (1 gemeinsames /var/www/Verzeichnis) und wird dort per Link angesprochen?

Offline >WP< Troubleshooter

  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 927
  • aka Trouble
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #1 am: 04. Oktober 2020, 18:27:57 »
Ha, ich bin doch noch selber einen Schritt weiter gekommen.

Alias funzt im ersten Ansatz.

Dennoch bin ich weiterhin für Hinweise von jemanden der sich damit auskennt dankbar da mir noch nicht ganz klar ist wie ich für mich 'VirtuelleHosts' einsortieren soll (Alias scheint mir 1 Host aka "Webseite" zu sein).

Offline >WP< Weedy

  • :)
  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 810
  • Dumdidu
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #2 am: 04. Oktober 2020, 23:33:59 »
Hi Trouble,

jeder VHost hält eine oder mehrere Domain / IP + Port, also darf es nur einen VHost für 123MeineAdresse.myfritz.net geben. Du hast also folgende Möglichkeiten:
* Ein Ordner html, in dem wiederum html/, smf/ und nextcloud/ liegen. Diesen trägst du dann als DocumentRoot ein.
* Einen leeren Root Folder anlegen, diesen als DocumentRoot in den VHosts eintragen. Die Einbindungen für nextcloud/, html/ und smf/ regelst du dann über Aliases.

Edit: Man kann auch Symlinks benutzen, also html/, smf/ und nextcloud/ per Symlink in den DocumentRoot zu verlinken. In jedem Fall musst du auch immer darauf achten, dass auf die Ordner zugegriffen werden kann. Also Location oder Directory Blöcke mit Allow Direktiven einfügen.

Hoffe, das hilft dir weiter! :)
« Letzte Änderung: 04. Oktober 2020, 23:37:26 von Weedy »

Offline >WP< Troubleshooter

  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 927
  • aka Trouble
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #3 am: 05. Oktober 2020, 17:43:52 »
Danke weedy, so langsam lichtet sich das Dickicht.

Mit den Aliasen hat es sogar auch mit einem vollen DocumentRoot funktioniert, aber Deine Beschreibung hört sich übersichtlicher an.
Auch die Trennung über Ports ist sicher gut da klar nachvollziehbar, benötigt aber halt auch etwas mehr Einstellungen im Router.

Nachfrage zu Deinem ersten Vorschlag:
Sind die Unterordner dann 'automatisch' als 123MeineAdresse.myfritz.net/Unterordner erreichbar oder müssen sie noch irgendwie 'aktiviert'/'verknüpft' werden?


Was mir immer noch nicht so ganz klar ist:


Ordner mit index.html verstehe ich, die html Dateien stauben dann halt solange ein bis irgendwann darauf zugegriffen aka sie gelesen (angefordert) werden.

Aber was ist mit "Webseiten-Anwendungen" wie PiHole / nextcloud?
Das muss doch laufen (ein Prozess auf der CPU Wärme erzeugen) auch wenn gerade niemand die Seite aus einem Webbrowser heraus anspricht. Oder habe ich auch hier einen Denkfehler? - * hmm, mal sacken lassen ob das doch auch nur aktiv sein muss wenn es angesprochen wird oO *

Aus dieser 'Prozess muss laufen'-Überlegen heraus war ich immer auf ein VHost muss einer "Webseiten-Anwendungen" zugeordnet werden da ich dachte nur dann schmeißt apache die CPU dafür an.
Wird so etwas von apache 'gestartet' sobald es irgendwo (Unterordner/Alias) in einem VHost vorhanden ist?


Sorry, sind für Informatiker sicher recht triviale Fragen. Aber ich versuche das irgendwie für mich in meine Steine, Schlamm und Gestank Welt zu übersetzen  ::derpina::

Offline >WP< Weedy

  • :)
  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 810
  • Dumdidu
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #4 am: 09. Oktober 2020, 16:10:49 »
Sorry, hab lange nicht mehr ins Forum geschaut.

Zitat
Nachfrage zu Deinem ersten Vorschlag:
Sind die Unterordner dann 'automatisch' als 123MeineAdresse.myfritz.net/Unterordner erreichbar oder müssen sie noch irgendwie 'aktiviert'/'verknüpft' werden?

Wenn der Oberordner DocumentRoot ist sind auch die Unterordner erreichbar. Die Allow Einstellungen vererben sich nach unten. Wenn du allerdings Symlinks benutzt, musst du für die originalen Ordner jeweils Allow einstellen.


Zitat
Was mir immer noch nicht so ganz klar ist:

Ordner mit index.html verstehe ich, die html Dateien stauben dann halt solange ein bis irgendwann darauf zugegriffen aka sie gelesen (angefordert) werden.

Aber was ist mit "Webseiten-Anwendungen" wie PiHole / nextcloud?
Das muss doch laufen (ein Prozess auf der CPU Wärme erzeugen) auch wenn gerade niemand die Seite aus einem Webbrowser heraus anspricht. Oder habe ich auch hier einen Denkfehler? - * hmm, mal sacken lassen ob das doch auch nur aktiv sein muss wenn es angesprochen wird oO *

Jaein. Es kommt im Grunde auf die Sprache und Technik an. Wenngleich unüblich, gibt es Möglichkeiten eine Abarbeitung zu triggern, wenn sie nötig ist. Denn der Webserver (Apache2) läuft ja dauerhaft und könnte auch weitere Prozesse spawnen, wenn ein Skript angefragt wird.

Normal ist es aber, dass ein Daemon dauerhaft läuft und Anfragen für die Skripte bearbeitet. Beispiel PHP: Hier gibt es ein Modul für Apache (mod_php), das PHP als Teil des Apache Prozesses laufen lässt. Das heißt, PHP Skripte werden direkt im Apache Prozess prozessiert. Das ist die einfachste Art, es aufzusetzen.

Für größere Seiten oder andere Sprachen gilt meist: Es gibt einen Extra Daemon, der neben Apache läuft und die Skriptverarbeitung übernimmt. Bei PHP ist das PHP-FPM. Apache wird dann als Reverse Proxy für diese Zweit-Daemons benutzt, gibt also die Anfrage "Prozessiere folgendes Skript mit diesen Parametern" an den zweiten Daemon weiter und die Antwort, die der zweite Daemon gibt (Header und Inhalte) zurück an den Client.

Hier kann ich auch noch weiter ins Detail gehen, warum ein Zweit-Daemon best practice ist, usw.


Zitat
Aus dieser 'Prozess muss laufen'-Überlegen heraus war ich immer auf ein VHost muss einer "Webseiten-Anwendungen" zugeordnet werden da ich dachte nur dann schmeißt apache die CPU dafür an.
Wird so etwas von apache 'gestartet' sobald es irgendwo (Unterordner/Alias) in einem VHost vorhanden ist?

Genau, es muss ein Prozess laufen, der auf dem Port hört. Wobei das auch nicht 100 % stimmt. Es muss "etwas" laufen, das auf den Port hört. Es gibt noch abgefahrene Techniken, die bspw. auf Ports hören und dann bei Anfragen Prozesse spawnen.

Normaler ist aber, dass Daemons dieses "hören" übernehmen. In deinem Fall ist das Apache. Was Apache dann macht, ist Implementierungs- bzw. Konfigurationsdetail. Es könnte anhand der Anfrage entscheiden, die Anfrage als Proxy oder CGI Anfrage weiterzugeben. Oder ganz trivial: Inhalt einer Datei auszuliefern. :D

Na jedenfalls ja, es muss ein Prozess laufen und in diesem Fall ist das Apache. Und Apache muss wissen, was es mit dem Request tun muss, das sind die Config Dateien. VHosts mappen Konfigurationen auf bestimmte Ports und Domains / IP's und die Konfigurationen entscheiden wiederum, was mit dem Request passiert.

Zitat
Sorry, sind für Informatiker sicher recht triviale Fragen. Aber ich versuche das irgendwie für mich in meine Steine, Schlamm und Gestank Welt zu übersetzen  ::derpina::

Kein Problem, endlich fragt mal einer! Niemand fragt mehr über Apache, alle nur so "Serverless, Cloud, Modern" und so! :(

Offline >WP< Troubleshooter

  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 927
  • aka Trouble
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #5 am: 10. Oktober 2020, 16:38:04 »
Hab den Server mal platt gemacht und zum testen neu angefangen.


Zitat
Zitat
Nachfrage zu Deinem ersten Vorschlag:
Sind die Unterordner dann 'automatisch' als 123MeineAdresse.myfritz.net/Unterordner erreichbar oder müssen sie noch irgendwie 'aktiviert'/'verknüpft' werden?

Wenn der Oberordner DocumentRoot ist sind auch die Unterordner erreichbar. Die Allow Einstellungen vererben sich nach unten. Wenn du allerdings Symlinks benutzt, musst du für die originalen Ordner jeweils Allow einstellen.


Jup, die Unterordner funzen wie Du es beschrieben hast.
Und jetzt wird mir auch das Allow klarer (hatte es in der apache Doku schon mal gelesen aber nicht genau verstanden wann/wozu ich es bräuchte).


Zitat
Jaein. Es kommt im Grunde auf die Sprache und Technik an. Wenngleich unüblich, gibt es Möglichkeiten eine Abarbeitung zu triggern, wenn sie nötig ist. Denn der Webserver (Apache2) läuft ja dauerhaft und könnte auch weitere Prozesse spawnen, wenn ein Skript angefragt wird.

Normal ist es aber, dass ein Daemon dauerhaft läuft und Anfragen für die Skripte bearbeitet. Beispiel PHP: Hier gibt es ein Modul für Apache (mod_php), das PHP als Teil des Apache Prozesses laufen lässt. Das heißt, PHP Skripte werden direkt im Apache Prozess prozessiert. Das ist die einfachste Art, es aufzusetzen.

apache läuft nach dessen Installation auf der CPU, das habe ich schon angenommen.
Den kann ich auch starten/stoppen/restarten.
  • Läuft php auch nach der Installation oder nur wenn das durch z.B. apache getriggert wird?
  • Durchsucht apache/php automatisch alle weiteren Unterordner von /var/www/html/ (oder anderen VHosts) nach index.html oder *.php?
  • Oder benötigt es immer (auch im Hauptordner) erst einen Aufruf der Seite von extern (z.B. einem Webbrowser auf 123MeineAdresse.myfritz.net/Unterordner/example.php)?


Zitat
Für größere Seiten oder andere Sprachen gilt meist: Es gibt einen Extra Daemon, der neben Apache läuft und die Skriptverarbeitung übernimmt. Bei PHP ist das PHP-FPM. Apache wird dann als Reverse Proxy für diese Zweit-Daemons benutzt, gibt also die Anfrage "Prozessiere folgendes Skript mit diesen Parametern" an den zweiten Daemon weiter und die Antwort, die der zweite Daemon gibt (Header und Inhalte) zurück an den Client.

Hier kann ich auch noch weiter ins Detail gehen, warum ein Zweit-Daemon best practice ist, usw.

Sehr gerne mehr Details!

Im Falle meiner angedachten Anwendungen Pi-Hole und nextcloud und Test.html und test_smf.php.
Ich hätte jetzt:
  • Pi-Hole mit extra Port in extra VHost gelegt - /var/www/PiHoleOrdner/ (kein Zugriff von extern)
  • Alles andere mit Port80 in einem VHost, und dort mit
    • Unterordnern für html und smf.php test gearbeitet - /var/www/html/Unterordner1/ ...
    • Aliasen für nextcloud gearbeitet - /var/www/nextcloud/

Oder wäre es besser auch nextcloud einen eigenen Port+VHost zu spendieren?
Aliase sind mir irgendwie eingänglicher, oder was wäre der Vorteil von Symlinks und Allow?
Bzw. andere Vorschläge (nicht zu abgefahren, lieber BestPractice Hausmannskost zu der ich auch viel Doku finde)?


Zitat
Zitat
Aus dieser 'Prozess muss laufen'-Überlegen heraus war ich immer auf ein VHost muss einer "Webseiten-Anwendungen" zugeordnet werden da ich dachte nur dann schmeißt apache die CPU dafür an.
Wird so etwas von apache 'gestartet' sobald es irgendwo (Unterordner/Alias) in einem VHost vorhanden ist?

Genau, es muss ein Prozess laufen, der auf dem Port hört. Wobei das auch nicht 100 % stimmt. Es muss "etwas" laufen, das auf den Port hört. Es gibt noch abgefahrene Techniken, die bspw. auf Ports hören und dann bei Anfragen Prozesse spawnen.

Normaler ist aber, dass Daemons dieses "hören" übernehmen. In deinem Fall ist das Apache. Was Apache dann macht, ist Implementierungs- bzw. Konfigurationsdetail. Es könnte anhand der Anfrage entscheiden, die Anfrage als Proxy oder CGI Anfrage weiterzugeben. Oder ganz trivial: Inhalt einer Datei auszuliefern. :D

Na jedenfalls ja, es muss ein Prozess laufen und in diesem Fall ist das Apache. Und Apache muss wissen, was es mit dem Request tun muss, das sind die Config Dateien. VHosts mappen Konfigurationen auf bestimmte Ports und Domains / IP's und die Konfigurationen entscheiden wiederum, was mit dem Request passiert.

Bei requests von extern passt mein Bild mit apache.
apache schaut ob es den angefragten Pfad gibt und liefert genau die html oder triggert die angesprochene *.php.

Aber könnte eine php Anwendung z.B. Nachts um 03:27 ein "lala" in ein log schreiben ohne das um 03:27 irgendjemand von extern auf dieses *.php zugreift (sozusagen selbstgetriggert)?
(klar, das könnte auch ein cron Job, mir ist nur nichts besseres eingefallen)

Damit schließt sich auch wieder der Kreis zu oben - ob so etwas automatisch durchsucht und gestartet wird oder nur nach min 1 externen Aufruf.
« Letzte Änderung: 10. Oktober 2020, 18:13:05 von Troubleshooter »

Offline >WP< Troubleshooter

  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 927
  • aka Trouble
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #6 am: 10. Oktober 2020, 17:32:20 »
Ha! Ein Alias hat bei 123MeineAdresse.myfritz.net/Test Vorrang vor einem Unterordner :)

Wenn beides vorhanden ist, also
  • /var/www/html/Test/
  • /var/www/Test/


Update:
Habe eine Anleitung für mein Niveau gefunden um Pi-Hole über Docker laufen zu lassen. Das coole daran ist die extra IP Adresse des Docker Containers (andere als die vom PI auf dem das läuft), damit ist es super getrennt ^^
Und Pi-Hole kann damit seine vorgegebenen Webserver Einstellungen behalten (habe es zwar generell auch auf apache zum laufen gebracht, aber Schreibrechte des Web-Interfaces hatte ich nicht hinbekommen).
Plus ich habe erstmals was mit Docker gemacht - auch wenn ich es nicht verstehe (aber das ist normal und bei apache ... nicht anders).

Wenn Du mal Zeit hast freue ich mich weiterhin mehr von dem was ich hier mache zu verstehen.
« Letzte Änderung: 13. Oktober 2020, 21:46:16 von Troubleshooter »

Offline >WP< Troubleshooter

  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 927
  • aka Trouble
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #7 am: 14. Oktober 2020, 20:11:19 »
20% ist nicht wenig  :o


Offline >WP< Spaartaaa

  • Mr. Oberverschwörungstheoretiker
  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 335
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #8 am: 15. Oktober 2020, 20:06:11 »
whoa, 6 Mio auf der Blocklist? Ich habe nur 83k, muss mal meine Liste updaten... Dafür aber knapp 26 % geblockt :D

Offline >WP< Troubleshooter

  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 927
  • aka Trouble
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #9 am: 15. Oktober 2020, 20:31:38 »
whoa, 6 Mio auf der Blocklist? Ich habe nur 83k, muss mal meine Liste updaten... Dafür aber knapp 26 % geblockt :D

Ich hab die Blocklisten von Sempervideo importiert.

Natürlich nicht alle, bzw. einige hatte ich aus versehen importiert und dann wieder runter geworfen (https://www.der-postillon.com/ war auf der child protection Liste - WTF! Und ich dachte die schützt mich vor Kindern ...)



Ach und nach 'Update Gravity' waren es nur noch 2 Mio.
« Letzte Änderung: 15. Oktober 2020, 21:26:07 von Troubleshooter »

Offline >WP< Weedy

  • :)
  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 810
  • Dumdidu
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #10 am: 22. Oktober 2020, 23:49:36 »
So viele neue Posts, gar nicht mehr gewohnt!

Zitat
apache läuft nach dessen Installation auf der CPU, das habe ich schon angenommen.
Den kann ich auch starten/stoppen/restarten.
  • Läuft php auch nach der Installation oder nur wenn das durch z.B. apache getriggert wird?
  • Durchsucht apache/php automatisch alle weiteren Unterordner von /var/www/html/ (oder anderen VHosts) nach index.html oder *.php?
  • Oder benötigt es immer (auch im Hauptordner) erst einen Aufruf der Seite von extern (z.B. einem Webbrowser auf 123MeineAdresse.myfritz.net/Unterordner/example.php)?

PHP mit Apache's mod_php läuft innnerhalb des Apache Prozesses, also immer wenn Apache läuft, die *CGI oder auch "ReverseProxy" Alternativen haben mindestens einen Main-Prozess (der die Arbeit verteilt, wie im echten Leben) und Childs, die dann wirklich arbeiten. :) Das macht Apache übrigens auch, wenn du dir `ps -ef`anschaust. Die Daemons leben quasi (oder nur oft!) vom "forken" :D

In jedem Fall muss Apache wissen, was es mit *.php Files machen soll. mod_php übernimmt das eingeständig. Bei Proxies kommt meist ein RegEx o.ä. zum Einsatz (Hier Beispiele: https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html )

Du musst einen Aufruf auf Apache auch so verstehen: Apache bekommt URL + Header + Body und "reagiert darauf". Es kann bspw. die URL interpretieren und davon ableiten, "etwas zu tun".

Beispielsweise:
  • Ist die URL blabla.com/irgendwas/einfile.trouble => blabla.com:80 (Der Browser added den Port, also es gibt immer einen Port)
  • => VirtualHost "X"
  • => X hat einen Alias für "/irgendwas" auf "/var/troublesome"
  • => Außerdem einen Directory Eintrag auf "/var/troublesome" (denn jetzt ist das der neue Pfad, denn der Alias hat Vorrang!) mit "Require all granted" (Ich schrieb dies nachdem ich Require wiederentdeckt hatte, siehe viiieeel weiter unten!)
  • => Nun ist der Default nach einer Datei dort zu gucken, aber vielleicht wird *.trouble durch eine Regel (oder ein mod_*? Vielleicht mod_troublesomeinterpreter????) zu einer anderen Aktion aufgerufen, als die Datei auszuliefern. Bspw. ein Interpreter, oder wir geben einfach nur "einfile" als Inhalt zurück, weil eine Regeln sagt, gib den Inhalt zurück und ignoriere, ob es diese Datei überhaupt gibt
  • oder oder oder.



Zitat
Sehr gerne mehr Details!

Challenge accepted!

Die Separation of Concerns (ich nenns später SoCo. Keiner macht das, aber ich bin faul und schreib lieber 10 100 255 Wörter Erklärung, als nur einmal mehr "Separation of Concer...VERDAMMT!) ist der Grund für viele Splits in der IT. Wir haben die Server vom Client gesplittet, die Serverprozesse untereinander, damit wir mehrere Server haben können, das Frontend vom Backend, die vielen Frontends und Backends miteinander von anderen Frontends und Backends (SCS) und dann die Backends untereinander vom Frontend (Microservice). Und dann kamen wir auf die Idee, die Infrastruktur auszulagern (IaaS) und letzten Endes ganz weg zu lassen (Serverless).

Also: Wir entkoppeln so weit wir müssen. Für den einfachen Anwendungsfall eines Homemade Webservers entkoppeln wir gar nichts, denn wir brauchen das nicht: "Apache Module "mod_php"". Aber wenn es an's eingemachte geht, dann entkoppeln wir, was das Zeug hält. Denn je größer der Workload, desto relevanter wird es, die Einzelteile nur einzeln zu skalieren.

Jede Trennung bedeutet aber: Mehr Komplexität. Deswegen haben wir selten Serverless in Privatanwendungen. Denn wer Serverless "rechnet", sollte auch Serverless "speichern", "CICD". (Also: Wenn dein Codeteil Serverless ist, muss auch dein Datenbankteil Serverless sein - sonst macht es eh keinen Sinn! usw! Und das zieht sich Business seitig in Backend-Systeme in SaaS, die das dann wiederum nicht können! (Ich mach immer das beste draus, hoffe ich!))

Mehr als nur "Apache" zu haben, also beispielsweise "PHP-FPM" für PHP-Interpretation zu betreiben, ist ein Schritt zwischen "Server vom Client trennen" und "Serverprozesse untereinander trennen". Denn es trennt den Workload eines HTTP Servers (Apache) vom Workload eines Script-Interpreters (PHP) (Manche bezeichnen PHP als vollwertige Programmiersprache. Das wäre sie auch gerne und versucht dafür alles, früher z.B. Perl zu kopieren, heute z.B. TypeScript zu kopieren!)

Die Prozesse dürfen zwar gerne auf einem Server laufen - aber gerne auch auf unterschiedlichen. Und gerne auch jeweils auf vielen! (Stichworte: Load Balancer - für Apache https://httpd.apache.org/docs/2.4/mod/mod_proxy_balancer.html ) Also heißt SoCo auch: Skaliere besser. Und jetzt wissen wir auch, warum jede weitere Abstraktion und Separierung Sinn machen könnte: Wir möchten besser skalieren!

Darauf läuft es immer hinaus und deshalb ist es kein "Shame", mod_php zu benutzen. Das macht uns nicht uncool (PHP schafft das auch ohne mod_*) und es erfüllt die Maßgabe "The right tool for the right job", bis unser Workload zu groß (Sprich: Unwirtschaftlich) dafür wird.



Zitat
Im Falle meiner angedachten Anwendungen Pi-Hole und nextcloud und Test.html und test_smf.php.
Ich hätte jetzt:
  • Pi-Hole mit extra Port in extra VHost gelegt - /var/www/PiHoleOrdner/ (kein Zugriff von extern)
  • Alles andere mit Port80 in einem VHost, und dort mit
    • Unterordnern für html und smf.php test gearbeitet - /var/www/html/Unterordner1/ ...
    • Aliasen für nextcloud gearbeitet - /var/www/nextcloud/

Oder wäre es besser auch nextcloud einen eigenen Port+VHost zu spendieren?
Aliase sind mir irgendwie eingänglicher, oder was wäre der Vorteil von Symlinks und Allow?
Bzw. andere Vorschläge (nicht zu abgefahren, lieber BestPractice Hausmannskost zu der ich auch viel Doku finde)?

Das ist absolut richtig! Die Aliase zu benutzen bedeutet abr trotzdem eine Directory Direktive - vermutlich mit Allow (Require) drin. Das ist ja auch keine Einschränkung, sondern nur ein Detail, also keine Nachteile für ein Alias, denn Allow Require's braucht es immer! Entweder sind Allow Require's vererbt, oder explizit gegeben.

Außerdem bin ich schon sehr alt in der IT, obwohl ich mich jung fühle und Allow ist schon eine Weile durch "Require" ersetzt. Ich wusste das schon eine Weile, aber Allow und Deny waren so drin und in meinem alten Job auch nach wie vor gang und gäbe, jedenfalls, hier die korrekte Art das zu benutzen: https://httpd.apache.org/docs/2.4/howto/access.html

Alter schützt vor Strafe nicht, oder auch: Hausmannskost muss man doch immer mal neu Abschmecken. :D



Zitat
Bei requests von extern passt mein Bild mit apache.
apache schaut ob es den angefragten Pfad gibt und liefert genau die html oder triggert die angesprochene *.php.

Aber könnte eine php Anwendung z.B. Nachts um 03:27 ein "lala" in ein log schreiben ohne das um 03:27 irgendjemand von extern auf dieses *.php zugreift (sozusagen selbstgetriggert)?
(klar, das könnte auch ein cron Job, mir ist nur nichts besseres eingefallen)

Damit schließt sich auch wieder der Kreis zu oben - ob so etwas automatisch durchsucht und gestartet wird oder nur nach min 1 externen Aufruf.

PHP Kann sowohl durch Apache (mod_php), PHP-FPM oder auch durch normale cgi (Command "php") aufgerufen werden. PHP kann wie jedes andere Skript auch einfach in der Konsole aufgerufen werden. Erstelle eine PHP Datei mit dem Inhalt `<?php echo "I'm called"; ?>` und dann ruf in deiner Konsole auf `php meinedatei.php`. Das geht, denn PHP ist ein Interpreter wie auch bash. (`bash -e "echo I'm called;"`) Und PHP versucht natürlich auch wie Bash zu sein!

Achso, und das bedeutet natürlich auch: PHP kann auch per cron gestartet werden, oder per jedem anderen Aufruf. :)

Ein Wort zu PHP: Treat it like Facebook. (Das sollte alle verschiedenen Menschengruppen, die das lesen könnten, korrekt instruieren.)

Offline >WP< Spaartaaa

  • Mr. Oberverschwörungstheoretiker
  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 335
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #11 am: 15. April 2021, 12:35:18 »
kennt sich denn hier wer mit nagios und nginx aus oder anders blöd gefragt, warum leitet pnp4nagios die Anfrage an die Adresse
Zitat
"/usr/share/nagios3/htdocs/pnp4nagios/index.php/graph" failed (20: Not a directory), client: 192.168.178.21, server: example.tld, request: "GET /pnp4nagios/index.php/graph HTTP/1.1", host: "192.168.178.80"
weiter?  ::rage::

Offline >WP< Spaartaaa

  • Mr. Oberverschwörungstheoretiker
  • WolfPack Member
  • Nutzer
  • *
  • Beiträge: 335
Antw:apache Webserver, DynDNS, VirtualHosts
« Antwort #12 am: 16. April 2021, 14:44:38 »
kennt sich denn hier wer mit nagios und nginx aus oder anders blöd gefragt, warum leitet pnp4nagios die Anfrage an die Adresse
Zitat
"/usr/share/nagios3/htdocs/pnp4nagios/index.php/graph" failed (20: Not a directory), client: 192.168.178.21, server: example.tld, request: "GET /pnp4nagios/index.php/graph HTTP/1.1", host: "192.168.178.80"
weiter?  ::rage::
Egal, habe nun mit apache zum Laufen gebracht mit der Anleitung unter
https://support.nagios.com/kb/article/nagios-core-performance-graphs-using-pnp4nagios-801.html#Raspbian
Jetzt kann ich meinen Ping monitoren, wenn der Rechner auch aus ist  ::happycry::

 

Seite erstellt in 0.018 Sekunden mit 25 Abfragen.