linux - मैं अपाचे सर्वर की रूट निर्देशिका कैसे बदलूं?




apache lamp (14)

क्या किसी को पता है कि अपाचे सर्वर के दस्तावेज़ रूट को कैसे बदला जाए? मैं मूल रूप से /var/www की बजाय /users/spencer/projects निर्देशिका से आना चाहता हूं।

संपादित करें

मैं इसे समझने के लिए समाप्त हो गया। कुछ लोगों ने सुझाव दिया कि मैं httpd.conf फ़ाइल को बदलता हूं, लेकिन मैंने /etc/apache2/sites-available/default में फ़ाइल ढूंढना समाप्त कर दिया और मूल निर्देशिका को /var/www से /home/myusername/projects_folder और यह काम किया।


Answers

अगर आपको http.conf नहीं मिला और निक के रास्ते का पालन किया गया।

sudo service apache2 restart का उपयोग कर अपाचे को sudo service apache2 restart


यह उबुनुतू 14.04 के लिए है:

फ़ाइल /etc/apache2/apache2.conf यह निर्देशिका नाम के बिना नीचे होना चाहिए:

<Directory /home/username>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

और फ़ाइल /etc/apache2/sites-available/000-default.conf आपको कस्टम निर्देशिका नाम यानी www शामिल करना चाहिए:

DocumentRoot /home/username/www

यदि ऊपर नहीं है तो यह सर्वर लोड करते समय आपको एक त्रुटि देगा: Forbidden You don't have permission to access / on this server


आप उबंटू 16.04 का उपयोग कर रहे हैं। निर्देशिका / etc / apache2 / साइट्स-उपलब्ध में 000-default.conf अपडेट करें

यहां -> सर्वर एडमिन वेबमास्टर @ लोकलहोस्ट डॉक्यूमेंट रूट / var / www / html / YourFolder


आपको अपनी httpd.conf फ़ाइल में DocumentRoot सेटिंग को बदलने की आवश्यकता है। संभावना है कि यह /etc/apache2/conf/httpd.conf जैसे कुछ के तहत होगा

अपने पसंदीदा संपादक का उपयोग करें (मैं Vim की अनुशंसा करता हूं) और DocumentRoot और इसे /users/spencer/projects बदलें। इस तरह दिखने वाली सेटिंग के लिए थोड़ा और नीचे देखें:

<Directory "/var/www">

आप अपनी नई निर्देशिका में उद्धरणों में क्या बदलना चाहते हैं। यह उस निर्देशिका से पढ़ने के लिए अपाचे पहुंच प्रदान करता है जब कोई उपयोगकर्ता अनुरोध करता है कि उस पर कॉल करें।

अब अपनी अपाचे सेवा को पुनरारंभ करें ( httpd -k restart ) और आपको जाने के लिए अच्छा होना चाहिए।

संपादित करें : Apache2 साइट कॉन्फ़िगरेशन फ़ाइलें अब आम तौर पर /etc/apache2/sites-available/ (डेबियन, उबंटू, आदि) में रखी जाती हैं।


यदि आप लिनक्स मिंट का उपयोग कर रहे हैं (व्यक्तिगत राय, सभी distros से यह मुझे खुश कर रहा है), इस का पालन करें:

1- / etc / apache2 / साइट्स पर उपलब्ध हैं और 000-default.conf 2 संपादित करें- DocumentRoot के लिए खोजें, उदाहरण DocumentRoot / var / www / html आप अपनी संबंधित निर्देशिका में बदलते हैं; 3- टर्मिनल खोलें और टाइप करें: सुडो सेवा apache2 पुनरारंभ करें

संपादित ----- मुझे एहसास है कि मिंट में आप /etc/apache2/apache.conf के लिए जाते हैं, सर्वर को पुनरारंभ करने के बजाय / var / www को अपने संबंधित पथ पर प्रतिस्थापित करें (चरण 3)।

बस।


कृपया ध्यान दें, यह केवल उबंटू 14.04 एलटीएस और नई रिलीज के लिए लागू होता है।

मेरे उबंटू 14.04 एलटीएस में, दस्तावेज़ रूट /var/www/html सेट किया गया था। यह निम्न फ़ाइल में कॉन्फ़िगर किया गया था:

/etc/apache2/sites-available/000-default.conf

तो बस एक करो

sudo nano /etc/apache2/sites-available/000-default.conf

और निम्न पंक्ति को अपनी इच्छित चीज़ों में बदलें:

DocumentRoot /var/www/html

एक भी करो

sudo nano /etc/apache2/apache2.conf

और इसे ढूंढें

<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

और अपनी पसंदीदा निर्देशिका में /var/www/html बदलें

और इसे बचाओ।

आपके परिवर्तनों को सहेजने के बाद, बस apache2 वेबसर्वर को पुनरारंभ करें और आप कर लेंगे :)

sudo service apache2 restart

