2012-05-01 17 views
5

मेरे पास/var/www (कहते हैं,/var/www/app1 और/var/www/app2) में दो निर्देशिकाएं हैं जिनके त्रुटि लॉग मैं विभिन्न फ़ाइलों को भेजना चाहता हूं। दोनों एक ही डोमेन के अंतर्गत हैं, इसलिए मैं सोचता हूं कि मैं उन्हें विभिन्न वर्चुअल होस्ट के तहत नहीं रख सकता। तो, उदाहरण के लिए, मैं उन्हें के रूप में का उपयोग होगा:अपाचे सर्वर - एकाधिक निर्देशिकाएं, विभिन्न त्रुटि लॉग

http://localhost/app1

http://localhost/app2

मैं इस पृष्ठ में आए:

Generate access logs for different subdirectories in Apache

जिसका समाधान पहुँच लॉग के लिए पूरी तरह से काम करता है। हालांकि, "env" तर्क त्रुटि लॉग निर्देश के साथ काम नहीं करता प्रतीत होता है।

इस "खोज" से पहले, मैं, इस पर काम कर रहा था गलत लगता है जो:

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    DocumentRoot /var/www/app1 

    <Directory /> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride None 
    Order deny,allow 
    allow from all 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/app1/error.log 

    LogLevel warn 

    CustomLog ${APACHE_LOG_DIR}/app1/access.log combined 
</VirtualHost> 

मैं कुछ हद तक मैं क्या कर किया जाना चाहिए के बारे में खो रहा हूँ। यही है, अगर त्रुटि करने के लिए ErrorLog प्राप्त करने का कोई तरीका है या यदि मुझे प्रत्येक निर्देशिका के लिए वर्चुअल होस्ट को कॉन्फ़िगर करने के साथ प्रयास करना जारी रखना चाहिए। किसी भी सहायता की सराहना की जाएगी! धन्यवाद!

उत्तर

8

/ के लिए VirtualHost संदर्भ में आप क्यों सेट करते हैं? Apache ErrorLog directive docs उसके संदर्भ के कारण <Directory /var/www/app1><Directory />

के बजाय का उपयोग करें server config, virtual host है - जिसका अर्थ है कि यह केवल, पूरे सर्वर के लिए या एक VirtalHost के लिए Errorlog परिभाषित करने के लिए एक Directory के लिए संभव नहीं है। इसलिए यदि आप विभिन्न फ़ाइलों को अलग-अलग लॉग भेजना चाहते हैं, तो एनवी वैरिएबल सेट करने के लिए SetEnvIf का उपयोग करने का प्रयास करें। निर्देशिका में जहां आप हैं, पर निर्भर करता है, यह SetEnvIf Request_URI ^\/a1\/ a1 और SetEnvIf Request_URI ^\/a2\/ !a1 जैसा कुछ होना चाहिए। फिर a1 पर्यावरण चर के आधार पर लॉग लिखें।

+0

मेरी "निर्देशिका" गलती को सही करने के लिए धन्यवाद! त्रुटि लॉग के लिए, मुझे पता चला कि एक्सेस लॉग को अलग करने के लिए वातावरण कैसे काम करते हैं। लेकिन यह त्रुटि लॉग के लिए काम नहीं प्रतीत होता है। क्या मेरी समझ सही है? (जब मैं कोशिश करता हूं, मुझे एक त्रुटि मिलती है जबकि अपाचे कॉन्फ़िगरेशन फ़ाइल को पार्स कर रहा है।) मुझे लगता है कि आप सही हैं - त्रुटि लॉग पूरे सर्वर या वर्चुअल होस्ट के लिए है। आपके द्वारा भेजे गए लिंक के आधार पर, मुझे लगता है कि एक और विकल्प प्रत्येक त्रुटि लॉग प्रविष्टि को एक स्क्रिप्ट पर पाइप करना है ... आपकी मदद के लिए बहुत बहुत धन्यवाद! – Ray

+1

हां, मैंने यह भी खोजा है और ऐसा लगता है जैसे ErrorLog फ़ाइलों को SetEnvIf से अलग नहीं किया जा सकता है। आपका स्वागत है। –

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