2011-05-29 16 views
11

क्या यह पर्ल अनुप्रयोगों (मध्यवर्ती) को पर्ल के टेंट मोड के साथ विकसित करने की अनुशंसा की जाती है?प्लेक और टेंट मोड

यदि हां, तो पेंटअप और/या दमदार मोड में स्टर्मन कैसे शुरू करें? सरल सीजीआई लिपि में जो आसानी से शेबांग लाइन के साथ किया गया था।

perl -T /path/to/{plackup|starman} काम करेगा? या यहां कोई अनुशंसित तरीका है? या यह अनुशंसित नहीं है?

किसी भी विचार, पॉइंटर्स, संयोजन के बारे में लेख प्लाक + टेंट मोड?

उत्तर

7

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

प्लेक की कोर यूटिलिटीज जैसे प्लेकअप और प्लेक :: यूटली विशेष रूप से टेंट मोड के साथ अच्छी तरह से नहीं खेलती है क्योंकि इसे दिए गए .psgi फ़ाइल को स्रोत कोड के रूप में संकलित करने की आवश्यकता होती है। यदि आप वास्तव में टेंट मोड के तहत अपना एप्लिकेशन विकसित करना चाहते हैं, तो आपको प्लेकअप को बाईपास करना होगा और प्लाक :: हैंडलर या प्लेक :: लोडर का उपयोग करना होगा।

+5

नहीं दागी मोड के तहत (एक उत्पादन सर्वर के रूप में) STARMAN चल रहा से सहमत साथ अपने startup.pl स्क्रिप्ट शुरू करते हैं, लेकिन विकास में IMHO एक अच्छा अभ्यास लेखन एप्लिकेशन कलंक सुरक्षित हैं क्या है - इसलिए, प्रत्येक संभावित उपयोगकर्ता इनपुट को रेगेक्स के विरुद्ध मेल किया जाता है। मैं एक चेतावनी के रूप में टेंट मोड का उपयोग कर रहा हूं: यहां सावधान रहें एक असुरक्षित चर है। वैसे भी, उत्तर के लिए धन्यवाद। ;) – kobame

1

यह plackup util वैकल्पिक हल के लिए सरल है, मैं तुम्हें FastCGI के लिए एक उदाहरण दे सकता हूँ लेकिन यह .psgi फाइल के बारे में forgett STARMAN साथ भी ऐसा ही करने के लिए posible हो सकता है और एक सादे स्टार्टअप स्क्रिप्ट का उपयोग करना चाहिए:

my $app = sub { 
    my $env = shift; 
    #... 
} 
#read the pid file, check for an old process, kill the old process... 
#... 

#choose a psgi Server impl. 
#i prefere fcgi 
my $manager = new FCGI::ProcManager::MaxRequests({ 
'max_requests'=>100, 
'pid_fname'=>$pid_file, 
'n_processes'=> 3, 
'pm_title'=> $name 
}); 
my $server = Plack::Handler::FCGI->new(
'listen'=>[$socket], 
'detach' => 1, 
'manager' => $manager 

); # या Plack :: लोडर का उपयोग सर्वर लोड करने के लिए

# अपने एप्लिकेशन को $ सर्वर-> चलाएं ($ ऐप);

तो taintmode पर्ल -टी