نصب PHP-FPM و اتصال آن به Nginx
اجرای PHP با FPM سریعتر و امنتر از mod_php است؛ اتصال درست Nginx و PHP-FPM را یاد بگیرید.
آخرین بهروزرسانی: ۲۸ مهر ۱۴۰۵ · زمان مطالعه: حدود 3 دقیقه · سطح: کاربردی
- نصب PHP-FPM و اتصال آن به Nginx
- PHP-FPM و افزونههای لازم را نصب کنید
- نسخه PHP و ماژولها را بررسی کنید
چرا این موضوع مهم است؟
موضوع PHP یکی از پایههای نگهداری سرور است. رعایت آن باعث پایداری بیشتر، کاهش ریسک امنیتی و صرفهجویی در زمان پشتیبانی میشود.
اگر تازه سرور خریدهاید، این آموزش نقطه شروع خوبی برای آشنایی با سرویس و جلوگیری از خطاهای رایج است.
پیشنیازها
- دسترسی SSH با کاربر root یا کاربر دارای sudo
- Ubuntu 22.04/24.04 یا Debian 12 (سازگاری با توزیعهای مشابه)
- نسخه پشتیبان از فایلها و دیتابیسهای مهم
- اطلاعات اتصال و بکاپ دیتابیس MySQL
راهنمای گامبهگام
گام 1 — PHP-FPM و افزونههای لازم را نصب کنید
PHP-FPM و افزونههای لازم را نصب کنید. مقدارهای نمونه را با اطلاعات واقعی سرور خود جایگزین کنید و از اجرای دستور با مقادیر پیشفرض پرهیز کنید.
گام 2 — سرویس FPM را فعال کنید
سرویس FPM را فعال کنید. برای اطمینان، نتیجه را از یک مسیر دوم (مرورگر، کلاینت یا ابزار مانیتورینگ) هم بررسی کنید.
گام 3 — در server block بلوک location برای php بسازید
در server block بلوک location برای php بسازید. این کار را در بازه کمترافیک انجام دهید و در صورت نیاز کاربران را از قبل مطلع کنید.
گام 4 — مسیر سوکت FPM را درست تنظیم کنید
مسیر سوکت FPM را درست تنظیم کنید. این مرحله را با دقت انجام دهید و خروجی دستور را بررسی کنید تا از اعمال درست تغییرات مطمئن شوید.
گام 5 — پیکربندی را تست و reload کنید
پیکربندی را تست و reload کنید. پس از اجرا، وضعیت سرویس و لاگها را کنترل کنید؛ تغییر بدون بررسی میتواند خطای پنهان ایجاد کند.
گام 6 — نسخه PHP و ماژولها را بررسی کنید
نسخه PHP و ماژولها را بررسی کنید. اگر روی چند سرور کار میکنید، این مورد را یکبار روی محیط تست اجرا و سپس روی تولید اعمال کنید.
نمونه دستورها
sudo apt install php-fpm php-mysql -y
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}نکات امنیتی و بهینهسازی
- لاگها را پایش کنید تا رفتار غیرعادی زودتر شناسایی شود.
- تغییرات را مستند کنید تا در آینده یا هنگام تحویل به تیم دیگر قابل پیگیری باشد.
- رمزها و کلیدها را در فایلهای محافظتشده نگه دارید و هرگز در کد یا مخزن عمومی قرار ندهید.
خطاهای رایج و راهحل
- خطای اتصال شبکه را با dig، ping و ss بررسی کنید؛ ممکن است فایروال یا DNS مقصر باشد.
- اگر سرویس بالا نیامد، ابتدا journalctl و فایل خطای همان سرویس را بخوانید.
- خطای اتصال شبکه را با dig، ping و ss بررسی کنید؛ ممکن است فایروال یا DNS مقصر باشد.
سؤالات متداول
خطای 502 Bad Gateway یعنی چه؟
Nginx به FPM وصل نشده است؛ مسیر سوکت و وضعیت سرویس را بررسی کنید.
چطور نسخه PHP را عوض کنم؟
نسخه جدید را نصب و مسیر fastcgi_pass و سوکت را بهروزرسانی کنید.
میلاد سرور پلنهای اقتصادی سرور مجازی ایران و سرور مجازی آلمان را با آیپی اختصاصی و قیمت شفاف ارائه میکند. برای مقایسه همه کشورها فهرست کامل سرورهای بینالملل را ببینید.
جمعبندی
گام بعدی پیشنهادی: یک برنامه بکاپ خودکار و مانیتورینگ آپتایم برای همین سرویس راهاندازی کنید.