Apache macOS 10.13 हाई सिएरा पर यूजर साइट्स फोल्डर के साथ काम नहीं कर रहा है


8

मैंने उच्च सिएरा पर अपाचे को सेट-अप करने के लिए इस गाइड का पालन किया है: https://coolestguidesontheplanet.com/get-apache-mysql-php-and-phpmyadmin-working-on-macos-wierra/

मैंने इसे सिएरा पर स्थापित करने के लिए उपयोग किया।

लेकिन जब मैं जाता http://localhost/~scott/हूं तो मुझे "मना किया जाता है। आपके पास इस सर्वर पर / ~ स्कॉट / एक्सेस करने की अनुमति नहीं है।"

इसी तरह के सवाल पर एक सुझाव: macOS हाई सिएरा पर लोकलहोस्ट / यूज़रडियर को vhosts लोड करना है। जो मैंने कोशिश की है, लेकिन अभी भी "निषिद्ध" मिलता है।

सिएरा और हाई सिएरा के बीच कुछ भी बदल गया है जो एपाचे को उपयोगकर्ता साइटों के फ़ोल्डर्स के साथ काम करने से रोक देगा?


कोशिश करें apachectl configtest, और आउटपुट अपडेट करें
राकेश कुमार

वापसीSyntax OK
sfyfedotcom


"निषिद्ध। आपके पास इस सर्वर पर / ~ स्कॉट / एक्सेस करने की अनुमति नहीं है।"
sfyfedotcom

जवाबों:


8

मेरे लिए यह तब काम किया जब मैं उसी समस्या में भाग गया।

कृपया "/pStreet/etc/apache2/extra/httpd-userdir.conf" फ़ाइल देखें।

परिवर्तन

#Include /private/etc/apache2/users/*.conf

सेवा

Include /private/etc/apache2/users/*.conf

और फिर से शुरू करें।

प्रेषक: /programming/39631351/apache-localhost-403-forbidden-with-macos-sierra


मेरे द्वारा /private/etc/apache2/extra/httpd-userdir.confबताई गई निर्देश लिंक से वह लाइन पहले से ही अनियंत्रित है।
sfyfedotcom

क्या आपने Apache "sudo apachectl पुनरारंभ" शुरू किया
रॉबर्ट

हाँ। मैंने अपाचे के विन्यास फाइलों में सभी परिवर्तनों के साथ किया है
sfyfedotcom

4

साइट निर्देशिका तक पहुंच की अनुमति देने के लिए, आपको निम्नलिखित को जोड़ना होगा /etc/apache2/httpd.conf:

<DirectoryMatch "/Users/.*/Sites">
  Require all granted
</DirectoryMatch>

डिफ़ॉल्ट Apache कॉन्फ़िगरेशन / पर अस्वीकृत करने के लिए सेट है , इसलिए आपको स्पष्ट रूप से सब कुछ तक पहुंचने की अनुमति है।


जोड़ा गया और फिर से शुरू हुआ।
पड़ा

मुझे भी यही समस्या थी। मिल रहा था "यह काम करता है!" locahost पर, लेकिन उपयोगकर्ता निर्देशिकाओं को काम करने के लिए नहीं मिला। इस तरह से DirectoryMatch नियम को हल करने से इसे हल किया गया। धन्यवाद!
कर्रा

4

बस डिओगो लीमा के जवाब पर विस्तार करने के लिए।

हाई सिएरा में अपग्रेड के साथ, Apple ने आपकी पिछली एपाचे सेटिंग्स की प्रतियां बनायीं और एक ~ पिछला को * .conf फाइल्स दोनों में / etc / apache2 और / etc / apache2 / extra फोल्डर में जोड़ दिया। यदि आप वर्चुअल होस्ट या एसएसएल-वर्चुअल होस्ट का उपयोग कर रहे हैं, तो आपको उन .conf फ़ाइलों के लिए भी अपने पिछले संस्करणों को स्थानांतरित करना होगा।

