سالهاست ترکیب Nginx + PHP-FPM گزینهٔ استاندارد برای اجرای PHP محسوب میشود؛ ترکیبی پایدار، قابلاعتماد و امتحانپسداده. به همین دلیل بسیاری از توسعهدهندگان معمولاً با احتیاط به سراغ تکنولوژیهای جدید میروند، مخصوصاً وقتی پای زیرساخت و سرو کردن درخواستها در میان باشد.
FrankenPHP چیست؟
FrankenPHP یک وبسرور و محیط اجرای PHP است که همهچیز را در یک برنامهٔ واحد ارائه میدهد. در این مدل:
- نیازی به Nginx یا Apache نیست
- PHP-FPM و FastCGI حذف میشوند
- پردازش درخواستها مستقیماً داخل خود FrankenPHP انجام میشود
این طراحی شباهت زیادی به معماری Node.js دارد:
لایههای کمتر، پیچیدگی کمتر، سرعت بیشتر.
نتیجه این است که راهاندازی سادهتر میشود و عملکرد خام سیستم به شکل قابلتوجهی افزایش پیدا میکند.
روش آزمایش
برای مقایسهٔ دقیق FrankenPHP و PHP-FPM، هر دو روی یک محیط یکسان تست شدهاند:
- PHP نسخه 8.4
- کانتینرهای Docker
- سرور با 6 vCPU و 4GB RAM
اسکریپت تست فقط یک فایل بسیار ساده PHP بوده است:
<?php
echo "Hello from server";سه ابزار بنچمارک نیز مورد استفاده قرار گرفتهاند:
- wrk → سنجش بیشترین مقدار درخواست در ثانیه
- wrk2 → بررسی پایداری تحت فشار ثابت
- k6 → شبیهسازی رفتار کاربران واقعی
تمام تستها چندین بار تکرار شدهاند تا نتایج دقیق و بدون نویز باشند.
نتایج بنچمارک
۱. نتیجهٔ تست wrk — حداکثر سرعت
اختلاف عملکرد در این بخش بسیار چشمگیر بوده است:
- FrankenPHP: حدود ۱۵,۰۰۰ درخواست در ثانیه
- PHP-FPM: حدود ۴,۰۰۰ درخواست در ثانیه
این اعداد نشان میدهد که FrankenPHP تقریباً ۴ برابر سریعتر عمل کرده است.
میانگین «تأخیر» نیز در FrankenPHP حدود نصف PHP-FPM بوده است.
۲. نتیجهٔ تست wrk2 — پایداری در فشار ثابت
در تستی با بار ثابت ۵۰۰۰ درخواست در ثانیه:
- PHP-FPM نتوانسته تمام درخواستها را پاسخ دهد و تعداد زیادی خطا و تأخیر بالا ثبت شده است.
- FrankenPHP تقریباً تمام درخواستها را با تأخیر حدود ۱.۴ میلیثانیه بهطور پایدار پاسخ داده است.
در این مرحله، FrankenPHP عملکردی «کاملاً مسلط» داشته است.
۳. نتیجهٔ تست k6 — شبیهسازی کاربران واقعی
در یک سناریوی واقعیتر با ۱۰۰ کاربر مجازی:

- میانگین تأخیر PHP-FPM حدود ۲.۵ میلیثانیه
- میانگین تأخیر FrankenPHP کمتر و در حدود ۲ میلیثانیه
اگرچه در این بخش اختلافها نزدیکتر بودهاند، اما FrankenPHP همچنان سریعتر و قابلاعتمادتر عمل کرده است.
جمعبندی: کدام یک انتخاب بهتر است؟
براساس نتایج، یک نکته کاملاً مشخص میشود:
FrankenPHP در بیشتر تستها برندهٔ واضح است.
اما تصمیم نهایی بستگی به نوع پروژه دارد:
زمانهایی که FrankenPHP انتخاب بهتری است:
- پروژههای جدید
- سرویسهای API
- میکروسرویسها
- سیستمهای سبک و stateless
- نیاز به عملکرد بسیار بالا و پیکربندی ساده
زمانهایی که PHP-FPM هنوز انتخاب امنتری است:
- پروژههای بزرگ و قدیمی (Legacy)
- سیستمهایی با پیکربندی پیچیدهی موجود
- اپلیکیشنهایی که برای سالها روی FPM پایدار بودهاند
نتیجهٔ نهایی
FrankenPHP نشان داده که میتواند فصل جدیدی در نحوهٔ اجرای PHP باشد:
سادهتر، سریعتر و آیندهدارتر.
برای پروژههای جدید، انتخاب بسیار مناسبی است.
اما برای سیستمهای بزرگِ موجود، مهاجرت باید با دقت و آزمایش انجام شود.