فهرست مقاله
تمرین قالب سفارشی HestiaCP PHP-FPM: استفاده از PHP 8.5 به عنوان مثال
به محض اینکه ترافیک سرور افزایش یابد، قالب پیشفرض PHP-FPM، مانند یک فایروال کاغذی، فوراً دچار مشکل میشود و باعث افت عملکرد میگردد.
به همین دلیل است که به شما میگویم: قالبهای سفارشی یک گزینه نیستند، بلکه موضوع مرگ و زندگی هستند.
چرا از قالب اختصاصی استفاده کنیم؟
در HestiaCP، قالب پیشفرض با بهروزرسانیهای سیستم بازنویسی میشود.
این یعنی پارامترهایی که با زحمت تنظیم کردهاید، ممکن است بلافاصله پس از بهروزرسانی ناپدید شوند.
طبق مستندات رسمی PHP،pm.max_children این پارامترها مستقیماً قابلیتهای همزمانی را تعیین میکنند؛ پس از تنظیم مجدد، عملکرد وبسایت به شدت کاهش مییابد.
بنابراین، الگوی پیشفرض را کپی کرده و یک الگوی جدید ایجاد کنید. custom-PHP8_5.tplتنها راه برای اطمینان از پایداری، انتخاب آن در پنل است.

منطق اصلی مدیریت فرآیند
مزایای حالت پویا
pm = dynamic این اولین انتخاب برای سناریوهای با همزمانی بالا است.
این به طور خودکار تعداد فرآیندها را بر اساس بار تنظیم میکند تا از هدر رفتن منابع جلوگیری شود.
در سروری با ۱۲ گیگابایت حافظه و یک پردازنده ۸ هستهای ، حالت پویا به سیستم اجازه میدهد تا در دورههای اوج مصرف، پایدار بماند، نه اینکه در یک مقدار ثابت گیر کند.
تنظیم دقیق کنترل تعداد فرآیند
حداکثر تعداد فرآیندهای فرزند
pm.max_children = 300
این عدد به طور تصادفی انتخاب نشده بود.
طبق گزارش تست عملکرد Nginx + PHP-FPM، یک فرآیند PHP تقریباً 30 تا 40 مگابایت حافظه مصرف میکند.
در یک محیط حافظه ۱۲ گیگابایتی، ۳۰۰ فرآیند تقریباً ۹ گیگابایت را اشغال میکنند و فضای کافی برای سیستم و پایگاه داده باقی میگذارند که کاملاً مناسب است.
تعداد فرآیندهای شروع شده
pm.start_servers = 32
این تضمین میکند که وبسایت فرآیندهای کافی برای رسیدگی به درخواستها هنگام راهاندازی دارد و از تأخیر در شروع سرد جلوگیری میکند.
کنترل فرآیند بیکار
pm.min_spare_servers = 16pm.max_spare_servers = 64
این دو پارامتر مانند «دروازهبان» عمل میکنند و تضمین میکنند که فرآیندهای پشتیبان کافی بدون اتلاف منابع وجود دارد.
درخواست کنترل و ثبات
حداکثر تعداد درخواستها
pm.max_requests = 1000
هر فرآیند پس از مدیریت ۱۰۰۰ درخواست، به طور خودکار مجدداً راهاندازی میشود تا از نشت حافظه جلوگیری شود.
این روش رسمی توصیه شده در PHP است که میتواند به طور موثر از تخریب عملکرد ناشی از عملکرد طولانی مدت جلوگیری کند.
مهلت درخواست تمام شد
request_terminate_timeout = 60s
درخواستهای بیش از ۶۰ ثانیه به اجبار خاتمه خواهند یافت.
این مانند اضافه کردن یک لایه بیمه به سیستم است تا از خرابی کل سرور در اثر بنبست جلوگیری کند.
کاربرد عملی نظارت بر عملکرد
ضبط آهسته گزارش
slowlog = /var/log/php8.5-fpm-%domain%.slow.log
هر درخواستی که بیش از ۵ ثانیه طول بکشد، ثبت خواهد شد.
این به شما امکان میدهد تا به جای حدس و گمان کورکورانه، گلوگاههای عملکرد را دقیقاً مشخص کنید .
زمان انتظار درخواست کند است
request_slowlog_timeout = 5s
اگر زمان از ۵ ثانیه بیشتر شود، لاگهای کند فعال میشوند و به شما کمک میکنند تا مشکلات را به سرعت شناسایی کنید.
ضرورت ایمنی و انزوا
محدودیتهای دایرکتوری
php_admin_value[open_basedir]
این اسکریپتهای PHP را محدود میکند تا فقط به دایرکتوریهای مشخصشده دسترسی داشته باشند و از دسترسی بین سایتی جلوگیری میکند.
این امر به ویژه در محیطهای چندسایتی اهمیت دارد تا از تأثیر آسیبپذیری یک سایت بر سایتهای دیگر جلوگیری شود.
فایلهای موقت و جداسازی جلسه
php_admin_value[session.save_path] و upload_tmp_dir
برای بهبود امنیت، فایلها و جلسات موقت را در دایرکتوری کاربر ذخیره کنید.
این مانند نصب یک گاوصندوق مستقل برای هر سایت است، بنابراین آنها با یکدیگر تداخل ندارند.
نحوه اعمال قالب سفارشی
توصیه میشود آخرین نسخه PHP را به عنوان سیستم پیشفرض در HestiaCP انتخاب کنید. این کار برای جلوگیری از انتخاب خودکار نسخه قدیمیتر توسط سیستم پس از بهروزرسانی خودکار است.
پنل ورود → آیکون چرخدنده در گوشه بالا سمت راست → پیکربندی سرور → نسخه PHP سیستم (آخرین نسخه توصیه میشود)
دستور کپی کردن قالب پیشفرض:
cp /usr/local/hestia/data/templates/web/php-fpm/default.tpl \ /usr/local/hestia/data/templates/web/php-fpm/custom-default-PHP.tpl cp /usr/local/hestia/data/templates/web/php-fpm/PHP-8_5.tpl \ /usr/local/hestia/data/templates/web/php-fpm/custom-PHP8_5.tpl cp /usr/local/hestia/data/templates/web/php-fpm/PHP-8_4.tpl \ /usr/local/hestia/data/templates/web/php-fpm/custom-PHP8_4.tpl
تغییر پارامترهای پیکربندی
با توجه به منابع و نیازهای سرور تنظیم کنید. pm.max_children،request_terminate_timeout 。
pm = dynamic ; 允许的最大 PHP 进程数(12GB 内存 / 40MB ≈ 300) ; 8核CPU搭配300个进程,可以轻松应对极高并发,且不至于让内存溢出 pm.max_children = 300 ; 启动时创建的初始进程数(CPU核心数 * 4) pm.start_servers = 32 ; 维持的最小空闲进程数(服务器空闲时保留的进程,保证随时响应) pm.min_spare_servers = 16 ; 维持的最大空闲进程数(超过这个数量的空闲进程会被释放) pm.max_spare_servers = 64 ; 每个进程处理1000个请求后自动重启,高配置服务器可适当调大,有效防止WP插件内存泄露 pm.max_requests = 1000 ; 单个请求最大执行时间,超时60秒强杀,防止死锁卡死 request_terminate_timeout = 60s ; 慢日志路径及触发阈值(请求超过5秒则记录,用于排查性能瓶颈) slowlog = /var/log/php8.5-fpm.log.slow request_slowlog_timeout = 5s
یک الگو را در پنل HestiaCP انتخاب کنید.
پنل ورود → وب → ویرایش دامنه → قالب PHP-FPM → انتخاب custom-PHP8_5.tpl
ذخیره و اعمال
سیستم بلافاصله پیکربندی قالب جدید را بارگذاری میکند.
موارد دنیای واقعی در عمل
من یک بار این را روی سروری با حداکثر ترافیک ۵۰۰۰ کاربر همزمان آزمایش کردم.
هنگام استفاده از الگوی پیشفرض، زمان پاسخ به ۳.۲ ثانیه افزایش یافت.
تغییر به custom-PHP8_5.tpl پس از آن، زمان پاسخ در ... تثبیت شد. ۰.۳ ثانیه.
این قدرت قالبهای سفارشی است.
نتیجهگیری: دیدگاه من
در دنیای بهینهسازی سرور، قالبها (templates) اساس کار هستند.
اگر هنوز به الگوی پیشفرض تکیه میکنید، مثل این است که یک ماشین لوکس را به یک راننده تازهکار بدهید - ماشین به راحتی میتواند تصادف کند.
متخصصان واقعی میدانند که چگونه از قالبهای سفارشی برای حفظ ثبات استفاده کنند و از بهینهسازی پارامترها برای افزایش عملکرد بهره ببرند.
پیکربندی یک جزئیات نیست، بلکه یک استراتژی است که زندگی یا مرگ را تعیین میکند.
پس بیایید اقدام کنیم.
الگو را کپی کنید، پارامترها را تغییر دهید و انتخاب کنید... custom-PHP8_5.tpl.
سرور خود را حتی تحت همزمانیهای سنگین، کاملاً پایدار نگه دارید.
📖 توصیه میکنیم ادامه مطلب را بخوانید.
اگر قبلاً نحوه سفارشیسازی قالبهای PHP-FPM را آموختهاید ، گام مهم بعدی، کسب درک عمیقتر از بهینهسازی پارامترهای قالب و مسائل مربوط به بارگذاری است.
👉 آیا HestiaCP PHP-FPM بیش از حد بارگذاری شده است؟ آیا صفحات وب پویا خطای ۵۰۰ دریافت میکنند؟ این بهینهسازی نتایج فوری را نشان خواهد داد! ▼
در این مقاله، خواهید دید:
- نکات پیکربندی پارامترهاچگونه میتوان تعداد فرآیندها و محدودیتهای حافظه را بر اساس ترافیک سایت به طور معقول تنظیم کرد.
- راهکار بهینهسازی باربرای جلوگیری از ۵۰۰ خطا در شرایط همزمانی بالا و تضمین عملکرد پایدار صفحات وب پویا.
- تحلیل موردی دنیای واقعیبا مقایسه پیکربندیها در سناریوهای دنیای واقعی، میتوانیم به طور شهودی اثرات بهینهسازی را درک کنیم.
به طور خلاصه: بهینهسازی پارامترها تضمینکننده پایداری است و به سرور شما اجازه میدهد تا در محیطهای پرفشار، همچنان توانمند باقی بماند.
امیدوارم مقاله "قالب سفارشی PHP-FPM HestiaCP: اسرار بهینهسازی عملکرد PHP 8.5" که در وبلاگ چن ویلینگ ( https://www.chenweiliang.com/ ) به اشتراک گذاشته شده است، برای شما مفید باشد.
لینک این مقاله را به اشتراک بگذارید: https://www.chenweiliang.com/cwl-34423.html

