2009-07-23 19 views
5

में सर्वर-व्यापी चर सेट करने के लिए कैसे करें मुझे अपने एप्लिकेशन में एक चर को बनाए रखना है। (Cfm | cfc) पर्यावरण को वर्तमान में चलाने के लिए पर्यावरण, विकास (विकास | परीक्षण | उत्पादन) स्थापित करने के लिए।कोल्डफ्यूजन

मैं सर्वर पर एक पर्यावरण चर सेट करना चाहता हूं, ताकि मैं Application.cfm में अपना मान पढ़ सकूं।

क्या यह संभव है?

उत्तर

10

ओएस पर्यावरण चर सेट करने के लिए सबसे आसान है (सिस्टम स्तर पर, या उपयोगकर्ता कोल्डफ्यूजन के लिए चलाता है), और सेवा को पुनरारंभ करें। वेरिएबल तब सीजीआई स्कोप में उपलब्ध है:

<cfset EnvName = CGI.COLDFUSION_ENVIRONMENT> 
<cfoutput>#EnvName#</cfoutput> 

आप जावा सिस्टम गुणों का भी उपयोग कर सकते हैं। अपने ColdFusion प्रशासक में, "सर्वर सेटिंग्स/जावा और JVM" पर जाएं, और "JVM तर्क" को कुछ इस तरह जोड़ें:

-Dcom.mycompany.environment=development

फिर आप ColdFusion में है कि मूल्य के लिए पूछ सकते हैं:

<cfset System = CreateObject("java", "java.lang.System")> 
<cfset EnvName = System.getProperty("com.mycompany.environment")> 
<cfoutput>#EnvName#</cfoutput> 

हर बार जब आप कोई परिवर्तन करते हैं तो आपको सीएफ सेवा को पुनरारंभ करना होगा, लेकिन मूल्य बहुत स्थिर लगता है, इसलिए यह कोई समस्या नहीं होनी चाहिए।

+0

हाँ, यह काम करता है। बहुत धन्यवाद। बीटीडब्ल्यू, आप लोग इस तरह के अलगाव कैसे करते हैं? – noobsaibot

+0

यह सुनकर खुशी हुई कि यह काम करता है। :) "अलगाव" से आपका क्या मतलब है? – Tomalak

+0

कोड भाग को अलग करना जिसे केवल dev/test/production box पर निष्पादित किया जाना चाहिए। – noobsaibot

3

अपाचे का उपयोग करके आप कर सकते हैं। अपाचे विन्यास (httpd.conf) या अपने वर्चुअलहोस्ट में आप पर्यावरण मॉड्यूल लोड आप ऐसा कर सकते हैं तो:

SetEnv APP_ENVIRONMENT DEVELOPMENT 
फिर ColdFusion से

:

#cgi['APP_ENVIRONMENT']# 

आप सीजीआई गुंजाइश मूल्य डंप हैं दिखाया नहीं जाएगा, लेकिन, अगर आप इसे आउटपुट करेंगे तो यह वहां होगा।

+0

टिप के लिए धन्यवाद। मैं अपाचे नहीं चलाता और ऐसा लगता है कि इस तरह की सामग्री करने के लिए आईआईएस में सेटिंग नहीं मिल पाती है:/ – noobsaibot

+0

यह पोस्ट (त्वरित Google खोज से) http://forums.iis.net/p/ 114677 9/1858505.aspx सुझाव देता है कि आईआईएस 7 – Ian

+0

+1 में संकेत है कि यह सीजीआई स्कोप डंप करते समय दिखाया नहीं गया है! – Seybsen

0

प्रश्न पढ़ने पर मेरी पहली सोचा एक सर्वर चर सेट करने के लिए किया गया था:

लेकिन फिर समस्या यह है, जहां कि सेट करने के लिए?

सीएफ 9 में इस तरह की चीज़ के लिए ऑनरस्टार्ट() विधि होगी।

+0

के लिए धन्यवाद लेकिन फिर आपको यह सुनिश्चित करना होगा कि आपके पास हर एप्लिकेशन में है, है ना? SETENV और -D विकल्प * सर्वर पर ही सेट हैं *। मुझे नहीं पता कि मुझे इसे अलग कैसे रखना चाहिए :) – noobsaibot

+0

नहीं, SERVER स्कॉप्ड वर्र्स आपके पूरे कोल्डफ्यूजन सर्वर पर उपलब्ध हैं। आप आवेदन के दायरे के बारे में सोच रहे होंगे। इसे एक CGI चर बनाना आसान है क्योंकि यह एप्लिकेशन सर्वर पर भी काम करेगा। –

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