यदि आप एक ग्राफिकल टेक्स्ट एडिटर पसंद करते हैं, तो आप बस एक gksu gedit द्वारा gksu gedit sudo nano को प्रतिस्थापित कर सकते हैं।


यदि आप Google के माध्यम से इस पोस्ट को ढूंढ रहे हैं (मेरे जैसे):

मैंने इसे /etc/apache2/sites-available/000-default.conf पर पाया


अपाचे संस्करण 2.4.18 (उबंटू) में।

1. <Directory /var/www/> लिए इस फ़ाइल /etc/apache2/apache2.conf खोज में जाएं और अपनी निर्देशिका में प्रतिस्थापित करें ......

2.go /etc/apache2/sites-available/000-default.conf पर DocumentRoot /var/www/html रूट DocumentRoot /var/www/html और अपने दस्तावेज़ रूट में प्रतिस्थापित करें ....


अगर किसी ने /opt फ़ोल्डर में LAMP स्थापित किया है तो /etc/apache2 वह नहीं है जिसे आप ढूंढ रहे हैं।

/opt/lampp/etc/httpd.conf फ़ाइल को /opt/lampp/etc/httpd.conf में /opt/lampp/etc/httpd.conf

इस फ़ोल्डर में लाइन बदलें और इसे टर्मिनल से सहेजें।


लिनक्स मिंट 17.3 दालचीनी 64-बिट पर apache2 के लिए निम्न कार्य करता है:

  1. /etc/apache2/sites-available/ 000-default.conf फ़ाइल खोलें, और दस्तावेज़ रूट को अपनी निर्देशिका के पूर्ण पथ में बदलें।

    sudo vim /etc/apache2/sites-available/000-default.conf

  2. /etc/apache2/ httpd.conf खोलें, और अपनी निर्देशिका का संदर्भ देने वाला एक <Directory> टैग जोड़ें और var/www के टैग के समान सटीक सेटिंग्स को शामिल var/www

    sudo vim /etc/apache2/apache2.conf

    मेरी मशीन पर यह इस तरह दिखता था:

<Directory /home/my_user_name/php/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

नोट: पहले चरण में आप default-ssl.conf रूप से एसएसएल उद्देश्यों के लिए default-ssl.conf फ़ाइल में दस्तावेज़ रूट को बदलना चाहते हैं। लेकिन जहां तक ​​मैं यह कह सकता हूं कि एक सामान्य विकास वातावरण चलाना आवश्यक नहीं है।


मैं एलएएमपी के साथ काम कर रहा था और दस्तावेज़ रूट फ़ोल्डर को बदलने के लिए मैंने डिफ़ॉल्ट फ़ाइल संपादित की है जो / etc / apache2 / साइट-उपलब्ध फ़ोल्डर में है। यदि आप वही करना चाहते हैं तो बस इस प्रकार संपादित करें

DocumentRoot /home/username/new_root_folder
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/username/new_root_folder>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

इसके बाद यदि आप ब्राउज़र में लोकलहोस्ट टाइप करते हैं तो यह * / home / username / new_root_folder * सामग्री लोड करेगा।


Apache2 के लिए अलग-अलग पोर्ट के अंतर्गत निर्देशिका को बदलने या एकाधिक निर्देशिकाओं से चलाने का सही तरीका निम्नानुसार है:

Apache2 के लिए कॉन्फ़िगरेशन फ़ाइलें /etc/apache2 अंतर्गत स्थित हैं और पुराने संस्करणों में एक कॉन्फ़िगरेशन फ़ाइल का उपयोग नहीं करती हैं लेकिन छोटे कॉन्फ़िगरेशन फ़ाइलों में विभाजित होती हैं, /etc/apache2/apache2.conf मुख्य कॉन्फ़िगरेशन फ़ाइल होने के साथ। किसी भिन्न निर्देशिका से फ़ाइलों को सेवा देने के लिए हमें एक नई वर्चुअलहोस्ट conf फ़ाइल की आवश्यकता है। वर्चुअलहोस्ट conf फ़ाइलें /etc/apache2/sites-available (साइट-सक्षम के भीतर फ़ाइलों को संपादित न करें)। डिफ़ॉल्ट अपाचे स्थापना वर्चुअलहोस्ट conf फ़ाइल 000-default.conf

अपाचे की डिफ़ॉल्ट स्थापना (जिसे पोर्ट 80 पर लोकहोस्ट पर चलता है) द्वारा उपयोग की जाने वाली डिफ़ॉल्ट वर्चुअलहोस्ट फ़ाइल की प्रतिलिपि बनाकर एक नई वर्चुअलहोस्ट फ़ाइल बनाकर प्रारंभ करें। निर्देशिका /etc/apache2/sites-available में बदलें और फिर sudo cp 000-default.conf example.com.conf द्वारा प्रतिलिपि बनाएं, अब sudo gedit example.com.conf द्वारा फ़ाइल को संपादित करें:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /home/ubuntu/example.com    
</VirtualHost>

