अपाचे दस्तावेज़ रूट फ़ोल्डर को द्वितीयक हार्ड ड्राइव में बदलें


28

मैंने अपने सर्वर पीसी के लिए ubuntu 12.04 सर्वर संस्करण स्थापित किया है। मैंने दीपक सर्वर स्थापित किया था। मुझे अपने द्वितीयक हार्ड डिस्क स्थान में var / www स्थान बदलने की आवश्यकता है। मुझे gedit / etc / apache2 / sites- उपलब्ध / डिफ़ॉल्ट पर कई बार कॉन्फ़िगर किया गया था, यहाँ मेरा कोड है

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    #DocumentRoot /var/www
    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    #<Directory /var/www/>
        <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

और भी इस्तेमाल किया

sudo chown -R var/www /media/myserver/

तथा

chmod -R 755 /media/myserver/

अभी भी मैं अपने / मीडिया / मायसेवर से कनेक्ट नहीं कर पा रहा था और मेरा ब्राउज़र निम्न संदेश दिखाता है

Forbidden

You don't have permission to access / on this server.

कृपया किसी को भी बताएं कि मेरे संस्करण / www पर myserver को कैसे माउंट किया जाए, धन्यवाद अग्रिम


दूसरी ड्राइव को स्वरूपित किया गया और / Media / myserver निर्देशिका में आरोहित किया गया? क्या आपने उस ड्राइव के लिए fstab प्रविष्टि जोड़ी है?
डेमियन

क्या आपने जाँच की है कि दस्तावेज़ रूट पर अनुगामी स्लैश समस्या है, ध्यान दें कि जहाँ पर टिप्पणी की गई है, वह वहाँ नहीं है, बल्कि आपके संपादन पर है।
क्रिस

क्या आपने apache2.conf फाइल को बदलने की कोशिश की?
गोल्डन_फ्लैश

जवाबों:


40

आपको एपाचे के दस्तावेज़ रूट को बदलना apache2.confऔर 000-default.confबदलना होगा।

अपाचे सर्वर पर स्थापित किया गया है var/www/html। यह अपाचे की डिफ़ॉल्ट रूट निर्देशिका है।

या तो अपाचे की रूट डायरेक्टरी को बदलें या प्रोजेक्ट को आगे बढ़ाएँ /var/www/html

  1. अपाचे की रूट डायरेक्टरी को बदलने के लिए, रन करें:

    cd /etc/apache2/sites-available
    
  2. फिर 000-default.confकमांड का उपयोग करके फ़ाइल खोलें :

    nano 000-default.conf
    
  3. DocumentRootविकल्प संपादित करें :

    DocumentRoot /path/to/my/project
    
  4. फिर अपाचे सर्वर को पुनरारंभ करें:

    sudo service apache2 restart
    

यदि आप Forbidden You don't have permission to access / on this serverअपाचे की जड़ को बदलने के बाद प्राप्त करते हैं तो इन चरणों का पालन करें

  1. apache2.confस्थित में खोजें /etc/apache2और इसका उपयोग करके खोलें:

    nano apache2.conf
    
  2. का प्रयोग करें Ctrl+ Wऔर निर्देशिका के लिए खोज (यह लाइन 153 में होना चाहिए)

  3. इसे ऐसा दिखना चाहिए

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. इसे बदलें

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. फिर से शुरू करें

    sudo service apache2 restart
    

मैंने एक स्क्रिप्ट बनाई जो एक ही कमांड में अपाचे रूट को बदलती है। आप इसे मेरे जीथूब पर पा सकते हैं ।


यह मेरे लिए काम की तरह है लेकिन मुझे जोड़ना होगा <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>। में /etc/apache2/apahce2.confapache2 सेवा को पुन: प्रारंभ करने से पहले।
r0ng

19

शायद थोड़ी देर हो जाए। फिर भी..

आपको apache.conf में / etc / apache2 के तहत अपनी निर्देशिका अनुमतियों को संपादित करना चाहिए

इसके लिए खोज करें

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

और इसके तहत इस कोड को जोड़ें, जो आपकी निर्देशिका को एक्सेस करने की अनुमति देता है

 <Directory /media/myserver/>
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>

