Rails 3 アプリで xsendfile を使用すると問題が発生します。
カピストラーノを使用して展開を管理しています。各リリースには、shared/assets ディレクトリへのシンボリック リンクがあります (例: /var/www/site/releases/1234/assets => /var/www/site/shared/assets)。 )。問題は、XSendFile がシンボリック リンクをたどっていないように見えることです。Apache ログに、次のエラーが表示されます。
The given path was above the root path: xsendfile: unable to find file: /var/www/site/releases/20110406205607/assets/pdfs/2/original/test.pdf
私は XSendFilePath 設定を次のように設定しています
XSendFilePath /var/www/site/shared/assets
構成を次のように切り替えると:
XSendFilePath /var/www/site/releases
その後、すべてが正常に機能します。だから私はいくつかの質問があります:
1) XSendFilePath にシンボリック リンクをたどらせる方法はありますか?
2) XSendFilePath をリリース ディレクトリに設定すると、セキュリティ上のリスクはありますか? つまり、そのすべてのディレクトリへのアクセスを許可しますか?