Apache-Server unter freetz

p3rsi2k_

Neuer User
Mitglied seit
11 Jun 2023
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Hallo,

ich bin inzwischen nahezu ratlos und weiß mir nicht anders zu helfen, als hier Hilfe zu suchen. Ich hoffe, dass ich auch auch das richtige Unterforum für mein Problem erwischt habe.

Ich habe versucht einen apache-Server entsprechend dieser Anleitung auf meiner Fritzbox 4040 aufzusetzen. Soweit klappt auch alles. Jedoch habe ich das Problem, dass, wenn ich den Server gemäß des vorgegebenen Codes am Ende der Seite starten will, bekomme ich immer die Rückmeldung

Bash:
sh: /var/media/ftp/USB/apache/bin/apache: Permission denied

Der USB-Stick an der Fritzbox ist mit ext2 formatiert.
Die Ordner/Dateirechte habe ich schon in allen möglich Varianten versucht zu setzen. Sowohl den Ordner /USB, als auch nur den Ordner /apache per chmod.
Jeweils kein Erfolg. Auch das setzen per FTP-Server führte nicht zum gewünschten Ergebnis.

Ich hoffe ihr habt noch Lösungsansätze für mich.

Vielen Dank.
 
FRITZ!OS mountet seit längerer Zeit alle USB-Volumes (und auch den internen Flash-Speicher, der für NAS-Funktionen verwendet wird) nur noch mit der Option noexec, was die direkte Ausführung von Binaries von diesen Stellen unterbindet - man kann das aber ändern (siehe remount-Kommando bzw. mount -o remount,exec ...).

EDIT: rw durch exec ersetzt - schließlich geht es hier nicht darum, das ro-Flag zu überschreiben. Abgesehen davon hat die von Dir verlinkte Anleitung mit Freetz gar nichts zu tun.
 
Danke für deine Antwort!

Oh, okay... Dass die Anleitung mit Freetz nichts zu tun hat war mir so nicht bewusst.
Ist die Anleitung denn prinzipiell völlig falsch für mein Vorhaben? Gibt es eine andere/passendere Anleitung?

Könntest du das mit der remount-Thematik noch ein wenig ausführen? Oder mir eine Quelle zum Nachlesen geben? Ich habe kaum Erfahrung mit der shell und bräuchte es ein wenig einsteigerfreundlich :)

Vielen Dank im voraus.
 
Danke für deine Antwort!
Gern geschehen.

Ist die Anleitung denn prinzipiell völlig falsch für mein Vorhaben?
Abgesehen davon, daß Du Dir für die 4040 dann ja selbst per Cross-Compiler die benötigten Pakete für ARM-Architektur bauen mußt (m.W. gibt es bei fritzmod.net nur (alte) MIPS(EL)-Pakete), dürfte der Rest schon einigermaßen stimmen (auch wenn ich den jetzt nicht extra nachgelesen habe). Ich würde mich dennoch nicht genau daran orientieren ...

Gibt es eine andere/passendere Anleitung?
Wenn ich das lösen wollte, würde ich vermutlich eher auf die passenden Pakete aus dem OpenWRT-Projekt zurückgreifen: https://openwrt.org/packages/pkgdata_owrt21_2/apache - wobei man dann vermutlich ein paar Kenntnisse beim Umgang mit Dateisystem-Virtualisierung (Namespaces, Overlay-FS, etc.) braucht, weil die OpenWRT-Pakete von einer anderen Dateisystemstruktur ausgehen, als sie im FRITZ!OS vorliegt und man ihnen (auch wenn man sie "von Hand" installiert hat) die passende Umgebung vorgaukeln müßte.

Aber da hat man dann wenigstens auch aktuelle Software-Versionen und kann im Bedarfsfall sogar auf Updates zurückgreifen, wenn es irgendwelche neu entdeckten Security-Probleme in der Software gibt. Allerdings gibt es dazu keine "fertige Anleitung" - man muß sich dafür schon etwas mit der Konfiguration von Software unter Linux auskennen (was aber keine "rocket science" ist und ohnehin benötigt würde (mithin also zu erlernen wäre), wenn man irgendwann mal seinen Apache-Server (sicher) konfigurieren will).

Wobei ich auch nicht so richtig verstehe, was Du bisher an VORARBEITEN ausgeführt hast - denn so ohne weiteres kommt man im FRITZ!OS ja nicht mehr an eine Shell und in dieser Hinsicht sind alle Anleitungen bei fritzmod.net veraltet (sofern sie sich nicht ohnehin auf alte Modelle und nicht mehr weiterentwickelte Firmware-Versionen beziehen).

