ইনস্টলড পিএইচপি থ্রেডসেফ বা ননথ্রেডসেফ কিনা?


91

পিএইচপি-র ইনস্টলড সংস্করণটি থ্রেডসেফ না থ্রেড নিরাপদ কিনা তা আমি কীভাবে জানতে পারি?

দয়া করে মনে রাখবেন যে আমি কোনও থ্রেডসেফ / নন থ্রেড নিরাপদ ইনস্টলেশনগুলির মধ্যে পার্থক্য জিজ্ঞাসা করছি না। আমি বর্তমানে কি ইনস্টল করা আছে তা জানতে চাই।



4
@ হাইম আমার প্রশ্ন হাইম না। আমি সেই সুতোটি দেখেছি। আমি এই সার্ভারে ইতিমধ্যে পিএইচপি ইনস্টল করেছি। এটি আইআইএস-এর সাথে কাজ করছে। তবে, আমাকে এটি ইনস্টল করতে কোন সেটআপটি ব্যবহার করা হয়েছিল তা সন্ধান করতে হবে ... থ্রেডসেসফ সেটআপ / নন থাডসফ সেটআপ?
জোশ

উত্তর:


167

একটি phpinfo () খুলুন এবং থ্রেড সুরক্ষা লাইনটি অনুসন্ধান করুন । থ্রেড-সেফ বিল্ডের জন্য আপনার সক্রিয় হওয়া উচিত ।

মুহাম্মদ গেলবানার মন্তব্যে উল্লিখিত হিসাবে আপনি এটি ব্যবহার করতে পারেন:

  • উইন্ডোজে: php -i|findstr "Thread"
  • * নিক্সে: php -i|grep Thread

15
উইন্ডোজে: php -i|find "Thread"অন ​​* নিক্স:php -i|grep Thread
মুহাম্মদ জেলবানা

7
স্বরে নোট করুন: php -i | find "Architecture"এটি x86 বা x64 কিনা তা যাচাই করতে
চেকসাম

@ চেকসাম এটিphp -i | grep Architecture
হেল্পস

22

আপনি যদি কমান্ড লাইন ব্যবহার করতে পছন্দ করেন:

  • * নিক্স:

    php -i | grep -i "Thread"
    
  • উইন্ডোজ:

    php -i | findstr -i "thread"
    

এটি আপনাকে এরকম কিছু দেয়:

Thread Safety => enabled

বা

Thread Safety => disabled

4
খুব ভাল ধারণা নয়, যেহেতু সার্ভার দ্বারা ব্যবহৃত পিএইচপি সংস্করণটি ওএস (ডিফল্ট) দ্বারা তুলে নেওয়া থেকে আলাদা হতে পারে।
বাফেলো

4

একটি নতুন পিএইচপি ফাইল তৈরি করুন এবং এতে এই কোডটি sertোকান:

<?php
phpinfo(); ?>

তারপরে এই পৃষ্ঠাটি চালান এবং আপনি সমস্ত পিএইচপি তথ্য পাবেন। আপনি যে শব্দটি চান তা অনুসন্ধান করুন এবং এটি আপনাকে এটি সক্ষম করে দেখাবে।


4

পিএইচপি এর মূল ফোল্ডারে পিএইচপি [সংস্করণ] .dll নামের ফাইলটি দেখতে আমি কেবল সহজ মনে করি। এটি হয় পিএইচপি [সংস্করণ] .ডিএল বা পিএইচপি [সংস্করণ] ts.dll (থ্রেড সেফের জন্য দাঁড়িয়ে আছে)। সুতরাং, আপনি যদি php7.0.10 ইনস্টল করে থাকেন তবে এই নামের ডিরেক্টরিতে যান এবং আপনি php7ts.dll নামের একটি ফাইল পাবেন। এটি খুঁজে বের করার একটি অত্যন্ত দুঃখজনক উপায়, তবে এটি কার্যকর!


4

তারপরে অননুমোদিত ZEND_THREAD_SAFEধ্রুবক রয়েছে, যা পিএইচপি ৪.৩ থেকে বিদ্যমান বলে মনে হচ্ছে।

<?php

if (ZEND_THREAD_SAFE) {
    echo 'Thread safe';
} else {
    echo 'Not thread safe';
}

https://3v4l.org/tALKX


2

আপনার ইনস্টলটি অ্যাপাচি মডিউল বা সিজিআই বাইনারি কিনা তা পরীক্ষা করুন। স্ট্যাক ওভারফ্লো প্রশ্নটি পিএইচপি-তে থ্রেড নিরাপদ বা নন-থ্রেড নিরাপদ কী?


আমি কীভাবে এটি পরীক্ষা করব? অবশ্যই এটি আইআইএস ব্যবহার করছে..কিন্তু এটি কী মডিউলটি আবিষ্কার করব? এটি আমার প্রশ্ন ছিল ... আমার অর্থ থ্রেডসেফ / নন থ্রেডের মধ্যে পার্থক্য জিজ্ঞাসা করা উচিত নয়। ইনস্টল করা সংস্করণটি থ্রেড নিরাপদ কিনা / তা আমার জানতে হবে
জোশ

ঠিক আছে আমি কেবল কিছুটা তদন্ত করেছি, এবং হ্যাঁ 2 টি বিল্ড পাওয়া যায়; নিরাপদ এবং নিরাপদ আইআইএস for এর জন্য এই ইনস্টল গাইড অনুসারে নন-থ্রেড-নিরাপদ ইনস্টলগুলির প্রস্তাব দেওয়া হয়। 'থ্রেড' শব্দটি কোথাও উপস্থিত হলে আপনি কি একটি phpinfo () খুলতে এবং দেখতে পারবেন?
ফিলিপ্লিপ

হ্যাঁ, phpinfo এর মধ্যে তথ্য ছিল ... সবেমাত্র এটি পেয়েছে ... ধন্যবাদ @ ফিলিপলিপ
জোশ

1

একটি স্ক্রিপ্ট থেকে:

/**
 * @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()));
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.