2011-09-28 15 views
17

मैं CakePHP 2.0 आर सी -1 का उपयोग कर रहा फ़ाइल में लिखने में असमर्थ था। एसवीएन से परियोजना की जांच करने के बाद, एप्लिकेशन शिकायत करना शुरू कर रहा है कि यह tmp/cache निर्देशिका में कैश फ़ाइलों को नहीं लिख सकता है। चूंकि यह स्थानीय है, मुझे पता है निर्देशिका लिखने योग्य है और मैं स्पष्ट रूप से देख सकते हैं कि निर्देशिका भी फाइलों के साथ भर रहे हैं, तो त्रुटि थोड़ा अजीब है।CakePHP 2.0 - केक कैश

यहाँ त्रुटियों मैं का सामना किया है में से कुछ हैं:

_cake_core_ cache was unable to write 'cake_dev_nb' to File cache 

fopen(c:\cake\app\tmp\cache\models\cake_model_default_media) [function.fopen]: failed to open stream: No error [CORE\Cake\Cache\Engine\FileEngine.php, line 127] 

कोई त्रुटि ?! Wth?

अब, अगर मैं FileEngine फ़ाइल में देखो, लाइन 127 पर इसे पढ़ता है: के साथ "डब्ल्यू", कोई त्रुटि आई है "सी" को बदलकर

if (!$handle = fopen($this->_File->getPathName(), 'c')) { 
      return false; 
} 

और सब कुछ एकदम सही ढंग से काम करता है। लेकिन, इस समस्या के आसपास काम करने के लिए कोर केक पुस्तकालयों को संशोधित करना आवश्यक नहीं होना चाहिए। मुझे दोबारा दोहराएं कि मेरे दूसरे कंप्यूटर पर यह कोर लाइब्रेरी को संपादित किए बिना, इरादे से काम करता है। दोनों विंडोज ओएस का उपयोग करते हैं और tmp/cache-folder के पढ़ने/लिखने के अधिकार बिल्कुल वही हैं।

संपादित करें: यहाँ एक साइट है कि त्रुटि आउटपुट का अनुभव करता है मैं स्थानीय स्तर पर

उदाहरण Googling द्वारा पाया साइट आ रही है। नहीं मेरी साइट: http://www.12h30.net/credit/

कोई सुझाव?

अपडेट: यहां क्यों है: ऐसा इसलिए होता है यदि आपके पास PHP संस्करण है जो 5.2.6 से पहले बहुत कम है, जैसा टिप्पणियों में "api55" द्वारा उल्लिखित है। उत्तर के लिए धन्यवाद। उम्मीद है कि यह आपको भी मदद करता है।

+2

आपके पास PHP का कौन सा संस्करण है? याद 2.0 अभी भी आर सी अवस्था में है, इसलिए इसे त्रुटियों ... मोड ग या ग के लिए इस तरह का हो सकता है + आप php 5.2.6 के लिए की जरूरत है या बाद में अगर आप इसे वास्तव में उस विधा – api55

उत्तर

1

बस जब मैं अपने अनुप्रयोग की जाँच की, यह /tmp फ़ोल्डर नहीं था मेरे मामले में, सही CHMOD (776 मेरे लिए ठीक काम करता है) app/tmp

23

खैर करने के लिए देते हैं,। तब मैं संरचना (/tmp/cache/models, /tmp/cache/persistent) बनाया और सब कुछ ठीक काम किया। यह मेरे साथ हुआ हो सकता है कि गिट खाली फ़ोल्डर्स को अनदेखा कर दें, इसलिए वे नहीं बनाए गए थे।

+1

नहीं पहचानेंगे नहीं है, संस्करण नियंत्रण प्रणाली अक्सर खाली फ़ोल्डर को अनदेखा करते हैं। – Alfabravo

+0

यह सही जवाब है, मेरे लिए काम किया। –

17

मैं एक ऐसी ही समस्या थी, यह था, क्योंकि मैं एप्लिकेशन/tmp निर्देशिका के लिए chown आर www केक हर कोई विशेषाधिकार लिखना दिए बिना "ठीक से" चलाने के लिए प्राप्त करने के लिए किया था। ऐसा लगता है कि विकास के दौरान कंसोल और वेब का उपयोग करने का एकमात्र तरीका सभी को विशेषाधिकार लिखना है, या शायद स्वयं को www समूह में जोड़ना है।

आसान समाधान:

chmod आर 777 एप्लिकेशन को/tmp

या

chown आर उपयोगकर्ता नाम एप्लिकेशन को/tmp

कंसोल का उपयोग करते समय और

chown आर www एप्लिकेशन को/tmp

जब वेब

+0

तुम मुझे बचा लिया ... –

+9

chmod 777 भी प्रश्न का उत्तर नहीं है, यह पूरी तरह से गलत और असुरक्षित है! –

0
वही त्रुटि/चेतावनी के साथ खिड़कियां उपयोगकर्ताओं के लिए

का उपयोग कर: सुनिश्चित करें कि आप ऊंचा मोड में कमांड प्रॉम्प्ट चलाने बनाने;)

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