បញ្ជីអត្ថបទ
តើអ្វីៗគ្រប់យ៉ាងល្អទេ នៅពេលដែលម៉ាស៊ីនមេកំពុងដំណើរការ? តាមពិតទៅ នៅក្នុងពិភពនៃ PHP-FPM ឯកសារកំណត់រចនាសម្ព័ន្ធគឺជាគំនិតចម្បង ដោយកំណត់ថាតើគេហទំព័រអាចដំណើរការបានស្ថិរភាព សុវត្ថិភាព និងមានប្រសិទ្ធភាពឬអត់។
តើការកំណត់រចនាសម្ព័ន្ធអាងដំណើរការសម្រាប់ PHP-FPM ជាអ្វី?
PHP-FPM (FastCGI Process Manager) គឺជាកម្មវិធីគ្រប់គ្រងដំណើរការសម្រាប់ PHP ដែលប្រើគោលគំនិតនៃ "pools" ដើម្បីគ្រប់គ្រងដំណើរការ PHP សម្រាប់គេហទំព័រ ឬកម្មវិធីផ្សេងៗគ្នា។
រាល់ .conf ឯកសារនេះគឺជានិយមន័យអាងដែលបញ្ជាក់ប៉ារ៉ាម៉ែត្រសំខាន់ៗដូចជាអ្នកប្រើប្រាស់ដែលដំណើរការដំណើរការ ច្រក ឬរន្ធដែលវាស្តាប់ ផ្លូវកំណត់ហេតុ និងចំនួនដំណើរការ។
ម្យ៉ាងទៀត ឯកសារទាំងនេះគឺដូចជា "ក្លូន" សម្រាប់ម៉ាស៊ីនបម្រើរបស់អ្នក ដែលអនុញ្ញាតឱ្យគេហទំព័រផ្សេងៗដំណើរការដោយឯករាជ្យដោយមិនជ្រៀតជ្រែកជាមួយគ្នាឡើយ។