mv /etc/apache2/extra/httpd-vhosts.conf~previous /etc/apache2/extra/httpd-vhosts.conf
mv /etc/apache2/extra/httpd-ssl.conf~previous /etc/apache2/extra/httpd-ssl.conf

यह हाई सिएरा की एक साफ स्थापना थी, इसलिए मेरे पास कोई पिछली कॉन्फ़िगरेशन फाइलें नहीं
थीं

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

हाँ, यह सही है। मैं हमेशा नए macOS संस्करणों की एक साफ स्थापना करता हूं। मुझे पता है कि मैं ऐसा कर सकता हूं, लेकिन मैं वेब परियोजनाओं के लिए दोनों /Library/WebServer/Documentsऔर Users/username/Sitesअलग-अलग स्थानों को बनाए रखना चाहता हूं , क्योंकि मैं पिछले 10+ वर्षों से macOS पर क्या कर पा रहा हूं।
sfyfedotcom

तो ऐसा लगता है कि आपको एक ही मशीन पर अपाचे के दो अलग-अलग इंस्टेंस को चलाने की आवश्यकता होगी, लेकिन क्या यह उस वेबसाइट को लोड करने के पूरे उद्देश्य को नहीं हराएगा जो अपाचे अब एकल उदाहरण से चलाते हैं? Apple की सर्वोत्तम प्रथाओं की अनुशंसा अब उपयोगकर्ताओं / उपयोगकर्ता नाम / साइटों का उपयोग नहीं करती है और लाइब्रेरी / वेबसर्वर / दस्तावेज़ों के साथ रहना है
जेम्स मार्टिन

एकल अपाचे उदाहरण कई निर्देशिकाओं से वेब परियोजनाओं को पढ़ने का केबल है। इस तरह मैंने इसे सालों तक सेट किया है।
sfyfedotcom

3

उपरोक्त सभी तरीकों को आज़माने के बाद, अगर आप लोकलहोस्ट को एक्सेस करते समय "मना" करते हैं, तो अपने /etc/apache2/extra/httpd-vhosts.conf में virtualhost को जोड़ने का प्रयास करें।

जोड़ें:

<VirtualHost *:80>
ServerName localhost
DocumentRoot /Library/WebServer/Documents/
</VirtualHost>

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

https://coolestguidesontheplanet.com/set-up-virtual-hosts-in-apache-on-macos-high-sierra-10-13/

मेरे लिए ठीक काम करता है


1

मैं उसी स्थिति में था, जाहिरा तौर पर httpd.conf में असहजता के लिए कुछ और लाइनें हैं, हाई सिएरा में vhosts सक्रिय नहीं हैं। - https://apple.stackexchange.com/a/299929/259065


मैंने उन दोनों पंक्तियों को पहले ही अनसुना कर दिया था। कोई फर्क नहीं पड़ता
sfyfedotcom

1

आज सुबह ही अपडेट किया गया। / उपयोगकर्ता / उपयोगकर्ता नाम में साइट फ़ोल्डर का उपयोग करना।

Httpd.conf, httpd-userdir.conf और https-vhosts.conf w / ~ पिछले वेरिएंट का बैकअप लिया और बदल दिया गया।

दौड़ा sudo apachectl configtestऔर PHP की त्रुटि (PHP को उच्च सिएरा में 7 में अपडेट किया गया) मिला। PHP7 शुरू करने के लिए http.conf को संपादित किया और अब सब कुछ फिर से काम कर रहा है।


नोट के लिए +1sudo apachectl configtest
डेविड सी

1

संभव समाधान (उपरोक्त सभी सुझावों के साथ विफल होने के बाद)। मुद्दा होम निर्देशिका की अनुमति के साथ है। यह समूह / अन्य लोगों के लिए निष्पादन योग्य होना चाहिए:

sudo chmod go + x / उपयोगकर्ता / उपयोगकर्ता नाम

जहां "उपयोगकर्ता नाम" को वास्तविक उपयोगकर्ता नाम के साथ प्रतिस्थापित किया जाना है। इसके बाद, यह काम करता है!


