mod_xsendfile mit symbolischen Links

8

Ich stoße auf ein Problem mit xsendfile mit meiner Rails 3 App.

Ich verwende capistrano, um Bereitstellungen zu verwalten, und in jedem Release gibt es eine symbolische Verknüpfung zum gemeinsamen / Assets-Verzeichnis (z. B. / var / www / site / releases / 1234 / assets = & gt; / var / www / site / geteilt / Assets). Das Problem ist, dass XSendFile den symbolischen Links nicht zu folgen scheint. In meinen Apache-Protokollen sehe ich den folgenden Fehler:

%Vor%

Ich habe die XSendFilePath-Konfiguration als

festgelegt %Vor%

Wenn ich die Konfiguration auf

umstelle %Vor%

Dann funktioniert alles gut. Ich habe also ein paar Fragen:

1) Gibt es eine Möglichkeit, den XSendFilePath der symbolischen Verbindung folgen zu lassen?

2) Besteht ein Sicherheitsrisiko, wenn XSendFilePath auf meine Releases gesetzt wird? Mit anderen Worten, öffne ich den Zugang zu all diesem Verzeichnis?

    
bostonou 06.04.2011, 22:44
quelle

1 Antwort

7

Erstellen Sie den Link mit einer ähnlichen after "deploy:finalize_update" -Aufgabe:

%Vor%

Dies bewirkt, dass XSendFilePath den Link als /var/www/site/current/assets sieht, was ihn innerhalb des Root-Pfades platziert.

Stellen Sie außerdem sicher, dass der Benutzer, der Ihre App ausführt, Eigentümer und Schreibberechtigungen für / var / www / site / shared / assets hat.

    
inkdeep 08.05.2011, 20:35
quelle