www.conf: អាងដំណើរការលំនាំដើម
បន្ទាប់ពីដំឡើង PHP-FPM រួច ប្រព័ន្ធនឹងបង្កើតដោយស្វ័យប្រវត្តិ... www.conf ឯកសារ។
មុខងាររបស់វាគឺផ្តល់អាងស្តុកទឹកលំនាំដើមដែលដំណើរការភ្លាមៗ ជាធម្មតាដំណើរការនៅក្នុង... www-data អ្នកប្រើប្រាស់។
អាងនេះសមស្របសម្រាប់បរិស្ថានទីតាំងតែមួយ ងាយស្រួលកំណត់រចនាសម្ព័ន្ធ ហើយប៉ារ៉ាម៉ែត្រភាគច្រើនជាតម្លៃទូទៅ ដូចជា៖
user = www-datagroup = www-datalisten = /run/php/php8.3-fpm.sockpm.max_children = 5
ប្រសិនបើអ្នកកំពុងដំណើរការតែនៅលើគេហទំព័រមួយ នេះគ្រប់គ្រាន់ហើយ។
etufo ។.org.conf: អាងគេហទំព័រផ្ទាល់ខ្លួន
នៅពេលអ្នកមានគេហទំព័រច្រើន អ្នកត្រូវបង្កើតអាងដាច់ដោយឡែកសម្រាប់គេហទំព័រនីមួយៗ។
ដូចជាការ etufo.org.confវាគឺជាក់លាក់សម្រាប់ឈ្មោះដែន។ etufo ។.org ការកំណត់រចនាសម្ព័ន្ធផ្តាច់មុខ។
ការអនុវត្តទូទៅគឺ៖
- បញ្ជាក់អ្នកប្រើប្រាស់ និងក្រុមផ្សេងៗគ្នា ឧទាហរណ៍
user = etufo,group = etufo - កំណត់រចនាសម្ព័ន្ធច្រកស្តាប់ ឬរន្ធដោតដាច់ដោយឡែកមួយ ឧទាហរណ៍
listen = /run/php/etufo.sock - កែតម្រូវចំនួនដំណើរការ ដើម្បីធានាបាននូវស្ថេរភាពទីតាំង ក្រោមការប្រើប្រាស់ក្នុងពេលដំណាលគ្នាខ្ពស់។
- ឯកសារកំណត់ហេតុឯករាជ្យជួយសម្រួលដល់ការដោះស្រាយបញ្ហា។
គុណសម្បត្តិនៃវិធីសាស្រ្តនេះគឺការញែកសុវត្ថិភាព៖ ទោះបីជាគេហទំព័រមួយត្រូវបានវាយប្រហារក៏ដោយ គេហទំព័រផ្សេងទៀតនឹងមិនរងផលប៉ះពាល់ទេ។
dummy.conf: ឧទាហរណ៍ ឬឯកសារកន្លែងដាក់
dummy.conf ជាធម្មតា ទាំងនេះគឺជាគំរូ ឬឧទាហរណ៍ដែលផ្តល់ដោយប្រព័ន្ធ។
វានឹងមិនត្រូវបានបើកដំណើរការទេ លុះត្រាតែអ្នកកែប្រែ និងបើកដំណើរការវាដោយដៃ។
គោលបំណងរបស់វាគឺដើម្បីផ្តល់ឱ្យអ្នកនូវឯកសារយោង និងបង្ហាញអ្នកពីរបៀបសរសេរការកំណត់រចនាសម្ព័ន្ធអាងថ្មី។
ដូច្នេះវាដូចជា "សៀវភៅណែនាំ" ជាជាងការកំណត់រចនាសម្ព័ន្ធជាក់ស្តែងសម្រាប់ប្រតិបត្តិការ។
ហេតុអ្វីបានជាប្រើឯកសារអាងច្រើន?
- សុវត្ថិភាពគេហទំព័រផ្សេងៗគ្នាគួរតែត្រូវបានដំណើរការដោយអ្នកប្រើប្រាស់ផ្សេងៗគ្នា ដើម្បីជៀសវាងការអនុញ្ញាតត្រួតស៊ីគ្នា។
- 性能优化ចំនួនដំណើរការអាចត្រូវបានកំណត់ជាលក្ខណៈបុគ្គលសម្រាប់អាងនីមួយៗ និងកែតម្រូវតាមតម្រូវការចរាចរណ៍។
- ការដាក់ឱ្យនៅដាច់ដោយឡែកកំណត់ហេតុ លទ្ធផលកំហុស និងច្រកស្តាប់ទាំងអស់ត្រូវបានបំបែកចេញពីគ្នា ដែលធ្វើឱ្យការដោះស្រាយបញ្ហាកាន់តែងាយស្រួល។
ឧទាហរណ៍ ប្រសិនបើ www.conf វាបានដួលរលំ។etufo.org.conf វានៅតែអាចដំណើរការបានធម្មតា ហើយនឹងមិនធ្វើឱ្យម៉ាស៊ីនមេទាំងមូលដួលរលំទេ។
សេណារីយ៉ូនៃការអនុវត្តជាក់ស្តែង
- ម៉ាស៊ីនបម្រើគេហទំព័រតែមួយប្រើតែប៉ុណ្ណោះ
www.confគ្រប់គ្រាន់ហើយ។ - ម៉ាស៊ីនបម្រើពហុគេហទំព័រ: បង្កើតមួយសម្រាប់គេហទំព័រនីមួយៗ
.confឯកសារដូចជាetufo.org.conf។ - dummy.confសម្រាប់ជាឯកសារយោងតែប៉ុណ្ណោះ មិនត្រូវបានណែនាំទេ។
ឧទាហរណ៍នៃការប្រៀបធៀបការកំណត់រចនាសម្ព័ន្ធ
www.conf (អាងលំនាំដើម)
[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm = dynamic
pm.max_children = 5
etufo.org.conf (ក្រុមផ្ទាល់ខ្លួន)
[etufo.org]
user = etufo
group = etufo
listen = /run/php/etufo.sock
pm = dynamic
pm.max_children = 20
access.log = /var/log/php-fpm/etufo.access.log
អ្នកនឹងឃើញថាភាពខុសគ្នាស្ថិតនៅក្នុងអ្នកប្រើប្រាស់ អាសយដ្ឋានស្តាប់ និងចំនួនដំណើរការ។
ការកែសម្រួលប៉ារ៉ាម៉ែត្រអាងដំណើរការ PHP-FPM
ប្រសិនបើការកំណត់ប្រើ ថាមវន្តនេះគឺជាវិធីសាស្រ្តនៃការចាប់ផ្តើមដំណើរការការងារមួយចំនួនជាមុន និងកែតម្រូវវាដោយថាមវន្តយោងទៅតាមបរិមាណសំណើ ដែលអាចឆ្លើយតបបានលឿននៅពេលដែលបរិមាណសំណើកើនឡើងភ្លាមៗ។
សម្រាប់គេហទំព័រដែលមានចំនួនចរាចរណ៍ជាក់លាក់ វាត្រូវបានណែនាំឱ្យប្រើ pm = dynamicដោយសារតែវាអាចរក្សាបាននូវចំនួនជាក់លាក់នៃដំណើរការទំនេរ និងជៀសវាងកំហុស 500 កំឡុងពេលស្របគ្នាខ្ពស់។
វាត្រូវបានណែនាំឱ្យប្រើវាតែនៅពេលដែលកម្រិតសំឡេងចូលប្រើមានកម្រិតទាបបំផុត ហើយធនធានអង្គចងចាំគឺតឹង។ pm = ondemand ដើម្បីសន្សំធនធាន។
វាត្រូវបានណែនាំឱ្យផ្លាស់ប្តូរវាទៅជាថាមវន្ត ហើយធ្វើឱ្យវាប្រសើរឡើង។ pm.max_children និងប៉ារ៉ាម៉ែត្រផ្សេងទៀត៖
pm = dynamic
pm.max_children = 16 ; 根据服务器资源调整,建议值:CPU 核心数 × 2
pm.start_servers = 4 ; 初始进程数,建议设为 max_children × 25%
pm.min_spare_servers = 2 ; 最小空闲进程数
pm.max_spare_servers = 7 ; 最大空闲进程数
pm.max_requests = 3000 ; 每个子进程处理完 3000 个请求后自动重启
pm.process_idle_timeout = 10s ; 空闲进程 10s 后自动退出
ការកំណត់រចនាសម្ព័ន្ធនេះធានានូវដំណើរការ ខណៈពេលដែលជៀសវាងការខ្ជះខ្ជាយធនធាន។
សម្រាប់ការណែនាំអំពីការកំណត់រចនាសម្ព័ន្ធលម្អិត សូមមើលឯកសារបង្រៀនខាងក្រោម ▼
យោងតាមឯកសារ PHP ផ្លូវការ៖
«អាងនីមួយៗអាចត្រូវបានកំណត់រចនាសម្ព័ន្ធដោយឯករាជ្យ ដែលអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ ដែនកំណត់ និងការកំណត់ផ្សេងៗគ្នាក្នុងមួយកម្មវិធី»។
សេចក្តីថ្លែងការណ៍នេះចង្អុលបង្ហាញយ៉ាងច្បាស់អំពីសារៈសំខាន់នៃការកំណត់រចនាសម្ព័ន្ធពហុអាង៖ ឯករាជ្យភាព ភាពបត់បែន និងលទ្ធភាពគ្រប់គ្រង។
សេចក្តីសន្និដ្ឋាន៖ ទស្សនៈរបស់ខ្ញុំ
ការកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនបម្រើគឺដូចជាអ្នកដឹកនាំវង់ភ្លេងនៅក្នុងវង់ភ្លេង ដោយកំណត់ពីរបៀបលេងឧបករណ៍ភ្លេងនីមួយៗ។
www.conf វាគឺជាអ្នកដឹកនាំវង់ភ្លេងលំនាំដើម ដែលសមរម្យសម្រាប់ការសម្តែងទោល។etufo.org.conf វាគឺជាអ្នកដឹកនាំវង់ភ្លេងដែលបង្កើតឡើងសម្រាប់ឆាកជាក់លាក់មួយ។ និង dummy.conf វាគឺជាសេចក្តីព្រាងនៃបទភ្លេង ដែលរំលឹកអ្នកពីរបៀបសរសេរបទភ្លេងថ្មី។
នៅក្នុងយុគសម័យមួយដែលផ្តោតលើសុវត្ថិភាពព័ត៌មាន និងការបង្កើនប្រសិទ្ធភាពប្រតិបត្តិការ ការដឹងពីរបៀបប្រើប្រាស់ឯកសារកំណត់រចនាសម្ព័ន្ធទាំងនេះឱ្យបានត្រឹមត្រូវគឺជាគន្លឹះក្នុងការគ្រប់គ្រងខ្សែជីវិតរបស់ម៉ាស៊ីនមេ។
ការកំណត់រចនាសម្ព័ន្ធមិនមែនគ្រាន់តែជាអត្ថបទតូចតាចនោះទេ វាគឺជាព្រលឹងរបស់ម៉ាស៊ីនមេ។
ប្រសិនបើអ្នកកំពុងប្រតិបត្តិការWordPressសម្រាប់កម្មវិធីច្រើនគេហទំព័រ យើងសូមណែនាំយ៉ាងមុតមាំថាអ្នកគួរពិនិត្យមើល និងបង្កើនប្រសិទ្ធភាពឯកសារអាងទាំងនេះជាបន្ទាន់ ជាពិសេសការកំណត់ប៉ារ៉ាម៉ែត្រអាងដំណើរការ ដើម្បីធ្វើឱ្យម៉ាស៊ីនមេរបស់អ្នករឹងមាំពិតប្រាកដ។
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ អត្ថបទ "ភាពខុសគ្នា និងបច្ចេកទេសបង្កើនប្រសិទ្ធភាពនៃឯកសារកំណត់រចនាសម្ព័ន្ធ PHP-FPM /etc/php/8.3/fpm/pool.d/" ដែលបានចែករំលែកនៅទីនេះអាចមានប្រយោជន៍សម្រាប់អ្នក។
សូមស្វាគមន៍ចំពោះការចែករំលែកតំណភ្ជាប់នៃអត្ថបទនេះ៖https://www.chenweiliang.com/cwl-33845.html

