অন্য ফাইলের সাথে পিএইচপি-এফপিএম পুল কনফিগার মানগুলি ওভাররাইড করুন


12

নতুন সার্ভারের পিএইচপি-এফপিএম পুল কনফিগারেশনটি কাস্টমাইজ করার পরে, আমি আশ্চর্য হই যে কোনও নতুন পুল ফাইল রাখা সম্ভব / অনুমোদিত / প্রস্তাবিত কিনা, যার নামটি মূল বর্ণের পরে বর্ণানুক্রমিকভাবে চলে, যার মানগুলি প্রাথমিক কনফিগারেশনকে ওভাররাইড করে values

মূল কনফিগারেশন /etc/php/7.0/fpm/pool.dনামকরণ করা হয় www.conf

দেখে মনে হচ্ছে, ইনস্টলেশন সম্পর্কিত পৃষ্ঠাগুলি অনুসারে ইঞ্জিনিয়াররা সরাসরি আসলটি পরিবর্তন করে (প্রাথমিক মানগুলির একটি অনুলিপি সংরক্ষণ করে)। যেমন

[www]
...
user www-data
group www-data
pm.max_children 2

পরিবর্তনের পরে দেয়

[www]
...
user myapp         ; was www-data
group myapp        ; was www-data
pm.max_children 8  ; was 2

তবে মনে হয় পিএইচপি-এফপিএম পরবর্তী পরবর্তী আপগ্রেড হওয়ার পরেও পুনরাবৃত্তি করা কোনও কাজ হতে পারে (ততক্ষণে কনফিগারেশনটি একটি চিন্তায় 7.0উদ্বেগজনক)।

মূল ফাইলটি পরিবর্তন করার পরিবর্তে, আমি এটিকে অপরিবর্তিত রাখতে এবং অন্য একটি যুক্ত করতে চাই, wwwmyapp.confযা একই পুলটিকে ঘোষণা করবে এবং কেবলমাত্র মানগুলি পরিবর্তিত হয়েছে

ভিতরে wwwmyapp.conf

[www]        ; same pool!
user myapp
group myapp
pm.max_children 8

ইন pool.d, ফাইলের তালিকা

www.conf
wwwmyapp.conf

যেহেতু php-fpm.confসমস্ত পুলে কনফ ফাইলগুলি লোড করা হয়, এর মানগুলি (একই পুলে) wwwmyappপরে পড়বে এবং প্রথম মানগুলিকে ওভাররাইড করা উচিত।wwwwww

  • এটি কয়েকটি পরীক্ষায় কাজ করেছে বলে মনে হচ্ছে এবং কোনও ত্রুটির খবর নেই, তবে এটি কি সর্বদা এবং সমস্ত মানের জন্য কাজ করবে?
  • আমাদের পরিবর্তে কনফিগার ফাইলটি ওভাররাইট করা উচিত?

এমনকি কোনও ডকিতে, এমনকি php.net- তে কোনও উত্তর খুঁজে পাওয়া যায়নি।


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

উত্তর:


15

অন্য উত্স থেকে একটি "অফিসিয়াল" নিশ্চিতকরণ খুঁজে পাওয়া যায় নি, তবে কিছু গবেষণা করার পরে এখানে কিছু ফলাফল রয়েছে:

উত্সের কোড php7.0-fpmএবং আরও সুনির্দিষ্টভাবে বিশ্লেষণ fpm-conf.cকরলে দেখা যায় যে এটি

  • মূল কনফিগারেশন ফাইলটি php-fpm.confপ্রথমে [ fpm_conf_load_ini_file ()] পড়তে হবে ,
  • সব includeনির্দেশনা অনুক্রমে পড়া হয়, এর ফাইল ধন্যবাদ একটি তালিকা দান উল্লিখিত glob ) ( ,
  • ফাইলের প্রত্যেকটি একই fpm_conf_load_ini_file () দ্বারা পার্স করা হয় ,
  • ফাইলে একটি এন্ট্রি পূর্ব নির্ধারিত মানকে ওভাররাইট করে
  • যে কোনও নতুনের includeপ্রসেসিং ফাংশন সহ একটি পুনরাবৃত্ত কল হবে call
  • উল্লিখিত glob () ফাংশন নাম, ডিফল্ট অনুসারে বাছাই করে (কোন GLOB_NOSORTবিকল্প)

এইভাবে আমরা ধরে নিতে পারি - কমপক্ষে এই সংস্করণে তবে বর্তমান কোডটি বিবেচনা করে খুব শীঘ্রই এটির পরিবর্তন হওয়ার সম্ভাবনা নেই - pool.dডিরেক্টরি বর্ণানুক্রমিক ফাইলগুলি বর্ণানুক্রমিকভাবে সাজানো নিরাপদ ; পূর্বে রেকর্ড করা মান একই নাম সহ একটি এন্ট্রি দ্বারা ওভাররাইট করা হচ্ছে।

কনফিগারেশন ফাইলগুলি হ্যান্ডেল করার আমাদের একটি পরিষ্কার উপায় আছে php-fpm, বিতরণগুলি অদৃশ্য রাখা এবং প্যাকেজযুক্ত ফাইলের চেয়ে বর্ণানুক্রমিকভাবে বেশি থাকা কাস্টম ফাইল যুক্ত করা যেতে পারে, এতে কয়েকটি বিকল্প রয়েছে যা পরিবর্তন করতে হবে।


ডিফল্ট কনফিগারেশন পরিবর্তন না করার জন্য +1। আমি যখন উত্পাদন পরিবেশের জন্য এটি ব্যবহার করি তখন আমার সর্বদা সমস্যা হয় কারণ আপগ্রেড করার সময় এটি ডিফল্টে ফিরে যায়।
ফেডেরিকো গাল্লি

পুল.ড এর অধীনে গ্লোবাল এফপিএম ওভাররাইডগুলি [global]বিভাগটি ব্যবহার করে সম্ভাব্য । যেমন emergency_restart_threshold। Php7.1-fpm উবুন্টু (সার্ভার 18) এ পরীক্ষিত।
hrvoj3e

এছাড়াও, ডিফল্ট পুকুর নাম কারণ wwwওভাররাইড করার একমাত্র উপায় মত pool.d ফাইলের নামের ব্যবহার করছে wwwsomethingবা দিয়ে শুরু x, yবা z
hrvoj3e

ধন্যবাদ! আমি আমার ফাইলটির নাম দিয়েছি z-www-overrides.confএবং এটি [www]পুলের বিকল্পগুলি ছাড়িয়ে গেছে !
IStranger

2

যদি আপনার কাছে php-overrides.ini এর মতো কিছু ফাইল থাকে তবে আপনার এটি অনুলিপি করা উচিত

/etc/php/7.0/fpm/conf.d/99-overrides.ini

99 উপসর্গ কার্যকর করার আদেশের কারণে is


conf.dওভাররাইড ওভাররাইড করতে পারবে না php-fpm.confভেরিয়েবল (শুধুমাত্র মধ্যে pool.d/অধীনে [global]) (ভবিষ্যতে স্ব নোট)
hrvoj3e
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.