কীভাবে আইআইএস-তে ফাস্টসিজিআইতে পাইথন সেট আপ করবেন
এখানে কীভাবে ফাস্টসিজিআই আইআইএস 7+ তে পাইথন সেট আপ করবেন তা একটি सभ्य ডি জ্যাঙ্গো সেটআপের পথ উন্মুক্ত করে
... এবং আপনার পাইথন কোডটি আপনাকে পদক্ষেপে সক্রিয় করতে প্রক্রিয়ায় একটি ডিবাগারকে সক্ষম করতে সক্ষম হবে
এই উদাহরণটি আইআইএস পরিচালনার কনসোল ব্যবহার করে না তবে ফলাফলটি কনফিগারেশন ফাইলগুলির বিষয়বস্তু তালিকাভুক্ত করে
ধাপ 1
পাইথন + একটি ভাল ডিবাগার ইনস্টল করুন (এই উদাহরণটি উইংআইডিই ব্যবহার করে যা আমি একটি দুর্দান্ত সরঞ্জাম পেয়েছি) এই উদাহরণটি ফোল্ডারটি ধরে নিয়েছে সি: \ পাইথন 27
ধাপ ২
একটি ওয়েব ফোল্ডার তৈরি করুন, যেমন লোকালহোস্ট সি: \ ইনপটপ \ wwwroot \ মাইপাইথনফোল্ডার এবং এতে নিম্নলিখিত ওয়েবকনফিগ ফাইলটি রাখুন:
নোট | স্ক্রিপ্টে পাইপ চরিত্রপ্রসেসর নির্দেশিকা। এটি আইআইএস দ্বারা স্ক্রিপ্টটিকে একটি ফাস্টসিগি অ্যাপ্লিকেশনে ম্যাপ করার জন্য ব্যবহৃত হয় (পদক্ষেপ 3)। এটি নীচের 3 ধাপ থেকে পূর্ণপথ + পাইপ চরিত্র + আর্গুমেন্ট সেটিংস অক্ষর অনুসারে চরিত্রের সাথে মেলে।
ধাপ 3
সিটিতে অ্যাপ্লিকেশন হোস্টকনফিগ ফাইলটিতে: \ উইন্ডোজ \ system32 \ inetsrc \ কনফিগার ফোল্ডারে বিভাগটিতে নিম্নলিখিতটি রাখুন:
<fastCgi>
<application fullPath="c:\python27\python.exe" arguments="c:\python27\lib\mylib\myfcgi.py" monitorChangesTo="C:\Python27\Lib\r4a\r4afcgi.py" stderrMode="ReturnStdErrIn500" maxInstances="4" idleTimeout="300" activityTimeout="300" requestTimeout="90" instanceMaxRequests="200" protocol="NamedPipe" queueLength="1000" flushNamedPipe="true" rapidFailsPerMinute="10" />
</fastCgi>
পদক্ষেপ 4
সিটিতে: \ পাইথন 27 \ লিব \ মেলিব \ মাইফসিজি.পি নীচের কোডটি লিখুন:
import wingdbstub
OS, io, sys ret = "পরিবেশ:। r \ n" os.en वातावरण.keys (): প্যারামের জন্য আরাম করুন: ret = ret + "% s =% s os r \ n"% (প্যারাম, os.en পরিবেশ [ প্যারাম]) ret = ret + "\ r \ n আরগস:" sys.argv ইন আরগের জন্য: ret = ret + আরগ হ্যান্ডেল = io.open ("সি: \ টেম্প \ myfcgi.log", 'ডাব্লুবি') হ্যান্ডেল.রাইট (ret) হ্যান্ডেল.ক্লোজ ()
পদক্ষেপ 5
আপনার সি: \ অস্থায়ী ফোল্ডারে আইওএসআর লেখার অধিকার রয়েছে তা নিশ্চিত করুন
পদক্ষেপ 6
আপনার সি: y পাইথন 27 \ লিব \ মেলিব \ ফোল্ডারে উইংডবস্টব.পি এবং উইংডিবগপউউ রাখুন। এটি উইন্ডাইডে ডিবাগিং সক্ষম করবে। এই ফাইলগুলি আপনার উইং ইনস্টলেশন সহ সরবরাহ করা হয়। দ্রষ্টব্য: যদি পাইথনকেও আপনার কোডটি উইংস্টাব.পিসিপিতে সংকলন করতে হয়, আইআইএসআর সেই ফোল্ডারে লেখার অধিকার প্রয়োজন কারণ আইআইএস দ্বারা পাইথন প্রক্রিয়া সেই অ্যাকাউন্টের অধীনে চালু করা হবে
পদক্ষেপ 6
উইংডিবি খুলুন এবং 'আমদানি ওএস, আইও, সিজ' লাইনে একটি ব্রেকপয়েন্ট সেট করুন
পদক্ষেপ 7
আপনার ব্রাউজারে হিট করুন http: // লোকালহোস্ট / মাইপাইথনফোল্ডার
যদি সবকিছু সঠিকভাবে কাজ করে তবে উইন্ডাইডকে এখন আপনার ব্রেকপয়েন্টে চলমান কোডটি প্রদর্শন করতে ট্রিগার করা উচিত। যদি তা না হয়: - হয় ফায়ারওয়াল সমস্যা আছে। পাইথন প্রক্রিয়াটি টিসিপি সংযোগের মাধ্যমে উইংআইডিই ইন্টারফেসের সাথে যোগাযোগ করে - বা উইন্ডাইডের মধ্যে সুরক্ষার কোনও সমস্যা রয়েছে। এর জন্য উইংডিবুগপিডাব্লু ফাইলের যথাযথ সংস্করণ প্রয়োজন, যা মূলত এমন একটি পাসওয়ার্ড বা টোকেন ধারণ করে যা আপনার উইন্ডাইড সংস্থার বিরুদ্ধে অ্যাক্সেসকে বৈধ করে। যদি এটি না হয়, আপনার পিসিতে টিসিপি অ্যাক্সেস সহ যে কেউ আপনার কোডের বিপরীতে ডিবাগ করতে পারে।
পদক্ষেপ 8
সি: in টেম্পে লগফিল তৈরি হয়েছে তা যাচাই করুন। আপনি পদক্ষেপ 7 পেতে না পারলে এটিও কাজ করা উচিত
পদক্ষেপ 9
মনে রাখবেন যে এই পৃষ্ঠাটি ডিবাগারটিকে ট্রিগার করে তবে কোনও পৃষ্ঠা ওয়েব ব্রাউজারে ফিরিয়ে দেয় না। কিছু ব্যাকগ্রাউন্ড: ওয়েবসার্ভার তথাকথিত 'রেকর্ডস' এর মাধ্যমে ফাস্টসিগি যোগাযোগ করে। এর অর্থ হ'ল প্রতিটি একক ব্যবহারকারী-অনুরোধ একাধিক পৃথক 'রেকর্ডে' প্যাক করা আপনার অ্যাপ্লিকেশনটিতে আসে। প্রতিটি রেকর্ড এমন একটি ডেটা স্ট্রাকচার যা কোনও অনুরোধের সূচনা, ক্যোরিস্ট্রিং, পোস্ট ভেরিয়েবল ইত্যাদি সূচিত করে a একক অনুরোধে এই রেকর্ডগুলির আন-প্যাকিং এক ধরণের জটিল, এটি http: //www.fastcgi এর ফাস্টসিগি স্পেসিফিকেশন অনুসরণ করে
.com / devkit / ডক / fcgi-spec.html # S1
সি: y পাইথন 27 \ লিব \ মেলিব \ মাইফসিগি.পি এর সামগ্রী হিসাবে আমি হেলিকোনটেক দ্বারা সরবরাহিত zoofcgi.py এর একটি অনুলিপি ফেলেছি। এই অজগর ফাইলটি এই রেকর্ডগুলি ডিকোড করতে এবং একটি পৃষ্ঠা পরিবেশন করতে সক্ষম এবং ডিবাগ করা বেশ আকর্ষণীয়। এছাড়াও নোট করুন যে হেলিকোনটেক বৈকল্পিকভাবে একটি dll সরবরাহ করে যা আইআইএস এবং zoofcgi.py এর মধ্যে বসে তবে এই dll কঠোরভাবে প্রয়োজনীয় নয়। আমি বিশ্বাস করি যে এটি এমএসএফ্ট সরবরাহ করে এমন ফাস্টসিজি বাস্তবায়নের কিছুটা উন্নত এবং জেনেরিক সংস্করণ প্রয়োগ করে। তবে আপনি যখন তাদের ডেল ব্যবহার করেন, যখন আপনি আপনার কোডের মাধ্যমে পদক্ষেপ নিতে চান তখন প্রক্রিয়াটি কেবল চুপচাপ বন্ধ হয়ে যায় এবং আইআইএস / ডিএলএল আপনার অজগর প্রক্রিয়াটি মেরে ফেলে যখন এটি শেষ হয় যে কোনও সেকেন্ড বা 2 এর মধ্যে কোনও প্রতিক্রিয়া ফিরে আসবে না।
এটাই. নীতিগতভাবে আইআইএস এবং আপনার পাইথন কোডের মধ্যে যোগাযোগ নামী পাইপ দিয়ে সম্পন্ন হয়। টিসিপি সকেট ব্যবহার করে আপনি এটি সেট আপ করতে সক্ষম হবেন তবে কোন পোর্টটি ব্যবহৃত হয়েছে তা আমি নির্ধারণ করতে সক্ষম হইনি (আমার বিশ্বাস স্টিডিনটি বন্দরে রূপান্তরিত হওয়া উচিত যা তখন নির্বাচিত হতে পারে)) তবে আমি তা দেয়নি কোন প্রচেষ্টা)