2009-01-14 9 views
6

मैं mod _ perl के साथ एक एप्लिकेशन विकसित कर रहा हूं और प्रत्येक बार जब मैं कोड बदलता हूं तो सर्वर को पुनरारंभ करना एक बड़ा ड्रैग है। मैं अभी भी विकास के लिए mod _ perl का उपयोग करना चाहता हूं क्योंकि यह लाइव सर्वर के लिए उपयोग करने की योजना है। मुझे दस्तावेज में कुछ भी नहीं दिख रहा था कि यह कैसे करें।मेरे पास mod_perl रीलोड स्रोत फ़ाइलों को बदलने पर कैसे हो सकता है?

विचार?

उत्तर

9

मुझे लगता है कि अपाचे 2 :: रीलोड कुछ हद तक पूरा करेगा जो आप खोज रहे हैं। हालांकि, ऐप को उत्पादन में रखने के लिए तैयार होने के बाद, इस कार्यान्वयन को हटाना याद रखें।

मॉनिटर% कांग्रेस में सभी मॉड्यूल

पर नजर रखने और अनुरोध के प्रसंस्करण की शुरुआत में% कांग्रेस में सभी मॉड्यूल को फिर से लोड करने के लिए, बस अपने httpd.conf के लिए निम्न विन्यास जोड़ें:

PerlModule Apache2::Reload 
PerlInitHandler Apache2::Reload 

कनेक्शन फ़िल्टर और प्रोटोकॉल मॉड्यूल के साथ काम करते समय Apache2 :: प्रीलोड को प्री_कनेक्शन चरण में पुन: लोड किया जाना चाहिए:

PerlPreConnectionHandler Apache2::Reload 
use Apache2::Reload; 
: लाइन के साथ

PerlModule Apache2::Reload 
PerlInitHandler Apache2::Reload 
PerlSetVar ReloadAll Off 
# ReloadAll defaults to On 

तो किसी भी मॉड्यूल:रजिस्टर मॉड्यूल उलझाव से

केवल मॉड्यूल है जो Apache2 :: पुनः लोड के साथ पंजीकृत किया फिर से लोड करने के लिए निम्न httpd.conf में जोड़ें

बदलते समय पुनः लोड किया जाएगा।

जानकारी के लिए this documentation page देखें। उम्मीद है की यह मदद करेगा।

2

मैं इस समाधान, पेरिन हार्किंस से PerlMonks के माध्यम से उपयोग करें:

सेट 1 को MaxRequestsPerChild, तो बच्चे में किसी भी संभावित बदलते मॉड्यूल लोड करते हैं, माता-पिता नहीं (विकास के वातावरण के लिए स्पष्ट रूप से केवल)। प्रत्येक अनुरोध एक ताजा बाल सर्वर मारा जाएगा, जो आपके सभी संभावित रूप से बदलते मॉड्यूल को फिर से लोड करेगा।

से " A better way to see module changes in a running web server"

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