2012-07-30 15 views
7

के लिए प्रतीकात्मक लिंक का उपयोग करने का प्रयास करना मैं यही पूरा करने की कोशिश कर रहा हूं: var/www/html से घर (~) फ़ोल्डर में एक प्रतीकात्मक लिंक बनाना। निर्देशिका मैं घर में symlink करने की कोशिश कर रहा हूँ (~) एक गिट भंडार है, अगर इससे कोई फर्क पड़ता है। मेरे पास इस निर्देशिका में index.html फ़ाइल है।var/www/html

मैंने इस आदेश का उपयोग करते हुए अमेज़ॅन ईसी 2 इंस्टेंस पर var/www/html पर एक प्रतीकात्मक लिंक बनाया है: ln -s ~/dirIWant/ html, हालांकि जब मैं अपने वेबपृष्ठ तक पहुंचने का प्रयास करता हूं तो निम्न त्रुटि होती है: 403 Forbidden "You don't have permission to access/on this server." मैं अपाचे का उपयोग कर रहा हूं ।

क्या किसी और ने ऐसा कुछ करने की कोशिश की है और इसे काम करने के लिए प्राप्त किया है?

वर्तमान में, जब मैं अपनी वेबसाइट www.blah.com पर जाता हूं, तो यह 403 त्रुटि दिखाता है। मैंने sudo chown -h apache:apache का उपयोग कर अनुमति बदलने की कोशिश की है लेकिन यह मदद नहीं कर रहा है। क्या तुम्हारे पास कोई और योजनायें हैं?

+1

'अपाचे' उपयोगकर्ता (या समतुल्य) में आपके घर के डीआईआर को पढ़ने की अनुमति नहीं है। Chmod/प्रासंगिक उपयोगकर्ता को अनुमति देने के लिए लक्षित डीआईआर बोया। बीटीडब्ल्यू आपको '/ var/log/httpd/error_log' में थोड़ा और कहने वाला संदेश मिल सकता है या जहां भी आपका httpd इसकी त्रुटियों को लॉग करता है। –

+0

@ फ्रैंकफार्मर जब मैं सूडो सु अपाचे का उपयोग करके अपाचे उपयोगकर्ता पर स्विच करने का प्रयास करता हूं, तो मुझे यह संदेश मिलता है: यह खाता वर्तमान में उपलब्ध नहीं है। क्या आपने इससे पहले अनुभव किया है? – Apollo

+1

हां। डिफ़ॉल्ट रूप से, आप apache को suache नहीं कर सकते हैं, क्योंकि अपाचे उपयोगकर्ता के पास आमतौर पर 'खोल' के लिए अपना खोल सेट होता है। आप उपयोगकर्ता के खोल को '/ etc/passwd' में sh में बदल सकते हैं, लेकिन यह आमतौर पर आमतौर पर एक बुरा विचार है। आम तौर पर, अपाचे में सूखना आवश्यक नहीं होना चाहिए, खासकर यदि आप सिर्फ बोना चाहते हैं।'सूडो चाउन अपाचे: अपाचे ~/डायरवांट /' आपके मामले में पर्याप्त होगा, हालांकि निर्देशिका को आपके घर डीआईआर से बाहर ले जाना बुद्धिमान होगा। –

उत्तर

7

ऐसा इसलिए है क्योंकि apache apache उपयोगकर्ता और /var/www/html अमेज़ॅन लिनक्स एएमआई में रूट के स्वामित्व में है। आप फ्रैंक द्वारा सुझाए गए स्वामित्व/अनुमतियों को बदल सकते हैं, या उपयोगकर्ता आईडी का उपयोग कर सकते हैं।

ऐसा लगता है कि आप चाहते हैं कि वेबसर्वर का फ़ोल्डर आपकी होम निर्देशिका (~) से आसानी से सुलभ हो। मैं अपने ईसी 2 पर ऐसा कुछ चाहता था और प्रति उपयोगकर्ता वेब निर्देशिका (mod_userdir) का उपयोग करने का निर्णय लिया।

