अपाचे ने किस क्रम में फाइलों और किन लोगों को लोड किया है?


10

मैं एक CentOS 6.5 सर्वर को देख रहा हूं जिसमें एक वेबफ्रेमवर्क स्थापित किया गया है जिसे कई वर्षों से जोड़ा गया है। Http / .ff सहित 5 / सक्रिय / .ff फ़ाइलों की तरह लग रहे हैं।

Httpd.conf में शामिल पढ़ता है

Include conf.d/*.conf

और वह उस डायरेक्टरी की सभी फाइलों को पकड़ लेता है, लेकिन बिना किसी विशिष्ट आदेश के, जो मुझे ज्ञात है, और इसलिए / कॉन्फिडेंस (.d) डायरेक्टरी के बारे में क्या है?

क्या कोई सेटिंग है जो लोड ऑर्डर को बताती है या वे सिर्फ az से लिए गए हैं?

मैं सर्वर व्यवस्थापक नहीं हूं, मैं एक डेवलपर हूं और समस्या फाइलों को / Temp dir पर अपलोड करने के लिए पथ में है, जहां मैंने जांच की है कि निर्दिष्ट पथ उन फाइलों के लिए सही है, जिनके साथ मैं खुद चिंतित हूं।

तो, पहला सवाल यह है:

क्या अपाचे सभी चीज़ों को लोड करता है / कहीं से आता है या कोई सूची निर्दिष्ट है?

दूसरा सवाल होगा:

अपाचे किस क्रम में फाइलों को, वर्णानुक्रम में लोड करता है?

अंततः:

क्या एक फ़ाइल जो .conf में समाप्त नहीं होती है, उसमें शामिल है? उदाहरण के लिए यदि मैं कुछ नाम देता हूं myconfig.conf.old क्या अपाचे इसे छोड़ देगा?

जवाबों:


14

आदेश वर्णमाला है। यह केवल वही शामिल करता है जो शामिल पथ निर्दिष्ट करता है। Include conf.d/*.confअपाचे के मामले में समाप्त होने वाले नामों के साथ सभी फाइलें लोड होंगी .conf

यह अपाचे प्रलेखन से एक उद्धरण है :

शैल-शैली (fnmatch ()) वाइल्डकार्ड वर्णों का उपयोग एक साथ कई फ़ाइलों को वर्णमाला क्रम में शामिल करने के लिए किया जा सकता है । इसके अलावा, यदि एक फ़ाइल के बजाय एक निर्देशिका में अंक शामिल करें, तो Apache उस निर्देशिका में सभी फ़ाइलों और किसी भी उपनिर्देशिका को पढ़ेगी। लेकिन पूरी निर्देशिकाओं को शामिल करने की अनुशंसा नहीं की जाती है, क्योंकि गलती से एक निर्देशिका में अस्थायी फ़ाइलों को छोड़ना आसान होता है जो httpd को विफल कर सकता है।


शुक्रिया, कि सवालों के जवाब 1 और 2 निश्चित रूप से। मैंने देखा कि अपाचे डॉक्स लेकिन जवाब नहीं मिला।
चर्तुप

मोटे तौर पर (कॉन्फ़िगर आइटम का क्रम पहले के आइटम को ओवरराइड करता है) जो सही है। निश्चित रूप से यदि कमांड एक ही कॉन्फ़िगरेशन अनुभाग में हैं। लेकिन उदाहरण के लिए यह संभव है (उपयोग करके AllowOverride) किसी .htaccessफाइल में कॉन्फिगर के साथ कॉन्फिगर आइटम को ओवरराइड करना ।
संदिग्ध

क्षमा करें, मैंने आपकी टिप्पणी देखने से पहले अपनी टिप्पणी संपादित की। इस मामले में कोई .htaccess नहीं है, लेकिन 't' से शुरू होने वाली एक फाइल है जो सभी को ओवरराइड कर रही है। मैं फ़ाइल का नाम बदलने या स्थानांतरित करने जा रहा हूँ।
चर्तुपर

1
@chrtp, और क्यों एक फ़ाइल के साथ शुरू होने से tबाकी सब खत्म हो जाएगा?
एंड्रयू सविनाख

1

अपाचे "शामिल करें" निर्देश के आधार पर अतिरिक्त कॉन्फ़िगरेशन को लोड करता है। यह शायद इस तरह दिखता है:

Include conf.d/*.conf

तो, जाहिर है, इसमें "conf.d" में सब कुछ शामिल है जो "* .conf" जैसा दिखता है।

इसे और भी अधिक पागल बनाने के लिए, आप "सम्‍मिलित" के साथ निर्देशिकाओं की एक मनमानी संख्या जोड़ सकते हैं, जिसमें सभी समान रूप से एक ही कॉन्‍फ़िगर की गई फ़ाइलें हो सकती हैं, जो सभी खुशी-खुशी एक-दूसरे को स्‍टार्ट अप पर ओवरराइड कर सकती हैं ... और फिर खुद को ओवर-राइड किया जा सकता है विभिन्न होस्ट निर्देशिकाओं में .htaccess फ़ाइल द्वारा।

जैसा कि मैं बता सकता हूं, httpd.conf सबसे पहले है, उसके बाद निर्देशिकाओं में उस क्रम में जिसमें वे शामिल हैं और फिर वहां से वर्णानुक्रम में हैं।

अच्छा समय। आप अपाचेक्टल-टी या अपाचेक्टल कॉन्फिगरेस्ट का उपयोग कर सकते हैं, जिससे यह पता चल सकेगा कि आपका कॉन्फ़िगरेशन परेशानी पैदा करने वाला है या नहीं।


1
धन्यवाद, ऐसा लग रहा है कि किसी ने टेम्पलेट नाम की एक फ़ाइल को छोड़ दिया है। इसमें वहाँ है जो निश्चित रूप से पिछले लोड है और फिर किसी भी अन्य फाइल को ओवरराइड करता है जो / Temp के लिए पथ निर्दिष्ट करता है। मैं केवल अनुमान लगा सकता हूं कि वहां किस और के साथ क्या हो रहा है!
चर्तुप

1
@chrtp प्रफुल्लितता में जोड़ने के लिए, निर्देश रन-टाइम का उपयोग करके निर्दिष्ट किया जा सकता है -सी ( कॉन्फिग फाइल पढ़ने से पहले उन्हें जोड़ने के लिए ) और -सी ( कॉन्फिग फाइल्स के बाद पढ़ने के लिए ), इसलिए आप कमांड लाइन से पूरी तरह से अलग-अलग कॉन्फिग सोर्स कर सकते हैं। शुरुआत में।
शैतानिकप्यूपी

1

मैं चाहता हूं कि आप ऑर्डर बदलना चाहते हैं ताकि डायरेक्टरी साइट्स में उपलब्ध पहली कॉन्फिडेंस फाइल को ओपन करें और पहले VirtualHost *: 80 में अपना वर्चुअल होस्ट कोड जोड़ें।

मेरे मामले में मैं चाहता हूं कि hub.xxx.com.conf से पहले bayxxx.com.conf हो। इसलिए मैं हब.xxx.com.conf को खोलता हूं और एक फ़ाइल की शुरुआत में वर्चुअल होस्ट रखता हूं

उदाहरण के लिए:

<VirtualHost *:80>
    DocumentRoot /www/hub.xxx.com/www/root
    ServerName hub.xxx.com
    ServerAlias *.hub.xxx.com
    <Directory "/www/hub.xxx.com/www/root">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /www/bayxxx.com/www/root
    ServerName bayxxx.com
    ServerAlias www.bayxxx.com
    <Directory "/www/bayxxx.com/www/root">
        allow from all
        Options +Indexes
    </Directory>
</VirtualHost>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.