2009-10-26 6 views
7

मैं कुछ पथ कैश नहीं करने के लिए एपीसी ओपोड कैशिंग में apc.filters पैरामीटर का उपयोग कैसे करूं? उदाहरण के लिए, मैं कैशिंग पथ के अंतर्गत कुछ भी के लिए सक्रिय होना चाहते हैं:apc.filters?

"/ var/www/vhosts"

और तरह

रास्तों को बाहर "/ usr/share/पीएसए-भीड़ /"

मैं

apc.cache_by_default = 0 
apc.filters = "+/var/www/vhosts" 

और

apc.cache_by_default = 1 
apc.filters = "-/usr/share/psa-horde/" 
उपयोग करने की कोशिश

लेकिन जैसा कि मैंने उम्मीद की थी, न तो काम किया।

http://www.php.net/manual/en/apc.configuration.php#ini.apc.filters

फिल्टर अधिक की तरह "+/var/www/vhosts/*" (वाइल्डकार्ड ध्यान दें) कुछ हो सकता है? मुझे डर है कि इस वजह से जिस तरह से फिल्टर के काम करता है संभव नहीं है कर रहा हूँ:

ध्यान दें कि मिलान के लिए इस्तेमाल किया फ़ाइल नाम एक के लिए पारित किया है शामिल हैं/आवश्यकता होती है, न कि पूर्ण पथ।

कोई विचार या नमूना विन्यास?

उत्तर

6

फ़िल्टर पॉज़िक्स विस्तारित नियमित अभिव्यक्तियों की अल्पविराम से अलग सूची होना चाहिए। मेरा मानना ​​है कि आपके पास दूसरे प्रयास में केवल सटीक पथ/usr/share/psa-horde /, और/usr/share/psa-horde/something या /usr/share/psa-horde/anotherfile.php

से मेल नहीं खाता है

निम्नलिखित उप फ़ोल्डर

apc.filters = "-/usr/share/psa-horde/.*" 
+0

हम्म, अच्छा कॉल, लेकिन मुझे लगता है कि यह केवल फ़ाइल नाम के लिए काम करता है, तो पूरा पथ बयान की आवश्यकता होती है में इस्तेमाल किया गया था: "ध्यान दें कि मिलान के लिए इस्तेमाल किया फ़ाइल नाम एक से पारित कर दिया है शामिल करने/आवश्यकता के लिए, पूर्ण पथ नहीं। " – typeoneerror

+0

उदा। कोशिश की "-/var/www/vhosts/myhostname.com/svn/public/openx /.*" और इस निर्देशिका में फ़ाइलों को अभी भी कैश किया जा रहा है। – typeoneerror

+0

"ध्यान दें कि मेल खाने के लिए उपयोग किया गया फ़ाइल नाम एक पूर्ण पथ नहीं है, जिसमें शामिल/आवश्यकता शामिल है।" - दस्तावेज़ – livelygreen

5

एक बहुत देर से प्रतिक्रिया में कुछ भी मेल खाना चाहिए, लेकिन सिर्फ मामले में किसी को किसी और को इस मुद्दे (मैं आप जा/एक Plesk चल गया हो सकता है लगता है कि करने जा रहा हूँ हो रही है बॉक्स, यही कारण है कि मैं इस पर आया)।

आपकी सबसे अच्छी शर्त एपीसी को लोड किए गए PHP मॉड्यूल की सूची में रखना है, लेकिन मास्टर php.ini में apc.enabled 0 है। फिर, प्रत्येक vhost के लिए आप इसे सक्षम करना चाहते हैं, प्रत्येक के लिए सक्षम करने के लिए php_admin_value apc.enabled 1 जोड़ें। यदि आपके पास साइट्स का एक टन है, तो यह एक मुद्दा हो सकता है, लेकिन कुछ ही के लिए काम करता है।

0

apc.filters के बाद से नियमित अभिव्यक्ति के साथ काम करता है, वाइल्डकार्ड पथ apc.filters के रूप में निर्दिष्ट किया जाना चाहिए = "-/usr/share/पीएसए-भीड़ /.*"

2

pnomolos 'समाधान काम करता है यदि आप अलग अलग है vhosts, लेकिन यह काम नहीं करेगा यदि आपके पास केवल एक है और वास्तव में प्रति-निर्देशिका आधार पर कैशिंग को नियंत्रित करना चाहते हैं।

इस बग रिपोर्ट सबसे अच्छा करने के लिए अंक समाधान: https://bugs.php.net/bug.php?id=57064

एपीसी सक्षम और php.ini में 0 को apc.cache_by_default निर्धारित किया है। अपने अपाचे कॉन्फ़िगरेशन में, आप ब्लॉक के अंदर ब्लॉक का उपयोग कर एपीसी कैशिंग को ठीक करने के लिए सक्षम कर सकते हैं जहां आपको इसकी आवश्यकता है।

0

उपयोग किया:

apc.filters="-/eliminate/path1/,-/eliminate/path2/,+/add/to/cache/"