'403 forbidden' bei verwendung von Symlink

Irgendwelche Probleme mit XAMPP für Linux? Dann ist hier genau der richtige Ort um nachzufragen.

'403 forbidden' bei verwendung von Symlink

Postby feluxe » 06. June 2016 14:38

Hi,

ich habe gerade Xampp 5.6.21 installiert und funktionerte soweit gut.

Da ich mehere Versionen von Xampp benötige habe ich die installation von /opt/lampp nach /home/peter/projekt/xampp verschoben und einen Symlink erstellt, der von /opt/lampp zur neuen Location zeigt.

/opt/lampp habe ich per rsync -aAXog kopiert, damit die Owner und Permissions erhalten bleiben.

Apache kann ich ohne Probleme starten:

$ sudo /opt/lampp/lampp start
Starting XAMPP for Linux 5.6.21-0...
XAMPP: Starting Apache...ok.
XAMPP: Starting MySQL...ok.


Wenn ich aber http://localhost in den Browser eingebe, bekomme ich einen '403 forbidden' error.

Weiß jemand was ich da machen kann?
feluxe
 
Posts: 4
Joined: 06. June 2016 14:26
XAMPP version: 2.4.18
Operating System: Ubuntu

Re: '403 forbidden' bei verwendung von Symlink

Postby Nobbie » 07. June 2016 10:37

Das ist doch klar, das Zielverzeichnis von htdocs darf Apache nicht ausliefern, dafür fehlt der entsprechende "Require All Granted" Eintrag in der httpd.conf (bzw. früher "Allow From All"). Den gibt es zwar für /opt/lampp/htdocs, aber das ist nur noch ein symbolischer Link, das physikalische Verzeichnis heißt ja anders und das liefert Apache nicht aus, sonst könnte man ja mit solchen simplen Symbolic Links das Sicherheitskonzept von Apache umgehen. Du musst also konkret für /home/peter/projekt/xampp/htdocs einen Directory Eintrag in httpd.conf anlegen und im Prinzip dasselbe hineinschreiben, was für /opt/lampp/htdocs auch schon drin steht. Insbesondere die "Require...." Anweisung.

P.S.: Warum benötigst Du mehrere Xampp installationen?? In den allermeisten Fällen ist das nicht nötig und kann mit Hilfe von VirtualHosts besser gelöst werden. Damit kann man eigentlich fast alles realisieren, nicht nur unterschiedliche DocumentRoots, sondern auf Wunsch auch verschiedene PHP Releases usw. Bei mehreren Xampp Installationen hast Du spätestens wegen des eindeutigen Ports das Problem, dass Du sie nicht gleichzeitig betreiben kannst, bei VirtualHosts ist das gar kein Problem.
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04

Re: '403 forbidden' bei verwendung von Symlink

Postby feluxe » 07. June 2016 15:14

Das ist doch klar, das Zielverzeichnis von htdocs darf Apache nicht ausliefern, dafür fehlt der entsprechende "Require All Granted" Eintrag in der httpd.conf (bzw. früher "Allow From All"). Den gibt es zwar für /opt/lampp/htdocs, aber das ist nur noch ein symbolischer Link, das physikalische Verzeichnis heißt ja anders und das liefert Apache nicht aus, sonst könnte man ja mit solchen simplen Symbolic Links das Sicherheitskonzept von Apache umgehen. Du musst also konkret für /home/peter/projekt/xampp/htdocs einen Directory Eintrag in httpd.conf anlegen und im Prinzip dasselbe hineinschreiben, was für /opt/lampp/htdocs auch schon drin steht. Insbesondere die "Require...." Anweisung.

Klingt plausibel. Ich habe den Abschitt einfach kopiert und zusätzlich noch "Allow From All" in die httpd.conf eingetragen. Das ganze sieht dann so aus:

Code: Select all
DocumentRoot "/home/peter/projekt/xampp/htdocs"
<Directory "/home/peter/projekt/xampp/htdocs">
    Options Indexes FollowSymLinks ExecCGI Includes
    AllowOverride All
    Allow From All
    Require All Granted
</Directory>


