Hat irgendjemand xinc korrekt unter dem chroot-Standard-Apache von OpenBSD laufen lassen? Ich möchte, dass unser Entwicklungsserver genauso wie unser Produktionsserver vollständig chroot läuft, damit wir sicherstellen können, dass unser Code nur gut chrooted läuft.
Haben Sie das Problem im Bugtracker von Xinc veröffentlicht? Xinc selbst sollte gut laufen, da es sowohl als Daemon als auch als Web-App läuft. Wie Sie bereits angedeutet haben, kann das Problem darin liegen, dass der Daemon nicht in einer chroot-Umgebung ausgeführt wird, in der sich die Webschnittstelle befindet, sodass die Dateien nicht von beiden Seiten erfasst werden.
@dragonmantank
In Xincs Fall hoffe ich, dass du PEAR benutzt hast, um es zu installieren.
%Vor%Dies sollte es tun und Ihnen zeigen, wo Ihre Xinc-Installation ihre Dateien abgelegt hat. Obwohl Xinc "nur" ein großes PHP-Skript ist, ist es immer noch in RC-Skripten und all den anderen Dingen verteilt, die notwendig sind, um eine Anwendung auszuführen. Ich bin mir sicher, dass Sie nicht alle hier aufgelisteten Pfade hinzufügen müssen, aber wahrscheinlich einige, um es laufen zu lassen.
Abgesehen von Xinc selbst, denke ich, dass es auch phpUnit und eine Reihe anderer PEAR-Bibliotheken benötigt, also würde ich folgendes vorschlagen:
%Vor%Und dann müssen Sie diesen Pfad (wie Henrik vorgeschlagen) der Chroot-Umgebung hinzufügen.
Da ich selbst nie xinc benutzt habe, kann ich nur darauf hinweisen, wie ich normalerweise zu chrootenden Apps komme.
Der erste Schritt wäre, Informationen über alles zu sammeln, was die App ausführen muss; das erreiche ich normalerweise, indem ich systrace (1) und ldd (1) um herauszufinden, was zum Ausführen der Software benötigt wird.
Gehe durch die Ausgabe von
%Vor%und stellen Sie sicher, dass alles, was die App berührt und benötigt (ziemlich viele Apps berühren Dinge, die sie nicht wirklich benötigt), in der Chroot-Umgebung verfügbar ist. Möglicherweise müssen Sie die Konfigurations- und Umgebungsvariablen etwas anpassen. Wenn es eine Option gibt, dass die App auf syslog protokolliert werden soll, mache ich das normalerweise und erstelle einen Syslog-Socket (siehe die Option -a von syslogd (8) ), um die Stellen zu reduzieren, an denen die App Schreibzugriff benötigt.
Was ich gerade beschrieben habe, ist eine generische Methode, um nahezu jedes Programm in einer Chroot-Umgebung auszuführen (wenn Sie jedoch die Hälfte des Benutzerlandes und einige suid-Befehle importieren müssen, sollten Sie chroot einfach nicht ausführen :). Für Apps, die unter Apache laufen (ich bin sicher, dass Sie wissen, dass OpenBSD Ссылка ist etwas anders) Sie haben die Option (sobald das Programm gestartet wurde; alle dynamischen Bibliotheken müssen noch im Jail vorhanden sein), Apache für den Zugriff auf die Dateien zu verwenden, was die Verwendung von Ссылка , um Ressourcen in der Chroot-Umgebung zu importieren, ohne sie tatsächlich zu kopieren.
Nützlich (wenn auch etwas veraltet) ist dieser Link, in dem einige Fehler aufgeführt sind chrooted PHP unter OpenBSD.
Der erste Schritt wäre, Informationen über alles zu sammeln, was die App ausführen muss; dies erreiche ich normalerweise, indem ich systrace (1) und ldd (1) laufe, um herauszufinden, was zum Ausführen der Software benötigt wird.
Ich werde es versuchen. Das große Problem, das ich mit xinc gefunden habe, ist, dass es zwar eine PHP-Anwendung ist, aber die Installationspfade der Anwendung kennen lernen soll (und trotzdem in andere Ordner verteilt wird) und einige PHP-Skripte im Daemon-Modus laufen rennen). So habe ich zum Beispiel gesagt, dass es nach / var / www / xinc installiert werden soll und dann einen Symlink von
gemacht hat/ var / www / var / www / xinc - & gt; / var / www / xinc
und es hat teilweise funktioniert. Ich habe die GUI bekommen, bis sie sich weigerte, irgendwelche Projekte anzuerkennen, die ich eingerichtet hatte. Ich denke das größte Problem ist, dass ein Teil davon eine Chroot läuft und die andere Hälfte draussen läuft.
Wenn alles andere fehlschlägt, werde ich nur etwas erstellen müssen, während wir chrooted Umgebungen programmieren, da unsere Produktion chroot ist. Wir sind auf Probleme gestoßen, bei denen wir außerhalb einer Chroot codieren und dann zurückverfolgen müssen, um herauszufinden, was wir brauchen, damit es innerhalb einer Chroot funktioniert.
Tags und Links php continuous-integration openbsd xinc