Apache2.4 में अपग्रेड करने के बाद 403 त्रुटि


34

Ubuntu 13.04 सर्वर से अपग्रेड करने के बाद, www पृष्ठ स्वयं प्रदर्शित नहीं होंगे।

403 त्रुटि निषिद्ध है आपके पास इस सर्वर तक पहुँचने की अनुमति नहीं है।

मैंने पहुंच नियंत्रण को apache2.2 से apache2.4 में बदल दिया है, लेकिन यह काम नहीं किया। इसके अलावा मेरे द्वारा और क्या किया जा सकता है?

जवाबों:


59

क्या हुआ कि Apache2.4 में कॉन्फ़िगरेशन फ़ाइलों का सिंटैक्स बदल गया है।

स्रोत: १३.१० में अपग्रेड होने के बाद मेरे साथ भी ऐसा हुआ है

conf.d फ़ाइलें

सभी फाइलें जो अंदर थीं, /etc/apache2/conf.dउन्हें स्थानांतरित कर दिया जाना चाहिए /etc/apache2/conf-available

वे अब उसी तरह काम करते हैं sitesऔर modsकाम करते हैं। बस अपनी गोपनीय फ़ाइलों को conf-availableफ़ोल्डर में रखें और जिसे आप चाहते हैं उसे सक्षम करेंa2enconf <config-file-name>

उदाहरण:

मेरे पास एक फाइल conf.d/httpd.confथी जिसमें ServerName निर्देश था।
उस काम को करने के लिए, मुझे इसे conf-availableनिर्देशिका में ले जाना पड़ा और इसे मैन्युअल रूप से सक्षम करना पड़ा ।

sudo mv /etc/apache2/conf.d/httpd.conf /etc/apache2/conf-available/httpd.conf
sudo a2enconf httpd

साइटों की फाइलें

पहले, फ़ाइलों में /etc/apache2/sites-availableकोई एक्सटेंशन नहीं था। उदाहरण के लिए /etc/apache2/sites-available/default। अब एक .confविस्तार की आवश्यकता है।

उदाहरण:

यदि आपके पास /etc/apache2/sites-available/some-site13.04 में है, तो आप इसका उपयोग कर सकते हैं sudo a2ensite some-site। अब यह आपको एक त्रुटि कहेगा

त्रुटि: साइट कुछ साइट मौजूद नहीं है!

इसे ठीक करने के लिए, .confअपनी सभी कॉन्फिग फाइलों में संलग्न करें sites-available। आप ऐसा ही कर सकते हैं sites-enabled, या आप सभी फ़ाइलों को हटा सकते हैं और उन्हें प्रत्येक मैन्युअल रूप से सक्षम कर सकते हैं।
मैं उन्हें मैन्युअल रूप से करने की सलाह देता हूं क्योंकि आपको प्रत्येक VHost (अगला चरण) को ठीक करने की आवश्यकता है।

sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;

यदि आपने उन्हें मैन्युअल रूप से करने का निर्णय लिया है:

sudo rm /etc/apache2/sites-enabled/*
sudo a2ensite your-site-name

वर्चुअल होस्ट निर्देश:

अनुमति / इनकार बनाम आवश्यकता

यदि आपके पास निम्नलिखित थे:

<Directory /path/to/your/site/>
    order allow,deny
    allow from all
</Directory>

यह बनना चाहिए:

<Directory /path/to/your/site/>
    Require all granted
</Directory>

अधिक जानकारी के लिए, स्टैक ओवरफ्लो पर एक जवाब पर डेवेरजैंडम द्वारा टिप्पणियों की जांच करें ।

सीधे शब्दों में कहें, अगर आपने अपाचे 2.4 में अपग्रेड किया है और अपाचे 2 httpd.confका पुराना रखा है , तो निर्देश को ठीक काम करते रहना चाहिए। यदि आपने अपने httpd.conf(जो मैं सुझाव देता हूं) को अपग्रेड किया है , तो आपको 403 त्रुटियां मिलेंगी जब तक कि आप उनके समकक्ष Order/ Allow/ Denyनिर्देशों को नहीं बदलते Require

निर्देशिका विकल्प

आप निर्देशिका विकल्प, नोट था कि वे सभी के साथ एक prepended किया जाना है कि +या -या बिल्कुल भी उनमें से कोई भी। दोनों के मिश्रण की अनुमति नहीं है:

उदाहरण:

इसकी अनुमति है:

<Directory /path/to/your/site/>
    Options +Indexes +FollowSymLinks -MultiViews
</Directory>

तो यह है (ध्यान दें कि ये उदाहरण दोनों एक ही काम नहीं करते हैं, पिछले एक MultiViewsविकल्प को निष्क्रिय कर देता है , अगले वाला नहीं करता है):

<Directory /path/to/your/site/>
    Options Indexes FollowSymLinks MultiViews
</Directory>

यह अब अनुमति नहीं है:

<Directory /path/to/your/site/>
    Options Indexes FollowSymLinks -MultiViews
</Directory>

अंतिम विन्यास विकल्प एक वाक्यविन्यास त्रुटि कहेगा:

या तो सभी विकल्प + या - से शुरू होने चाहिए, या कोई विकल्प नहीं हो सकता है।

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

एक बार सब कुछ हो जाने के बाद, आपको परिवर्तनों को प्रभावी करने के लिए अपने अपाचे सर्वर को पुनः आरंभ करने की आवश्यकता है:

 sudo apache2ctl restart

आप आधिकारिक दस्तावेज पर 2.2 से 2.4 तक विस्तृत उन्नयन गाइड पा सकते हैं ।


1
मेरे सिस्टम पर, कोई httpd.confफ़ाइल या conf.dनिर्देशिका नहीं है। लेकिन एक apache2.confफाइल है। मैंने इसे conf-availableनिर्देशिका में ले जाने की कोशिश की , और जब मैंने apache2 को पुनः आरंभ किया तो निम्न त्रुटि हुई: apache2: कॉन्फ़िगरेशन फ़ाइल /etc/apache2/apache2.conf नहीं खोल सका: ऐसी कोई फ़ाइल या निर्देशिका नहीं - क्या कारण हो सकता है?
अमल मुरली

@AmalMurali यह httpd.confएक उदाहरण मात्र था। यह संभव है कि आपके पास conf.dनिर्देशिका में कोई भी कॉन्फिग फाइल नहीं होगी , उस स्थिति में, बस उस चरण को छोड़ दें। के रूप में apache2.conf, यह conf-availableनिर्देशिका में स्थानांतरित नहीं किया जाना चाहिए । यह अपाचे की मुख्य कॉन्फ़िगरेशन फ़ाइल है, और इसका पथ /etc/apache2/apache2.conf होना चाहिए और इसे परिवर्तित नहीं किया जाना चाहिए।
दान

1
वाह। यह व्यावहारिक रूप से कहीं भी पाया जाने वाला एकमात्र स्पष्ट अवलोकन है। धन्यवाद।
रस बेटमैन

वहाँ कोई है config.dया sites availableफ़ोल्डर। यहां सभी कॉन्फिग फाइल देखें: imgur.com/WczXp3v
diEcho

1
@EdwardBlack यदि आप अभी भी डिफ़ॉल्ट वर्चुअल होस्ट का उपयोग कर रहे हैं, तो एक और कारण हो सकता है, जैसा कि निम्नलिखित प्रश्न के उत्तर में बताया गया है: Apache virtualhosts 13.10 पर अपडेट के बाद काम नहीं कर रहा है
Dan

0

मुझे लगता है कि वेब साइट आपके Ubuntu सर्वर पर चल रही है।

यह सुनिश्चित करने के लिए कि आपके DocumentRoot सेटिंग सही जगह की ओर इशारा कर रही है, अपने httpd.conf की जाँच करें।

DocumentRoot द्वारा संदर्भित फ़ोल्डर पर फ़ाइल अनुमतियों की जाँच करें उपयोगकर्ता द्वारा पढ़ा जा सकता है जिसे वेबसर्वर के रूप में चलाता है।

जाँच करें कि आपके पास एक उपयुक्त index.html / index.htm आदि है और यह कि वेबसर्वर निर्देशिका लिस्टिंग करने का प्रयास नहीं कर रहा है।


0

मैं इसी तरह की समस्याओं में भाग गया।

जब तक मैंने All सभी से अनुमति दें ’का उपयोग नहीं किया, मुझे अपाचे 2.4 नहीं मिला, यह मुझे कष्टप्रद था क्योंकि मैं संस्करणों <2.4 से एक साफ ब्रेक प्रदान करना चाहता था। बहुत परीक्षण और त्रुटि के बाद और बहुत खोज के बाद मैंने access_compat के संदर्भ को देखा और महसूस किया कि यह सिर्फ संगतता के लिए था। हालांकि अपाचे प्रलेखन का कहना है कि दोनों का उपयोग किया जा सकता है, यह अनुशंसा करता है कि आपको नहीं करना चाहिए।

मैंने इस मॉड्यूल को / etc / sysconfig / apache2 लोड फ़ाइल से हटा दिया, इससे मेरी समस्या तुरंत हल हो गई।

सादर लियाम


-1

मैं एक गैर-मानक निर्देशिका से फाइल परोस रहा हूं ताकि मुझे अपग्रेड कार्य को संपादित करने के लिए /etc/apache2/apache2.conf को जोड़ना पड़े और जोड़ना: विकल्प अनुक्रमणिका का अनुसरण करेंसिमलिंकअनुकूलित सभी की आवश्यकता नहीं है

इसके बाद, और ऊपर सुझाए गए परिवर्तन, 403 त्रुटि दूर हो गई।

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