Leider geht es immer noch nicht, egal ob ich 'Allow From All' hinzufüge oder nicht. Den Server habe ich nach jeder Änderung neugestartet (/opt/lampp/lampp start/stop). Ich hab es auch schon mit "chmod -R 777 xampp/" ausprobiert, geht aber auch nicht..

P.S.: Warum benötigst Du mehrere Xampp installationen?? In den allermeisten Fällen ist das nicht nötig und kann mit Hilfe von VirtualHosts besser gelöst werden. Damit kann man eigentlich fast alles realisieren, nicht nur unterschiedliche DocumentRoots, sondern auf Wunsch auch verschiedene PHP Releases usw. Bei mehreren Xampp Installationen hast Du spätestens wegen des eindeutigen Ports das Problem, dass Du sie nicht gleichzeitig betreiben kannst, bei VirtualHosts ist das gar kein Problem.


Ich muss für verschiedene Webprojekte unterschiedlich konfigurierte 'Production Server' simulieren, da finde ich es am einfachsten, die Server einfach in die jeweiligen Projekt Ordner zu packen. Das Konfliktpotenzial ist dadurch sehr gering. Wenn man ein Projekte nach langer Zeit wieder ausgräbt ist es sehr praktisch - einfach den Symlink anpassen und man ist da wo man aufgehört hatte. Den Symlink kann man per Script/Shortcut mit wenig Aufwand ändern. Ich musste bis jetzt nicht gleichzeitig mit zwei verschiedenen Servern arbeiten, aber das müsste eigentlich auch gehen, wenn man verschiedene URLs/Ports vergibt.
feluxe
 
Posts: 4
Joined: 06. June 2016 14:26
XAMPP version: 2.4.18
Operating System: Ubuntu

Re: '403 forbidden' bei verwendung von Symlink

Postby Nobbie » 07. June 2016 16:46

feluxe wrote:Leider geht es immer noch nicht, egal ob ich 'Allow From All' hinzufüge oder nicht. Den Server habe ich nach jeder Änderung neugestartet (/opt/lampp/lampp start/stop). Ich hab es auch schon mit "chmod -R 777 xampp/" ausprobiert, geht aber auch nicht..


Es müssen natürllch auch sämtliche Berechtigungen oberhalb des xampp Ordners passen, also auch in /home, in /home/peter, in /home/peter/projekte usw., das ist Linux geschuldet.

feluxe wrote:Ich muss für verschiedene Webprojekte unterschiedlich konfigurierte 'Production Server' simulieren, da finde ich es am einfachsten, die Server einfach in die jeweiligen Projekt Ordner zu packen. Das Konfliktpotenzial ist dadurch sehr gering.


Die Wahrheit ist doch, dass Du es nicht einmal annähernd hinbekommst, so hoch ist das Konfliktpotential... Ich halte es für total verfehlt. Ohne fremde Hilfe bekommst Du nicht einmal das erste Projekt ans Laufen. Und mit absoluter Sicherheit läuft auf keinem der Produktionsserver die Software unter /home/peter/projekte. Und die SymLink Lösung ist so einfach nicht, wie Du siehst, bekommt Apache sehr wohl mit, dass das nur symbolische Links sind und Du musst noch Anpassungen an das Filesystem machen. Und die Idee, dann auch noch die Ports zu verbiegen, die wirst Du spätestens dann verfluchen, wenn die Ports häßlich in der URL stehen, was notwendig ist, wenn man für HTTP nicht Port 80 benutzt.

Wenn überhaupt, dann würde ich mehrere VirtualBox Umgebungen einrichten, da hat man wenigstens komplett getrennte Welten. Aber mehrere Xampp Installationen unter einer Umgebung hat das größte Konfliktpotential aller möglichen Lösungen. Merkst Du ja jetzt schon, sonst würden wir hier nicht schreiben....
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04

Re: '403 forbidden' bei verwendung von Symlink

Postby feluxe » 07. June 2016 19:27

Es müssen natürllch auch sämtliche Berechtigungen oberhalb des xampp Ordners passen, also auch in /home, in /home/peter, in /home/peter/projekte usw., das ist Linux geschuldet.

Da war der Haken. Der alte Projektordner hatte als Berechtigung 700.. mit 755 geht es.
Danke für den Tipp! Meistens sind es die Kleinigkeiten die man allein übersieht.