मैंने उपरोक्त फ़ाइल से अल्पसंख्यक के लिए गैर महत्वपूर्ण लाइनों को हटा दिया है।

निर्देशिका बनाएं जिससे आप फाइलों को सेवा देना चाहते हैं, उदाहरण के लिए; mkdir example.com और निर्देशिका के मालिक और डिफ़ॉल्ट समूह को बदलें, उदाहरण के लिए यदि आपके उपयोगकर्ता नाम में लॉग इन किया गया है तो ubuntu परिवर्तन sudo chown ubuntu:www-data example.com रूप में बदलता है sudo chown ubuntu:www-data example.com । यह उपयोगकर्ता ubuntu तक पूर्ण पहुंच प्रदान करता है और समूह www-data तक पहुंच को पढ़ने और निष्पादित करने की अनुमति देता है।

अब आदेश sudo gedit apache2.conf जारी करके अपाचे conf फ़ाइल sudo gedit apache2.conf संपादित करें और रेखा <Directory /var/www/> और समापन टैग के नीचे </Directory> रेखा </Directory> , नीचे दिए गए को जोड़ें:

<Directory /home/ubuntu/example.com>
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

अब वर्चुअलहोस्ट कॉन्फ़िगरेशन फ़ाइलों को सक्षम या अक्षम करने के लिए दो आदेश हैं, जो क्रमशः a2dissite a2ensite और a2dissite हैं। अब जब हमारी example.com.conf फ़ाइल उसी कॉन्फ़िगरेशन फ़ाइल ( 000-default.conf ) द्वारा उपयोग की जाने वाली पोर्ट ( 80 ) का उपयोग करती है, तो हमें sudo a2dissite 000-default.conf आदेश जारी करके डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल को अक्षम करना होगा और sudo a2ensite example.com.conf द्वारा हमारी वर्चुअलहोस्ट conf फ़ाइल को सक्षम करें

अब आदेश को पुनरारंभ करें या कमांड sudo service apache2 restart । अब apache 80 डिफ़ॉल्ट बंदरगाह पर localhost पर निर्देशिका example.com से फ़ाइलों की सेवा करता है।

a2ensite कमांड मूल रूप से साइट-सक्षम निर्देशिका के अंतर्गत conf फ़ाइल के लिए एक प्रतीकात्मक लिंक बनाता है

साइट्स-सक्षम (या * -एनेबल) डायरेक्टॉय के भीतर फ़ाइलों को संपादित न करें, जैसा कि इस उत्तर में बताया गया है https://.com/a/41568701/2532763

बंदरगाह को बदलने और विभिन्न बंदरगाहों पर एकाधिक निर्देशिकाओं से चलाने के लिए:

अब यदि आपको किसी भिन्न पोर्ट पर निर्देशिका चलाने की आवश्यकता है, तो वर्चुअलहोस्ट फ़ाइल को संपादित करके पोर्ट नंबर को 80 से 8080 में बदलें:

<VirtualHost *:8080>
    ServerAdmin [email protected]
    DocumentRoot /home/ubuntu/work
</VirtualHost>

और संपादन /etc/apache2/ports.conf संपादित करें और लाइन के नीचे Listen 8080 Listen 80

अब हम डिफ़ॉल्ट वर्चुअलहोस्ट conf फ़ाइल को सक्षम कर सकते हैं जो पोर्ट 80 पर चलता है क्योंकि example.com निर्देशिका पोर्ट 8080 का उपयोग करती है, जैसा कि sudo a2ensite 000-default.conf

अब आदेश को पुनरारंभ करें या कमांड sudo service apache2 restart । अब दोनों निर्देशिकाओं को localhost और localhost:8080 से एक्सेस किया जा सकता है localhost:8080


अपने वेब सर्वर की डिफ़ॉल्ट निर्देशिका को बदलने के बजाय, आप Alias बना सकते हैं।

इसलिए आपको दो फाइलें बनाना है:

  • एक /etc/apache2/sites-available/ और में एक
  • एक /etc/apache2/sites-enabled/

उन्हें example.conf जैसे कुछ example.conf और दोनों फाइलों में डालें Alias <where you want to access (eg. /example)> "<your files directory (eg. /home/user/host/example)>"

फिर आप इसे //localhost/example साथ एक्सेस करने में सक्षम होना चाहिए।

संपादित करें:

शायद मैं कुछ आदेशों का उल्लेख करना भूल गया क्योंकि मैं उन्हें भूल जाता हूं: पी
या आपको उस फ़ोल्डर / फ़ाइल के प्राधिकरणों को संपादित करना होगा जिन्हें आप एक्सेस करने का प्रयास करते हैं।


बैश स्क्रिप्ट में चर का उपयोग कर मेरा संस्करण:

किसी भी बैकस्लैश ढूंढें और आगे की स्लैश के साथ प्रतिस्थापित करें:

input="This has a backslash \\"

output=$(echo "$input" | sed 's,\\,/,g')

echo "$output"




linux apache lamp