2011-01-31 6 views
5

यह मेरे 4 वर्षों में Django के साथ सबसे अजीब समस्या हो सकती है।डाटाबेस त्रुटि: डीबी फ़ाइल खोलने में असमर्थ, लेकिन केवल Django व्यवस्थापक

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

डीबी फ़ाइल दुनिया लिखने योग्य है और सेटिंग्स में पथ पूर्ण हैं। उत्पादन पर्यावरण उबंटू ल्यूसिड/पायथन 2.6/स्क्लाइट 3 है। मैंने Django 1.2.4 और 1.3 बीटा दोनों के साथ प्रयास किया।

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

मेरे पास किसी भी तर्क के लिए कोई आधार नहीं छोड़ा गया है। कोई भी मदद बहुत ही सराहनीय होगी।

ps: त्रुटि Djache से नहीं, अपाचे स्तर पर त्रुटि उठाई गई है। Django ट्रेसबैक अपाचे त्रुटि लॉग में है, जो DatabaseError: unable to open database file पढ़ता है।

+0

आप सुनिश्चित करें कि आपके सभी मॉडलों के डेटाबेस में की तरह एक ही संस्करण हैं कर रहे हैं क्या करेंगे? मुझे एक बार एक ही समस्या थी और मुझे शुरुआत में यह एहसास नहीं हुआ क्योंकि मैंने इस मॉडल को अपने सामान्य पृष्ठ पर शायद ही कभी इस्तेमाल किया था। लेकिन व्यवस्थापक एक बार में उन सभी को खोल देगा। –

+0

मुझे मॉडल के साथ कोई समस्या नहीं मिली। मैं वैसे भी स्थानीय रूप से व्यवस्थापक साइट तक पहुंच सकता हूं। अगर, यह मॉडल था, तो मुझे एक अलग त्रुटि मिलेगी, न कि 'डेटाबेस फ़ाइल नहीं खोल सकता'। तो यह मुझे कुछ और होना चाहिए। धन्यवाद। – omat

उत्तर

2

एक बेवकूफ अनुमान।

कौन सा उपयोगकर्ता अपाचे चला रहा है?

मुझे पता है कि यह साइट अजीब बात है कि बाकी साइट काम करती है, लेकिन अपने एसक्लाइट डीबी को दोबारा जांचें उपयोगकर्ता से पहुंचने योग्य और पठनीय है अपाचे चल रहा है!

+1

हाँ, धन्यवाद! मैंने मालिक निर्देशिका को पूरे निर्देशिका पेड़ के लिए 'www-data' में बदल दिया, जो अपाचे है, और यह काम करता है। अजीब बात है कि मैं पहले से ही sqlite डेटाबेस फ़ाइल के लिए 777 अनुमति दे दी थी, लेकिन यह काम नहीं किया। धन्यवाद। – omat

+0

अच्छी खबर सुनने के लिए खुश है। हो सकता है कि फ़ाइल 777 थी, लेकिन पथ में एक (या अधिक) निर्देशिका अपाचे उपयोगकर्ता को फ़ाइल तक पहुंचने की अनुमति नहीं दे रही थी! –

+4

मुझे पता है कि यह एक पुराना सवाल है लेकिन पूर्णता के लिए: पायथन एसक्लाइट मॉड्यूल को डेटाबेस फ़ाइल वाली निर्देशिका में लेखन पहुंच की आवश्यकता होती है। – Ochoto

1
sudo chown www-data /var/www/yourproject/db.sqlite3 

इस चाल (अपाचे के लिए उपयोगकर्ता सेट)

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