Apache घर निर्देशिका के लिए सहानुभूति - अनुमति त्रुटियाँ


15

im कुछ समस्याओं को सहानुभूति मेरी /var/www/Webroot अपने होम फोल्डर के अंदर एक नई निर्देशिका से । मुझे लगता है कि ये लाइनेक्स अनुमतियों की समझ की कमी से हैं।

जहाँ तक im के बारे में पता है, सहानुभूति उस निर्देशिका का रूप लेना चाहिए जिसे आप लिंक करना चाहते हैं और जिस निर्देशिका से आप लिंक होना चाहते हैं, इसलिए मेरे मामले में, मैं भाग गया:

sudo ln -s ~/Webroot/* /var/www/

इस तरह से काम किया है, अगर मैं lsपर चला /var/www/मैं अपने में फ़ाइलों के सभी देख सकते हैंWebroot निर्देशिका ।

जब भी मैं उस फ़ाइल को चलाने की कोशिश करता हूं जो मेरे में है Webroot फ़ोल्डर , तो मुझे 403 अनुमति त्रुटि मिलती है, क्या ऐसा इसलिए है क्योंकि मेरी वेबरूट निर्देशिका में फाइलें मेरे द्वारा बनाई गई हैं, और अपाचे उदाहरण www-data के रूप में चलाया जा रहा है?

अगर ऐसा है, तो क्या इसका मतलब यह होगा कि मुझे इसे चलाने के लिए प्रत्येक फ़ाइल पर अनुमतियों को बदलना होगा?

मैंने पहले एक स्थानीय अपाचे उदाहरण के लिए Webrootफ़ोल्डर में अपने डिफ़ॉल्ट vhost की निर्देशिका जड़ को इंगित करते हुए चलाया है , इस उदाहरण में मुझे किसी भी अनुमतियों को बदलने की आवश्यकता नहीं थी। किसी भी सहायता की सराहना की जाएगी।


क्या आपने यह सुनिश्चित करने के लिए जाँच की है कि अपाचे को सिमिलिंक का पालन न करने के लिए कॉन्फ़िगर नहीं किया गया है .... मुझे एक बार यह समस्या हुई थी। एक अन्य मंच पर संबंधित धागा यहां हो सकता है: linuxforums.org/forum/servers/…
RobotHumans

जवाबों:


15

यह एक अच्छा अभ्यास नहीं है, मैं वेबॉइड से सहमत हूं। लेकिन इस लक्ष्य को प्राप्त करने का एक सरल तरीका है।

1)। Apache userdir मॉड्यूल को सक्षम करें।

sudo  a2enmod userdir

यह अपाचे यूजरडियर मॉड्यूल को सक्षम करेगा। अब आप ~/Webroot/अपने होम डायरेक्टरी के अंदर या अंदर वेबसाइट की सामग्री डाल सकते हैं ।

नोट: डिफ़ॉल्ट फ़ोल्डर है ~/public_html

2)। के लिए आवश्यक परिवर्तन करें /etc/apache2/mods-enabled/userdir.conf

3)। अपाचे को पुनरारंभ करें

sudo /etc/init.d/apache2 restart

अब आप अपने ब्राउज़र को http: // ip-address / ~ उपयोगकर्ता नाम पर नेविगेट करके साइट तक पहुँच सकते हैं । आप इस साइट के लिए एक वर्चुअल होस्ट भी सेट कर सकते हैं।

यदि आप php फ़ाइलों को चलाने के लिए देख रहे हैं, तो आपको एक और कदम करने की आवश्यकता है

/etc/apache2/mods-enabled/php5.confनिम्नलिखित पंक्तियों को संपादित करें और टिप्पणी करें:

 <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>

फिर अपाचे को पुनरारंभ करें।

बस। आप कर चुके हैं।

रेफरी: https: //wiki.ubuntu.com/UserDirectoryPHP

उम्मीद है की यह मदद करेगा। यदि आप किसी भी कठिनाइयों का सामना करते हैं तो इसे यहां पोस्ट करने के लिए स्वतंत्र महसूस करें।


7

यह एक अच्छा अभ्यास नहीं है कि आप क्या चाहते हैं।

यदि आप PHP का उपयोग कर रहे हैं, तो आप suexec , suphp या php-fpm और fastcgi पर एक नज़र डालना चाहते हैं ।


आप अपने मुद्दे के बारे में सही हैं, यह इस तथ्य में एक अनुमति मुद्दा है कि आपकी Webrootफाइलें किसी भिन्न उपयोगकर्ता के स्वामित्व में हैं www-data

यहाँ अपनी समस्या को हल करने के लिए एक बुरा-बुरा समाधान नहीं है। ध्यान दें कि आपको शायद sudo का उपयोग करना होगा या रूट के रूप में लॉगिन करना होगा। सुनिश्चित करें कि आप उन सभी कमांडों को पूरी तरह से समझ जाएंगे जिन्हें आप निष्पादित कर रहे हैं !!

उचित अनुमतियाँ Webrootसेट करने www-dataऔर सेट करने के लिए समूह स्वामित्व रखने के लिए अपने फ़ोल्डर और सबफ़ोल्डर और फ़ाइलों को बदलें :

# set the group ownership to be www-data
chgrp -R www-data /path/to/home/Webroot/
# make sure www-data has read & write permissions (change it to `g=r` if you want to only give read-only access)
chmod -vR g=rw /path/to/home/Webroot/
# make sure www-data can access the folders by adding the group execute bit field to directories
find /path/to/home/Webroot/ -type d -print0 | xargs -0p chmod -v g+x

संपादित करें: ध्यान दें कि यदि आप अपने नियमित उपयोगकर्ता खाते का उपयोग करके फ़ाइलें / फ़ोल्डर जोड़ते हैं, तो आपको निश्चित रूप से उन आदेशों को फिर से चलाने की आवश्यकता होगी।


2

मैंने डेबियन लेनी के साथ एक ही चीज़ के पास किया, लेकिन मैं गैर-एचएक्स मोड में बदल गया, मैंने एपाचे को सही ढंग से कॉन्फ़िगर किया है। लेकिन सिमलिंक के साथ:

$ ll /home
drwxr-xr-x  8 root   root   4,0K nov 14 14.59 .
drwxrwxrwx  7 root   root   4,0K nov 14 21.24 www -> /var/www

मुझे लगता है कि आपको ~ और ~ / वेबरोट के परमिशन की जांच करनी चाहिए , मुझे लगता है कि आपके डायर (~) को पढ़ा जाता है, मेरा मतलब है, आपको इसे चलाना होगा:

$ ls -la /home

सही अनुज्ञेय सेट करने के लिए, उपयोग करें:

# chmod 755 /home
# chmod 755 /home/<YOURNAME>
# chown <YOURNAME>:www-data -R /home/<YOURNAME>/Webroot
# chmod 775 -R /home/<YOURNAME>/Webroot

मुझे लगता है, यह मदद करनी चाहिए, लेकिन मुझे इस बारे में अधिक जानकारी दें। मैं आपको सुझाव देता हूं, वेबर को अपने डीआईआर से बाहर निकलने के लिए। करने के लिए / घर मेरे जैसे , क्योंकि यह सुरक्षा समस्या हो सकती है।

"#" का अर्थ है रूट परमिशन , पूर्व। कमांड से पहले sudo लिखें ; "$" का अर्थ है एकल उपयोगकर्ता अनुमति


0

आपको न केवल अपने गंतव्य, बल्कि उसके माता-पिता के बारे में भी अनुमति लेनी होगी।


क्यों? यह एक अपाचे सीमा या एक फाइल सिस्टम सीमा है?
फ्लिम

माफ़ करना। मैंने जानकारी की जाँच नहीं की, यह सिर्फ एक व्यक्तिगत अनुभव पर आधारित है।
zVictor

0

मुझे इस मुद्दे का सामना करना पड़ा। लेकिन मुझे अपने होम डायरेक्टरी के समूह को www-data में बदलने का विचार पसंद नहीं आया। यह समस्या बस वर्चुअलाइजेशन फ़ाइल को virtualHost को संशोधित करके हल की जा सकती है। इन्हें शामिल करने के लिए बस डायरेक्टरी टैग को कॉन्फ़िगर करें

<Directory "your directory here">
   Order allow,deny
   Allow from all
   Require all granted
</Directory>

Require all grantedएक नई सुविधा मुझे लगता है कि है, का डिफ़ॉल्ट मान होना denied

संदर्भ के लिए यह पृष्ठ देखें: http://httpd.apache.org/docs/current/mod/core.html#directory

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