2013-03-18 7 views
12

उम्मीद है कि कोई यहां समस्या का पता लगाने में मदद कर सकता है! मैं 2 घंटे से अधिक समय तक गुगल रहा हूं और कुछ भी मैं कोशिश नहीं कर रहा हूं ....htpasswd और .htaccess - आंतरिक सर्वर त्रुटि

मैं पासवर्ड को अपनी वेबसाइट की रक्षा करना चाहता हूं, लेकिन जैसे ही मैं .htpasswd और .htaccess फ़ाइलों में जोड़ता हूं, मुझे सर्वर त्रुटि मिलती है:

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

.htaccess

AuthType Basic 
AuthName "Top Secret for SongKick eyes only." 
AuthUserFile /webroot/.htpasswd 
require valid-user 

.htpasswd

songkick:isS1rCTQE/p8E 

मैं भी कोशिश की है AuthUserFile /.htpasswd (:

यहाँ कोड मैं का उपयोग कर रहा है यानी "वेबूट" के बिना, जो कि फ़ाइल मन में मौजूद फ़ोल्डर का नाम है जीर) लेकिन यह या तो काम नहीं करता है।

मैं गोडाडी होस्टिंग बीटीडब्ल्यू का उपयोग कर रहा हूं, अगर इससे कोई फर्क पड़ता है।

किसी भी मदद की बहुत सराहना की जाती है - मैं डेवलपर नहीं हूं इसलिए कई सहायता लेखों में उपयोग की जाने वाली कई शर्तों को समझ में नहीं आता है!

+0

यह अपाचे लॉग फ़ाइल में विस्तृत त्रुटि रिपोर्ट दिखाना चाहिए, इसे पहले जांचें। – aram90

उत्तर

4

दो चीजें ध्यान में आती हैं।

  1. .htpasswd वेब सर्वर उपयोगकर्ता द्वारा पठनीय है?

  2. क्या आपको पता है कि अपाचे को के साथ सेट किया गया है ताकि .htaccess को इरादे से संचालित किया जा सके?

+2

अरे जेक, आह मैं वास्तव में नहीं जानता कि इनमें से किसी भी चीज़ का क्या अर्थ है। उनको खोजने के लिए मैं क्या कदम उठाऊंगा? –

+0

मुझे 500 प्राप्त हो रहा था जब तक कि मैंने '.htpasswd' पर' -rw-r-r-'पर अनुमतियां बदल दीं। – horizens

+0

@horizens इस मदद से खुश है! जैसा कि मैंने बताया, '.htpasswd' को वेब सर्वर उपयोगकर्ता द्वारा पठनीय करने की आवश्यकता है। और '-rw-r-r -' की अनुमतियां ठीक काम करनी चाहिए। – JakeGould

26

AuthUserFile के अनुसार, आप पूर्ण पथ अपना पासवर्ड फाइल करने के लिए, नहीं रिश्तेदार पथ DocumentRoot से, प्रदान करना होगा अगर यह पूर्ण नहीं है (यानी एक स्लेश के साथ शुरू)।

The AuthUserFile directive sets the name of a textual file containing the list of users and passwords for user authentication. File-path is the path to the user file. If it is not absolute, it is treated as relative to the ServerRoot.

ध्यान दें कि ServerRootDocumentRoot नहीं है।

तो DocumentRoot/var/www है और पासवर्ड फ़ाइल /var/www/webroot/.htpasswd है, तो आप कहना होगा

AuthUserFile /var/www/webroot/.htpasswd 
अपनी .htacces फ़ाइल में


आप एक छोटी PHP स्क्रिप्ट के साथ पूर्ण पथ के बारे में पता लगा सकते हैं, उदा।

<?php 
echo "Absolute path: ", getcwd(); 

निर्देशिका है, जहां आप .htpasswd फ़ाइल का पता करना चाहते हैं में इस रखो, और http://www.example.com/path/to/test.php

से कॉल करने की मत भूलना, स्क्रिप्ट निकालना आपका काम पूरा हो।


ने कहा कि, आप अपने पासवर्ड फ़ाइल अपने DocumentRoot में कहीं भी सुलभ नहीं रखना चाहिए। बेहतर जगह पर इसे किसी भी स्थान पर वेब से उपलब्ध नहीं है, यानी /etc/apache2/htpasswd या जहां भी यह उपयुक्त है।

+3

यह मेरे लिए काम किया। – cmann

+2

उसमें जोड़ने के लिए: पूरा पथ आपके एफ़टीपी पथ जैसा नहीं है। आपका एफ़टीपी '12.34.567.89/ 'दिखा सकता है जबकि वास्तविक पथ'/var/www/domain.com' हो सकता है। यह आपके नियंत्रण कक्ष (यदि मौजूद हो) में या त्रुटि लॉग (यदि पहुंच योग्य हो) में पाया जा सकता है। – Sjeiti

1

सभी मानक उत्तर (पूर्ण पथ, सही प्रारूप, आदि) मेरे लिए काम नहीं कर रहे थे। बहुत सी ट्रैकिंग के बाद मुझे पता चला कि मूल फ़ोल्डर पर अनुमति अपर्याप्त थी, भले ही .htaccess में पथ सही था और फ़ाइल पर अनुमतियां आरडब्ल्यूआरआर थीं, फिर भी कोई नहीं जाना क्योंकि माता-पिता rwx-rw- -। ऐसे होस्ट पर ट्रैक करना मुश्किल हो सकता है जो स्ट्रीम स्ट्रीमर्स तक पहुंच को सीमित करता है।

2

इस त्रुटि का मुख्य कारण "AuthUserFile" पथ है। मुझे यह वही मुद्दा था और मैंने इसे सीपीएनल में जाकर हल किया। सीपीनल में अपने फ़ोल्डर की सुरक्षा करके, यह स्वचालित रूप से htpasswd फ़ाइल का पता लगाता है।

सीपीनल-> पासवर्ड सुरक्षित निर्देशिका-> निर्देशिका परिभाषित करें और फिर उपयोगकर्ता बनाएं। उम्मीद है कि यह आपकी मदद करेगा।

संबंधित मुद्दे