Da aber Freetz (das alte Projekt, auf dem auch mein Fork aufsetzt) m.W. keine IPQ40xx-Boxen unterstützt, bist Du hier in "Freetz" tatsächlich falsch - für den Fall, daß Du da ein Freetz-NG-Image installiert hast, hättest Du ja auch gleich das Apache-Paket von dort nehmen können (https://freetz-ng.github.io/freetz-ng/make/apache2.html) und dann wärst Du (hier) immer noch im falschen Unterforum. Abgesehen davon, liest @fda77/@cuma (siehe Freetz-NG-Repo) hier zwar noch mit, schreibt aber nichts mehr - Antworten auf Fragen wirst Du für den Freetz-NG-Fork in DIESEM Board also nur noch von "Leidensgenossen" erhalten.

Oder mir eine Quelle zum Nachlesen geben?
Das KÖNNTE ich vermutlich, mache ich aber aus Prinzip nicht (bzw. habe ich oben ja zumindest "durch die Blume" gemacht, wenn auch nicht zum remount) und da gibt es auch für Dich keine Ausnahme (auch nicht als "Einsteiger").

Also bitte nicht persönlich nehmen - aber ich weigere mich einfach, für andere als Suchmaschine herzuhalten, solange ich keine Gründe erkennen kann, warum diese nicht einfach selbst auf die SUCHE gehen (das bezieht sich jetzt auf Deine "Nachfragen" zur remount-Problematik, denn das solltest Du selbst recherchieren können).

Jedoch wird meine Weigerung vermutlich ohnehin wieder dazu führen, daß andere, die meine Meinung diesbezüglich nicht teilen, sich sehr eilfertig bemühen werden, in die von mir hinterlassene Breche zu springen - Du bist also auch ohne meine Hilfe "in guten Händen".
 
Code:
remount
Abgesehen davon, daß Du Dir für die 4040 dann ja selbst per Cross-Compiler die benötigten Pakete für ARM-Architektur bauen mußt (m.W. gibt es bei fritzmod.net nur (alte) MIPS(EL)-Pakete), dürfte der Rest schon einigermaßen stimmen (auch wenn ich den jetzt nicht extra nachgelesen habe). Ich würde mich dennoch nicht genau daran orientieren ...


Wenn ich das lösen wollte, würde ich vermutlich eher auf die passenden Pakete aus dem OpenWRT-Projekt zurückgreifen: https://openwrt.org/packages/pkgdata_owrt21_2/apache - wobei man dann vermutlich ein paar Kenntnisse beim Umgang mit Dateisystem-Virtualisierung (Namespaces, Overlay-FS, etc.) braucht, weil die OpenWRT-Pakete von einer anderen Dateisystemstruktur ausgehen, als sie im FRITZ!OS vorliegt und man ihnen (auch wenn man sie "von Hand" installiert hat) die passende Umgebung vorgaukeln müßte.
Danke für den Ansatz. Da werde ich mich entsprechend dann nochmal einlesen. Das ist halt aktuell nur mein erster Versuch. Ich will die Sache generell erstmal zum Laufen bringen - danach wird sich dann um die Details gekümmert. Das hilft mir dann auf jeden Fall schon weiter, wenn ich das eigentliche Problem gelöst habe.

Wobei ich auch nicht so richtig verstehe, was Du bisher an VORARBEITEN ausgeführt hast - denn so ohne weiteres kommt man im FRITZ!OS ja nicht mehr an eine Shell und in dieser Hinsicht sind alle Anleitungen bei fritzmod.net veraltet (sofern sie sich nicht ohnehin auf alte Modelle und nicht mehr weiterentwickelte Firmware-Versionen beziehen).

Da aber Freetz (das alte Projekt, auf dem auch mein Fork aufsetzt) m.W. keine IPQ40xx-Boxen unterstützt, bist Du hier in "Freetz" tatsächlich falsch - für den Fall, daß Du da ein Freetz-NG-Image installiert hast, hättest Du ja auch gleich das Apache-Paket von dort nehmen können (https://freetz-ng.github.io/freetz-ng/make/apache2.html) und dann wärst Du (hier) immer noch im falschen Unterforum. Abgesehen davon, liest @fda77/@cuma (siehe Freetz-NG-Repo) hier zwar noch mit, schreibt aber nichts mehr - Antworten auf Fragen wirst Du für den Freetz-NG-Fork in DIESEM Board also nur noch von "Leidensgenossen" erhalten.
Ich weiß nicht ganz genau ob diese Frage eher rhethorischer natur ist oder ernstgemeint. Ich werde trotzdem kurz darauf eingehen. Ich habe bislang freetz zusätzlich zur Fritz!OS-Oberfläche auf die Box gespielt. Das den in das Image zu integrierenden Paketen klappt soweit. Aber da ich technisch relativ interessiert bin und mich auch autodidaktisch ziemlich viel belese, will ich halt "mehr" als das Standardzeug - daher ist das mit dem Apache jetzt eher ein "Hobby-Projekt" um ggf. die FritzBox später ein wenig auszureizen. Demnach geht es mir in dieser Sache eher um das Prinzip :)
Tatsächlich liegst du mit der Vermutung richtig, dass ich Fritz-ng nutze. Dass es dafür ein spezielles Unterforum gibt, habe ich leider erst jetzt zur Kenntnis genommen. Von daher müsste dieses Thema dann wohl tatsächlich verschoben werden @Moderatoren.
Die in freetz-ng integrierten Pakete sprengen (sofern man das Ganze mit php aufziehen will) leider den Speicher meiner FritzBox 4040, weshalb ich den Apache nun auf den USB auslagern will und daher auf das bekannte Problem gestoßen bin.

Das KÖNNTE ich vermutlich, mache ich aber aus Prinzip nicht (bzw. habe ich oben ja zumindest "durch die Blume" gemacht, wenn auch nicht zum remount) und da gibt es auch für Dich keine Ausnahme (auch nicht als "Einsteiger").

Also bitte nicht persönlich nehmen - aber ich weigere mich einfach, für andere als Suchmaschine herzuhalten, solange ich keine Gründe erkennen kann, warum diese nicht einfach selbst auf die SUCHE gehen (das bezieht sich jetzt auf Deine "Nachfragen" zur remount-Problematik, denn das solltest Du selbst recherchieren können).

Jedoch wird meine Weigerung vermutlich ohnehin wieder dazu führen, daß andere, die meine Meinung diesbezüglich nicht teilen, sich sehr eilfertig bemühen werden, in die von mir hinterlassene Breche zu springen - Du bist also auch ohne meine Hilfe "in guten Händen".
Kein Sorge - das nehme ich dir auf keinen Fall persönlich. Im Gegenteil - du hast mir Hinweise gegeben, mit denen ich mich weiter befassen kann. Meine Nachfrage bezieht sich auch eher auf den technischen Hintergrund, denn ich will verstehen was ich da tue und nicht nur stumpf "irgendwelche Befehle" eingeben. Und du kannst dir sicher sein, dass ich bereits mehrere Stunden versucht habe das Problem selbst zu lösen - meine Anmeldung hier im Forum mit dem entsprechenden Post sind wirklich aus letzter "Verzweiflung" entstanden.
Allein der Weg bis hierhin war schon steinig, aber ich habs gemeistert...! :D
Ich lese mich selbstverständlich selbst in den nächsten Tagen in das Thema remount ein :)