Die Wahrheit ist doch, dass Du es nicht einmal annähernd hinbekommst, so hoch ist das Konfliktpotential...

Nun übertreib aber mal nicht...
Für die Art und Weise wie ich Arbeite ist die Herangehensweise gut. Ich hatte vorher unter Windows schon für jedes Projekt eine Xampp (portable) Install verwendet. Alles lief 1A. Ich bin nicht der erste und einzige der das so macht. Etwas unglücklich, dass es grade nicht ging... aber so kompliziert war es nun auch nicht..

Und mit absoluter Sicherheit läuft auf keinem der Produktionsserver die Software unter /home/peter/projekte.

Und sie läuft auch nicht unter /opt/lampp... Die Dateien werden automatisch mit dem entsprechenden Ordner auf dem Production Server synchronisiert. Es spielt quasi keine Rolle in welchem Ordner ich arbeite.

Und die Idee, dann auch noch die Ports zu verbiegen, die wirst Du spätestens dann verfluchen, wenn die Ports häßlich in der URL stehen, was notwendig ist, wenn man für HTTP nicht Port 80 benutzt.

Beim Entwicheln spielt es für mich keine Rolle, ob in der URL http://localhost/xxx oder http://localhost:8010/xxx steht. Aber wie schon gesagt, ich starte eh immer nur einen Apache wenn ich arbeite.

Ich sehe keinen Grund, weshalb ich nicht bequem zwischen verschiedenen Xampps switchen sollte und verstehe auch nicht warum du das so dramatisierst.
feluxe
 
Posts: 4
Joined: 06. June 2016 14:26
XAMPP version: 2.4.18
Operating System: Ubuntu

Re: '403 forbidden' bei verwendung von Symlink

Postby Nobbie » 07. June 2016 19:34

feluxe wrote:Meistens sind es die Kleinigkeiten die man allein übersieht.


Meistens erscheint es wie Kleinigkeiten, aber mehrere Stellen (wie hier) zu finden, die überhaupt nichts miteinander zu tun haben, sind keine Kleinigkeit. Von alleine hättest Du es wahrscheinlich nicht gefunden.

feluxe wrote:Nun übertreib aber mal nicht...


s.o. - ich glaube nicht, dass Du die Ursachen von alleine gefunden hättest. Auf die Idee muss man erst mal kommen, sowohl in Apache als auch im Filesystem und dann auch noch in den überliegenden Ordnern etwas einzustellen. Und da gibt es nichts zu übertreiben, das ist ein K.O.-Kriterium.

Ich bleibe dabei, ich halte das Konzept für verfehlt, ich habe auch noch nicht gelesen, warum nicht VirtualHosts in Frage kommen, aber das wird wohl Dein Geheimnis bleiben.
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04

Re: '403 forbidden' bei verwendung von Symlink

Postby feluxe » 08. June 2016 00:27

Meistens erscheint es wie Kleinigkeiten, aber mehrere Stellen (wie hier) zu finden, die überhaupt nichts miteinander zu tun haben, sind keine Kleinigkeit. Von alleine hättest Du es wahrscheinlich nicht gefunden.

Der Eintrag in httpd.conf war nicht nötig. Es war im Endeffekt nur die Sache mit den Permissons.

.. warum nicht VirtualHosts in Frage kommen, aber das wird wohl Dein Geheimnis bleiben.

Weil ich es für Sinvoller halte unterschiedlich konfigurierte Server mit verschiedenen PHP Interpretern und Datenbanken, die nichts miteinander zu tun haben voneinander zu trennen. Firma A teilt ja auch nicht den Server mit Firma B. Wenn ich am Projekt für Firma A rumschraube, soll sich an dem Projekt für Firma B nichts ändern. Wenn sich aber beide Projekte den selben Dev-Server teilen ist die Wahrscheinlichkeit größer, dass man was durcheinander bringt, vorallem wenn man ein Projekt nach längerer Zeit wieder ausgräbt... Ein Modularer Ansatz gefällt mir hier ganz einfach besser und ich sehe keine Nachteile darin.
feluxe
 
Posts: 4
Joined: 06. June 2016 14:26
XAMPP version: 2.4.18
Operating System: Ubuntu


Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 1 guest