পিএইচপি-র ইনস্টলড সংস্করণটি থ্রেডসেফ না থ্রেড নিরাপদ কিনা তা আমি কীভাবে জানতে পারি?
দয়া করে মনে রাখবেন যে আমি কোনও থ্রেডসেফ / নন থ্রেড নিরাপদ ইনস্টলেশনগুলির মধ্যে পার্থক্য জিজ্ঞাসা করছি না। আমি বর্তমানে কি ইনস্টল করা আছে তা জানতে চাই।
পিএইচপি-র ইনস্টলড সংস্করণটি থ্রেডসেফ না থ্রেড নিরাপদ কিনা তা আমি কীভাবে জানতে পারি?
দয়া করে মনে রাখবেন যে আমি কোনও থ্রেডসেফ / নন থ্রেড নিরাপদ ইনস্টলেশনগুলির মধ্যে পার্থক্য জিজ্ঞাসা করছি না। আমি বর্তমানে কি ইনস্টল করা আছে তা জানতে চাই।
উত্তর:
একটি phpinfo () খুলুন এবং থ্রেড সুরক্ষা লাইনটি অনুসন্ধান করুন । থ্রেড-সেফ বিল্ডের জন্য আপনার সক্রিয় হওয়া উচিত ।
মুহাম্মদ গেলবানার মন্তব্যে উল্লিখিত হিসাবে আপনি এটি ব্যবহার করতে পারেন:
php -i|findstr "Thread"
php -i|grep Thread
php -i|find "Thread"
অন * নিক্স:php -i|grep Thread
php -i | find "Architecture"
এটি x86 বা x64 কিনা তা যাচাই করতে
php -i | grep Architecture
আপনি যদি কমান্ড লাইন ব্যবহার করতে পছন্দ করেন:
* নিক্স:
php -i | grep -i "Thread"
উইন্ডোজ:
php -i | findstr -i "thread"
এটি আপনাকে এরকম কিছু দেয়:
Thread Safety => enabled
বা
Thread Safety => disabled
পিএইচপি এর মূল ফোল্ডারে পিএইচপি [সংস্করণ] .dll নামের ফাইলটি দেখতে আমি কেবল সহজ মনে করি। এটি হয় পিএইচপি [সংস্করণ] .ডিএল বা পিএইচপি [সংস্করণ] ts.dll (থ্রেড সেফের জন্য দাঁড়িয়ে আছে)। সুতরাং, আপনি যদি php7.0.10 ইনস্টল করে থাকেন তবে এই নামের ডিরেক্টরিতে যান এবং আপনি php7ts.dll নামের একটি ফাইল পাবেন। এটি খুঁজে বের করার একটি অত্যন্ত দুঃখজনক উপায়, তবে এটি কার্যকর!
তারপরে অননুমোদিত ZEND_THREAD_SAFE
ধ্রুবক রয়েছে, যা পিএইচপি ৪.৩ থেকে বিদ্যমান বলে মনে হচ্ছে।
<?php
if (ZEND_THREAD_SAFE) {
echo 'Thread safe';
} else {
echo 'Not thread safe';
}
আপনার ইনস্টলটি অ্যাপাচি মডিউল বা সিজিআই বাইনারি কিনা তা পরীক্ষা করুন। স্ট্যাক ওভারফ্লো প্রশ্নটি পিএইচপি-তে থ্রেড নিরাপদ বা নন-থ্রেড নিরাপদ কী? ।
একটি স্ক্রিপ্ট থেকে:
/**
* @return boolean true if PHP is thread safe
*/
function isThreadSafe()
{
ob_start();
phpinfo(INFO_GENERAL);
return preg_match('/Thread\s*Safety\s*enabled/i', strip_tags(ob_get_clean()));
}