0

ओह !! मैंने खुद ही इसका पता लगा लिया।

ये उपाय करें

चरण 1: अपना टर्मिनल खोलें और इस कमांड को नीचे चलाएं

sudo atom /etc/apache2/httpd.conf

और फिर "#"इसके पहले साइन को हटाकर लाइन को अनकम्फर्ट करें

LoadModule php7_module libexec/apache2/libphp7.so

चरण 2: नीचे उल्लिखित कमांड को चलाएँ

cd /private/etc

sudo cp php.ini.default php.ini

चरण 3: फिर अपनी /Library/WebServer/Documentsनिर्देशिका पर जाएं और एक करें

sudo chown -R  root yourprojectname

अपने सफारी ब्राउज़र पर वापस जाएं और टाइप करें "http://localhost/yourprojectname"

आप जाने के लिए पूरी तरह से तैयार हैं।

मैं macOS हाई सिएरा 10.13 का उपयोग कर रहा हूं, यह कल सुबह अपडेट हुआ।


localhostसे चल /Library/WebServer/Documentsरहा है ठीक काम कर रहा है। से समस्या चल रही localhost/~scottहै /Users/Scott/Sites
21.1 पर sfyfedotcom

0

इसे जानने के लिए पूरी सुबह बिताई, लेकिन आखिरकार इसने काम किया। आशा है कि यह किसी के लिए उपयोगी हो सकता है।

मैंने एक गाइड का पालन किया, लेकिन थोड़े बदलाव के साथ।

  • यह मार्गदर्शिका है: https://websitebeaver.com/set-up-localhost-on-macos-high-sierra-apache-mysql-and-php-7-with-sslhttps (डेविड मार्कस धन्यवाद!)
  • क्रिएट साइट्स फोल्डर सेक्शन के तहत यह मेरा ट्वीक है : /users/username/Sites/मैंने इसे अपने लिए काम करने के लिए अंतिम स्लैश जोड़ा

अब मैं लोकलहोस्ट फोल्डर एक्सेस कर सकता हूं, लेकिन ...

उच्च-सिएरा से पहले यह ऐसा था: http://localhost/~username/smomesite.local

अब ऐसा है: http://localhost/smomesite.local

और नहीं ~usernameचाहिए।


मैं अपने उपयोगकर्ता फ़ोल्डर में डिफ़ॉल्ट एपाचे वेब पथ को बदलना नहीं चाहता। MacOS के पिछले संस्करण में मैं दोनों से फाइल / साइटों चलाने के लिए सक्षम किया गया है Users/myname/Sitesनिर्देशिका और/Library/WebServer/Documents
sfyfedotcom

0

मेरे पास बस यही मुद्दा था, और जैसा आप चाहते थे वैसा ही करना चाहते थे (रूट को / लाइब्रेरी / वेबसर्वर / डॉक्यूमेंट्स में रखें, लेकिन उपयोगकर्ता साइट फ़ोल्डर की अनुमति भी दें)। मुझे यकीन नहीं है कि यह मददगार होगा, लेकिन आज रात को इस पर धमाका करने के बाद, लाइन को लाइन से देख कर .conf फाइलें, और सोच रहा था कि क्या गलत था, मुझे एहसास हुआ कि httpd प्रक्रिया मेरे पढ़ने में सक्षम नहीं थी स्वयं उपयोगकर्ता निर्देशिका। किसी कारण से इसे 750 के रूप में सेट किया गया था, और _www उपयोगकर्ता इसे पढ़ने में असमर्थ है। एक बार मैंने तय किया कि "चामोद 755 चलाकर।" मेरी उपयोगकर्ता निर्देशिका पर, साइट फ़ोल्डर ने सही दिखाया।

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


बस कोशिश की और अपाचे को फिर से चालू कर दिया। फिर भी "निषिद्ध: आपको इस सर्वर पर / ~ उपयोगकर्ता नाम / उपयोग करने की अनुमति नहीं है"
sfyfedotcom

