मुझे वेब साझाकरण के लिए अपनी उपयोगकर्ता निर्देशिका कैसे काम करनी चाहिए?


26

मैंने शेर में वेब साझाकरण सक्षम किया था और एक वेब साइट पर http://localhost/~user, जहां userमेरी उपयोगकर्ता निर्देशिका है। जब मैंने माउंटेन लायन में अपग्रेड किया, तो वेब शेयरिंग (अपाचे) सक्षम रहा और मैं लोकलहोस्ट में जा सकता हूं और "यह काम करता है!" डिफ़ॉल्ट वेब पेज, लेकिन मैं अब अपने उपयोगकर्ता पृष्ठ तक नहीं पहुँच सकता। त्रुटि है

मना किया हुआ

आपको इस सर्वर पर / ~ उपयोगकर्ता / का उपयोग करने की अनुमति नहीं है।

मैं अपनी उपयोगकर्ता निर्देशिका के वेब पेज को फिर से कैसे सक्षम करूं?

जवाबों:


18

यहां बताया गया है कि आप टर्मिनल का उपयोग करके कमांड लाइन के साथ वेब पेज को कैसे फिर से सक्षम कर सकते हैं।

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

USER_DIR=$(basename $(echo ~))
sudo bash -c "cat > /etc/apache2/users/$USER_DIR.conf" <<TEXT
<Directory "/Users/$USER_DIR/Sites">
     Options Indexes MultiViews
     AllowOverride None
     Order allow,deny
     Allow from all
</Directory>
TEXT

फिर वेब सर्वर को पुनरारंभ करने के लिए इस कमांड को चलाएं:

sudo apachectl restart

क्षमा करें, मेरी गलती है, आपको इसकी आवश्यकता फ़ाइल फ़ाइल के नाम के लिए भी है। फिर भी, $ (बासीनाम ~) को काम करना चाहिए
nohillside

1
मैंने इससे कुछ अलग किया। इस जानकारी के लिए धन्यवाद indiv जिसने मुझे मेरे सेटअप के लिए एक कस्टम समाधान बनाने में मदद की। मैंने "निर्देशिका" ब्लॉक को जोड़ा है जिसे आपने "$ USER_DIR" के स्थान पर "*" के साथ /etc/apache2/extra/httpd-userdir.conf में जोड़ा है। यह उन उपयोगकर्ता निर्देशिकाओं को सक्षम करता है जिनके पास "साइटें" निर्देशिका है।
जेसन

1

मुझे FollowSymLinksअपने अनुसार जोड़ना था /etc/apache2/users/username.conf:

<Directory "/Users/username/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

( usernameअपने असली उपयोगकर्ता नाम से प्रतिस्थापित किया जाना है)


1

यहाँ एक पंक्ति है टर्मिनल आदेश है कि सक्षम हो जाएगा MacOS के अंतर्निहित अपाचे सर्वर, और आप अपने उपयोगकर्ता फ़ोल्डर में ब्लॉग निर्देशिका का उपयोग करने के लिए अनुमति देते हैं। यह इस लेखन (Mojave) के रूप में macOS के नवीनतम संस्करण के साथ संगत है, और सिएरा और हाई सिएरा के साथ काम करने के लिए भी परीक्षण किया गया है। मुझे संदेह है कि यह अन्य संस्करणों के साथ भी काम करेगा- मैंने इसे भविष्य में प्रूफ तरीके से लिखने की पूरी कोशिश की।

mkdir ~/Sites ; sudo bash -c "printf '<Directory \"/Users/`whoami`/Sites/\">\n\tAddLanguage en .en\n\tAllowOverride All\n\tOptions Indexes MultiViews FollowSymLinks\n\tRequire all granted\n</Directory>' > /etc/apache2/users/`whoami`.conf ; echo 'AddDefaultCharset utf-8' >> /etc/apache2/httpd.conf ; sed -i '' '/LoadModule userdir_module libexec\/apache2\/mod_userdir.so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/LoadModule php[0-9]_module libexec\/apache2\/libphp[0-9].so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/extra\/httpd-userdir.conf/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/users\/\*.conf/s/^#*//g' /etc/apache2/extra/httpd-userdir.conf ; apachectl start"

† ठीक है, यह तकनीकी रूप से एक पंक्ति है, भले ही यह वास्तव में बहुत लंबा हो ...


0

Https://apple.stackexchange.com/a/57555/9058 देखें , मूल रूप से आपको प्रति-उपयोगकर्ता वेब साझाकरण को मैन्युअल रूप से (टर्मिनल.app के साथ) सक्षम करना होगा।


0

माउंटेन लायन उस कॉन्फ़िगरेशन फ़ाइल को हटा देता है जो आपकी उपयोगकर्ता निर्देशिका को वेब एक्सेस देती है। कॉन्फ़िगरेशन फ़ाइलों में हैं /etc/apache2/users/। लापता एक हैuser.conf , जहाँ उपयोगकर्ता आपका संक्षिप्त नाम है।

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

अपने एप्लिकेशन फ़ोल्डर या लॉन्चपैड में, खोलें Other > Applescript Editor। नीचे दी गई स्क्रिप्ट को कॉपी करें और इसे एप्लेसस्क्रिप्ट संपादक के टेक्स्ट क्षेत्र में पेस्ट करें। इसके बाद Run बटन पर क्लिक करें।

set userHome to (short user name of (system info))
set configFile to "/etc/apache2/users/" & userHome & ".conf"
set configFileContents to "<Directory \"/Users/" & userHome & "/Sites/\">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>"

do shell script "echo '" & configFileContents & "' > " & configFile with administrator privileges
do shell script "/usr/sbin/apachectl restart" with administrator privileges

जब स्क्रिप्ट खत्म हो जाती है, तो आपको अपने उपयोगकर्ता-स्तरीय वेब पेज तक पहुंचने में सक्षम होना चाहिए।

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