3

बस अपने सक्रिय कॉन्फ़िगरेशन में दस्तावेज़ रूट को बदलें। /etc/apache2/sites-enabled/000-default और फिर अपनी अपाचे को फिर से लोड करना सुनिश्चित करें।

तो इसके साथ प्रयास करें:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

तब उचित अनुमति इस तरह दी जानी चाहिए:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/

हाँ मेरे दोस्त मैं यह पहले ही कर चुका था। उपरोक्त कोड देखें कि मैं डिफ़ॉल्ट दस्तावेज़ रूट पर टिप्पणी कर रहा था और नए दस्तावेज़ रूट को सम्मिलित किया गया था। Apache2 के बाद बंद करो और शुरू करो। यह काम नहीं किया है। यह 403 त्रुटि है, और अनुमति की अनुमति से इनकार कर दिया है और मेरे ब्राउज़र
केविन - दिनेश बाबू

क्या आपने मेरा अंतिम संपादन देखा है?
अचु २

हाँ मैंने यह देखा। अभी भी यह दिखा रहा है कि आपके पास इस सर्वर तक पहुंचने की अनुमति नहीं है
केविन - धनेश बाबू

2

त्वरित वर्कअराउंड (सुरक्षित और त्वरित) के रूप में आप अपने बाहरी हार्ड ड्राइवर के बढ़ते बिंदु को डिफ़ॉल्ट रूट डायरेक्टरी (/ डिफ़ॉल्ट रूप से var / www) बना सकते हैं।

बढ़ते बिंदु को प्रति-मौजूदा निर्देशिका को सौंपना सुरक्षित है, लेकिन पुरानी सामग्री तक नहीं पहुंचा जा सकता जब तक कि आप ड्राइवर को अनमाउंट न करें।

बढ़ते बिंदु को बनाने के बारे में अधिक जानने के लिए इसे देखें ।


कि विचार के अनुसार मैं कुछ फ़ोल्डर माउंट हैं, का उपयोग करके bindfs, के रूप में यह यहाँ वर्णित है: askubuntu.com/a/1024308/566421
pa4080

1

sudo gedit etc/apache2/apache2.conf इस विकल्प को जोड़ें अनुक्रमणिका FollowSymLinks MultiViews AllowOverride कोई भी आदेश अनुमति नहीं है, सभी से अनुमति न दें

आभासी कॉन्फ़िगरेशन में:/etc/apache2/sites-available/site.conf

ServerAdmin anilrmg@localhost.com
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

sudo a2dissite 000-default.conf


1

जो लोग वर्चुअलबॉक्स अतिथि परिवर्धन का उपयोग करते हैं और you don't have permission to access /on this serverउपरोक्त सभी चीज़ों के बावजूद प्राप्त करते हैं:

यदि आप अपाचे दस्तावेज़ रूट फ़ोल्डर को एक वर्चुअलबॉक्स साझा फ़ोल्डर में सेट करने की कोशिश कर रहे हैं, और आपने ऊपर सब कुछ करने की कोशिश की है और इससे मदद नहीं मिली है, एक और कदम है।

संक्षेप में, समाधान समूह 'vboxsf' में उपयोगकर्ता 'www-data' को जोड़ना है:

sudo usermod -a -G vboxsf www-data

आप वर्चुअलबॉक्स साझा फ़ोल्डर के स्वामी और / या समूह को नहीं बदल सकते हैं, लेकिन ऊपर दिए गए समाधान ने मेरे लिए अच्छी तरह से काम किया है।


1

मैं उसी समस्या में भी भागता हूं और इसे हल कर सकता हूं!

आपको क्या करना है

  1. आप apache2.conf को संशोधित करते हैं। /var/www/अपने पथ के लिए एक्सचेंज : <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. 000-default.conf संशोधित करें:

    DocumentRoot /your/path/

  3. फ़ाइल प्रबंधक या टर्मिनल (जैसे sudo chown pi: path) से निर्देशिकाओं के स्वामित्व को स्वयं में बदलें। इसके बिना आपको "इस सर्वर पर पहुंचने / उपयोग करने की अनुमति नहीं है।" त्रुटि संदेश।

बस इतना ही।

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