0

मुझे भी यही समस्या थी। मैंने नीचे दो पंक्तियाँ लिखी हैं (जैसा कि पहले से किसी अन्य प्रतिक्रिया में सुझाया गया है)

#LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so 
#Include /private/etc/apache2/extra/httpd-vhosts.conf

लेकिन फिर भी वही त्रुटि हुई। मेरे लिए ट्रिक httpd.conf फ़ाइल में इन अतिरिक्त लाइनों को असहज कर रही थी:

#LoadModule userdir_module libexec/apache2/mod_userdir.so 
#LoadModule include_module libexec/apache2/mod_include.so 
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so

उम्मीद है की वो मदद करदे।


मैंने उन पंक्तियों को पहले ही
अनफ़िल्टर्ड कर दिया है

0

ऐसा होता है कि अद्यतन ने आपके सभी पिछले कॉन्फ़िगरेशन को फ़ाइलों में बदल दिया है .conf ~ पिछला। यदि आप /etc/apache2/extra/httpd-userdir.conf~prepret to /etc/apache2/extra/httpd-userdir.conf, और /etc/apache2/extra/httpd.conf~preमें से / etc / apache2 पर जाते हैं। अतिरिक्त / httpd.conf, इसे पहले की तरह काम करना चाहिए।

mv /etc/apache2/extra/httpd-userdir.conf /etc/apache2/extra/httpd-userdir.conf~high-sierra
mv /etc/apache2/httpd.conf /etc/apache2/httpd.conf~high-sierra
mv /etc/apache2/extra/httpd-userdir.conf~previous /etc/apache2/extra/httpd-userdir.conf
mv /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf
apachectl restart

यह हाई सिएरा की एक साफ स्थापना थी, इसलिए मेरे पास कोई पिछली कॉन्फ़िगरेशन फाइलें नहीं
थीं

0

मेरा भी यही मुद्दा रहा है। संकल्प आसान था। यहां देखें उत्तर पोस्ट: https://apple.stackexchange.com/a/306390/129503

मैंने आज पहले उच्च सिएरा में अपग्रेड करने के बाद उसी का सामना किया। मैंने पाया कि निम्न अपाचे फ़ाइलों को ब्रांड के नए संस्करणों के साथ बदल दिया गया था। सौभाग्य से इन सभी फ़ाइलों के लिए एक ही फ़ोल्डर में FILE ~ पिछली फ़ाइल मौजूद थी। मैंने सिर्फ मूल वाले वापस ~ पिछले संस्करण की प्रतिलिपि बनाई, अपाचे को फिर से शुरू किया और सब कुछ ठीक था।

फ़ोल्डर में /etc/apache2:

./httpd.conf
./extra/httpd-vhosts.conf
./extra/httpd-ssl.conf

उदाहरण:

cp /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf

0

बदलने के

./httpd.conf
./extra/httpd-vhosts.conf
./extra/httpd-ssl.conf

पुरानी ~ पिछली फ़ाइलों से।

आपको httpd.conf में php5 मॉड्यूल त्रुटि मिल सकती है, php5 को php7 से बदल दें और आपकी साइट्स को काम करना शुरू कर देना चाहिए।

बदलने के

LoadModule php5_module libexec/apache2/libphp5.so

साथ में

LoadModule php7_module libexec/apache2/libphp7.so

0

मैंने अभी अपग्रेड किया था और बिल्कुल वही मुद्दे थे। मैं vhosts का उपयोग नहीं करते। मेरे लिए समाधान सुनिश्चित कर रहा था:

में https.confटिप्पणी हटाएं

LoadModule userdir_module libexec/apache2/mod_userdir.so

LoadModule authz_host_module libexec/apache2/mod_authz_host.so

LoadModule authz_user_module libexec/apache2/mod_authz_user.so

LoadModule authz_core_module libexec/apache2/mod_authz_core.so

और extra/httpd-user.confलाइन सुनिश्चित करें :

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