मैं अपने रेल 3 ऐप के साथ xsendfile का उपयोग कर किसी समस्या में भाग रहा हूं।प्रतीकात्मक लिंक के साथ mod_xsendfile
मैं तैनाती का प्रबंधन करने के लिए कैपिस्ट्रानो का उपयोग कर रहा हूं और प्रत्येक रिलीज में, साझा/संपत्ति डीआईआर (जैसे/var/www/साइट/रिलीज/1234/संपत्ति =>/var/www/साइट के लिए एक प्रतीकात्मक लिंक है)/साझा/संपत्ति)। समस्या यह है कि XSendFile प्रतीकात्मक लिंक का पालन नहीं कर रहा है।
XSendFilePath /var/www/site/releases
फिर सब कुछ:
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 config
XSendFilePath /var/www/site/shared/assets
के रूप में स्थापित किया है, तो मैं करने के लिए config स्विच: मेरे अपाचे लॉग में, मैं निम्नलिखित त्रुटि दिखाई दे रही ठीक काम करता है। तो मेरे पास कुछ प्रश्न हैं:
1) क्या XSendFilePath प्रतीकात्मक लिंक का पालन करने का कोई तरीका है?
2) क्या XSendFilePath को मेरे रिलीज़ डीआईआर में सेट करने के साथ कोई सुरक्षा जोखिम है? दूसरे शब्दों में, क्या मैं उस सभी डीआईआर तक पहुंच खोल सकता हूं?
task :storage_link, :except => { :no_release => true } do
run "ln -nFs #{deploy_to}/shared/assets #{latest_release}/assets"
end
यह XSendFilePath जो यह रूट पथ के अंदर डालता है /var/www/site/current/assets
के रूप में लिंक को देखने के बनाता है:
उत्तर के लिए धन्यवाद। मैं इस परियोजना से आगे बढ़ गया हूं, लेकिन आपका जवाब निश्चित रूप से समझ में आता है। – bostonou
यह 'पथनाम # realdirpath' का उपयोग कर सिम्लिंक को हल करने तक हमारे लिए काम नहीं करता है। –
यह मेरे लिए काम नहीं करता है, यहां तक कि 'पथनाम # realdirpath' का उपयोग करते समय भी :( – wrzasa