Symlink / var / www निर्देशिका


17

मैं एक सिमलिंक बनाने की कोशिश कर रहा हूं:

/ var / www -> / घर / USER / कोड /

Https://stackoverflow.com/questions/9104337/create-a-symbolic-link-of-directory-in-ubuntu के बाद , मैंने निम्नलिखित कमांड दर्ज की:

sudo ln -s / var / www / home / USER / कोड

हालाँकि परिणाम वह नहीं है जिसकी मुझे उम्मीद है। मेरा लिंक www निर्देशिका को स्वयं लिंक करने के बजाय / www निर्देशिका के अंदर संग्रहीत किया गया है। मैं स्थानीय वेब सर्वर के रूप में अपाचे का उपयोग करता हूं, मेरे मामले के लिए, मुझे अपना कोड एक्सेस करना होगा

स्थानीय होस्ट / कोड / परियोजना

जबकि मैं कुछ ऐसा करना चाहता हूं

स्थानीय होस्ट / परियोजना

codeनिर्देशिका सिर्फ एक निर्देशिका जहां मैं अपने सभी परियोजनाओं को स्टोर के रूप में काम करना चाहिए।

मुझे कुछ भी याद आ रहा है?


1
क्या आपने wwwनिर्देशिका को हटा दिया ? यदि www मौजूद है, तो यह www के अंदर एक सिमलिंक बना देगा। यदि www मौजूद नहीं है, तो उसे www नाम का एक सिमलिंक बनाना चाहिए।
मेंढक

कोई wwwअखंड नहीं है। wwwनिर्देशिका के अंदर
सिमलिंक

आपके पास एक ही निर्देशिका में एक ही नाम (एक निर्देशिका और आपके मामले में एक सिमलिंक) के साथ दो प्रविष्टियाँ नहीं हो सकती हैं। जब आप कहते हैं कि आपका क्या मतलब होगा /var/www/file.txt? आपको तय करना है ...
रमानो

आपको @ शाह की टिप्पणी को फिर से पढ़ना चाहिए ... आपको हटाना होगा wwwऔर फिर सिमलिंक बनाना होगा।
गैब्रियल एफ

जवाबों:


3

wwwसिम्लिंक बनाने से पहले निर्देशिका को हटाएं (या स्थानांतरित करें, सुरक्षा के लिए) ।

तो, आपके पास एक होना चाहिए /var, लेकिन कोई भी नहीं होना चाहिए /var/www। उसके बाद, और उसके बाद ही, wwwआपके स्थानीयहोस्ट / कोड / प्रोजेक्ट फोल्डर को इंगित करने वाला सिमिलर बनाया जाएगा।


1
यह स्वीकृत उत्तर गलत है, सबसे पहले आप "डिलीट" या "मूव" कहें, जबकि हम कमांड्स के बारे में बात कर रहे हैं, इसलिए आपको संबंधित शेल कमांड भी डालनी चाहिए। दूसरी बात, उसके पास ln कमांड में स्रोत और गंतव्य गलत है!
सरह.फेरगूसन

1
-1, उस प्रश्न का उत्तर देने के लिए जो उपयोगकर्ता द्वारा पीड़ित वास्तविक समस्या की ओर इशारा नहीं करता था।
शादुर

29

मुझे लगता है कि आपके पास ln -s'स्रोत' और 'लक्ष्य' गलत तरीका है


गलत :

sudo ln -s /var/www /home/USER/code


सही:

sudo ln -s /home/USER/code /var/www


आप अपने /home/USER/codeफ़ोल्डर में एक सिम्लिंक के साथ इंगित करेंगे var/wwwजो गलत है।

उदाहरण के लिए, मेरे पास सैली की साइट के लिए एक फ़ोल्डर है /home/webs/sallybydesign/

cd /var/www

कोई फ़ोल्डर या फ़ाइल कहा जाता है होना चाहिए sallybydesignमें /var/wwwहै क्योंकि हम के बारे में एक बनाने के लिए कर रहे हैं।

 sudo ln -s  /home/ndmaque/webs/sallybydesign /var/www/sallybydesign

नई फ़ाइल (प्रतीकात्मक लिंक) देखने के लिए

ls -l

आप नामक एक फ़ाइल देखेंगे sallybydesign, यह आपके home/webs/sallybydesignफ़ोल्डर के लिए एक सिमलिंक है और यदि आप चलाते हैं

ls sallybydesign/ 

आप अपने home/webs/sallybydesignफ़ोल्डर में फ़ाइलें देखेंगे ।

यदि ऐसा है तो आप अपनी vhost फ़ाइल को इंगित कर सकते हैं /var/www/sallybydesignऔर यह स्वचालित रूप से सभी अपाचे /var/wwwअनुमतियों को इनहेरिट कर देगी और मुद्दों के शेड लोड को हल कर देगी ।


क्या उबंटू को अपडेट करने के अंतिम जोड़े को प्रतीकात्मक रूप से जोड़ने में कुछ बदलाव आया? मैं अब सहानुभूति नहीं कर सकता और मुझे 403 त्रुटि मिली।
डैनियल

@ डैनियल तो मैं कर रहा हूँ
emrecnl

1
अनुमतियाँ डिफ़ॉल्ट रूप से विरासत में नहीं मिली हैं। सुनिश्चित करें chmod 0755 -Rपर sallybydesignऊपर वेबसर्वर को पढ़ने के लिए अनुमति देने के लिए उदाहरण में। इसके अलावा, आप AllowOverride All/ (आमतौर पर apache.conf में) के लिए डिफ़ॉल्ट निर्देशिका में है।
डैनियल

ls सैली /, मिला Too many levels of symbolic links
आदि प्रसादियो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.