Bis hierhin erstmal vielen Dank für die entsprechenden Tipps :)
 
Wenn Du Freetz-NG für den Bau des Images verwendest, sollte es da auch irgendwo einen Patch geben (notfalls die Einstellung für die eigenen Skills hochdrehen), der die USB-Volumes ohne die noexec-Option mountet.
 
Hallo :)

Jawoll, danke! Darauf bin ich inzwischen auch gestoßen durch Recherche :)
Der make-Befehl läuft gerade.
Zudem habe ich mich auch nochmal etwas genauer mit deinem Link befasst habe. Mir ist jetzt so einiges klarer geworden...

Ich sag ja. Learning by doing... Kostet manchmal Zeit und Nerven, aber man lernt dabei :)

Ich berichte am Ende über den Ausgang.

Vielleicht kann mir ja noch jemand zum 2. Punkt der Anleitung etwas sagen:

Apache und ev. PHP als [statisch gelinkte] binaries auswählen und erneut make ausführen
Was kann ich mir darunter vorstellen?

Edit: Ich glaube ich hab mir die Frage gerade beim absenden im Kopf selbst beantwortet... Sicherlich habe ich die Möglichkeit die beiden Packages statisch im menuconfig auszuwählen...
 
Moin

"statisch gelinkte" sind in erster Linie sehr gross.
Im Falle der PHP Binary so um die 7 Megabyte, glaub ich.
Das bedeutet, dass keine (eventuell) schon vorhandenen Bibliotheken dynamisch genutzt werden, was die Binary klein hält.
Aber eben auch, dass alles erforderliche bereits in der Binary vorhanden ist.
 
Hallo,

sooo, bevor ich nun totalen Blödsinn verzapfe frage ich lieber noch ein einmal... gemäß dieses Links habe ich den make Befehl noch einmal mit aktiviertem Apache+php durchlaufen lassen. Die Imageerstellung ist wie erwartet abgebrochen mit dem Fehler, dass das image zu big sei.

unabhängig davon sin ja wie beschrieben die binaries nun im Ordner packages gelandet. Zwar nicht im Ordner ~/packages selbst sondern darin in einem Unterordner der sich target-arm_gcc-13.1.0_uClibc-1.0.43-nptl_kernel-4.4 nennt. Ich vermute mal, dass die Anleitung entsprechend nur sinngemäß zu verstehen ist und nicht komplett zu 100% angewendet werden kann.

Nun habe ich in den besagten binary-Ordner jeweils einen Ordner ~/root mit den jeweiligen Unterordnern /etc und/usr - ist das so richtig?
Mein Gedanke ist nun, dass ich den jeweiligen Ordner ~/root jetzt stumpf umbenenne in apache2 bzw. php und dann so auf den USB packe. Dann mache ich noch ein paar Einstellungen in den configs, erstelle die Systemlinks fürs logging und kann dann den Server starten?

Danke im Voraus :)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.