यह सुविधा आपको किसी उपयोगकर्ता द्वारा स्वामित्व वाली निर्देशिका में HTTP सर्वर की जगह के हिस्सों को रखने देती है। प्रत्येक उपयोगकर्ता को अपनी निर्देशिका मिलती है, जो डिफ़ॉल्ट रूप से /home/username/public_html में स्थित होती है। उस निर्देशिका में पेज, स्क्रिप्ट और अन्य फ़ाइलें आपके डोमेन पर /~username जोड़कर इंटरनेट तक पहुंच योग्य हैं। इसके अतिरिक्त, आप उस फ़ोल्डर का नाम httpd.conf में public_html से किसी अन्य चीज़ पर बदल सकते हैं, जैसे gitRepo। उस स्थिति में, यदि आपके पास फ़ाइल /home/ec2-user/gitRepo/index.html में है, तो यह http://ec2-hostname.aws.amazon.com/~ec2-user/index.html के माध्यम से जनता के लिए पहुंच योग्य होगी और ec2-user के स्वामित्व में हो, जो उपयोगकर्ता स्तर से फ़ाइलों को संपादित करने के लिए सुविधाजनक है।

EC2 ("gitRepo" संभालने के लिए फ़ोल्डर का नाम आप उपयोग करना चाहते) पर इसे सेट करने के, nano /etc/httpd/conf/httpd.conf का उपयोग अपाचे config फ़ाइल को खोलने और नीचे स्क्रॉल करें जब तक आप <IfModule mod_userdir.c> को देखने के लिए। उसके बाद निम्न तरह देखने के लिए इस खंड को बदलें:

<IfModule mod_userdir.c> 
    # 
    # UserDir is disabled by default since it can confirm the presence 
    # of a username on the system (depending on home directory 
    # permissions). 
    # 
    UserDir enabled all 

    # 
    # To enable requests to /~user/ to serve the user's public_html 
    # directory, remove the "UserDir disabled" line above, and uncomment 
    # the following line instead: 
    # 
    UserDir gitRepo 

</IfModule> 

बाद में तुम जाओ, लेकिन अनुमतियाँ सुनिश्चित करने के लिए अच्छा होना चाहिए सही ढंग से स्थापित कर रहे हैं:

chmod 711 /home/ec2-user 
chmod 755 /home/ec2-user/gitRepo 
chown -R ec2-user /home/ec2-user/gitRepo 

और अंत में इस तरह वेब सर्वर को फिर से लोड:

sudo service httpd reload 
+0

उत्तर के लिए धन्यवाद। जैसा कि मैंने फ्रैंकफार्मर से पूछा, जब मैं उपयोगकर्ताओं को अपाचे उपयोगकर्ता पर स्विच करने का प्रयास करता हूं ताकि मैं सुडो चाउन/माईडीर कर सकूं, मुझे निम्न प्रतिक्रिया मिलती है: यह खाता वर्तमान में उपलब्ध नहीं है। कोई विचार क्यों? – Apollo

+1

ठीक है, आप एक 'सुडो चोउन -आर ec2-user/var/www/html' कर सकते हैं, लेकिन आपकी पोस्ट से यह वास्तव में स्पष्ट नहीं है कि आप क्या करने की कोशिश कर रहे हैं, इसलिए मुझे यकीन नहीं है कि यह वही करेगा जो आप करेंगे चाहते हैं – Dreen

+0

यही वह है जिसे मैं पूरा करने की कोशिश कर रहा हूं: घर/~ फ़ोल्डर में निर्देशिका में var/www/html से प्रतीकात्मक लिंक बनाना। मेरे पास निर्देशिका में निर्देशिका में index.html फ़ाइल है (~)। वर्तमान में, जब मैं अपनी वेबसाइट www.blah.com पर जाता हूं, तो यह 403 त्रुटि दिखाता है। मैंने सूडो चाउन -एच अपाचे का उपयोग करके अनुमति बदलने की कोशिश की है: अपाचे लेकिन यह मदद नहीं करता है। क्या तुम्हारे पास कोई और योजनायें हैं? – Apollo