ورود
سورس سافت bread crumb arrow icon وبلاگ bread crumb arrow icon گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge

آموزش استقرار خودکار برنامه‌های وب PHP با Laravel Forge

برای پخش ویدیو کلیک کنید
مالک پست تعیین نشده
clock icon مدت زمان مطالعه: 12 دقیقه
comment icon 0 نظرات
1404/09/29

بیشتر توسعه‌دهندگان دوست دارند هر بخش از مسیر توسعه تا Production خودکار شود. فرآیند استقرار برنامه باید به سادگی فشار دادن یک دکمه Deploy باشد. اما در عمل زمان زیادی صرف آماده‌سازی سرور تنظیم محیط و انتقال فایل‌های لازم می‌شود. در این شرایط ابزارهایی که فرآیند Deploy را ساده می‌کنند ارزش زیادی پیدا می کنه. Laravel Forge یکی از این ابزارها است که تجربه استقرار PHP را بسیار آسان می کنه .

Laravel Forge چیست؟

یک سرویس مدیریت سرور و استقرار است که به توسعه‌دهندگان کمک می‌کند سرورهای ابری بسازند و پروژه‌های PHP را به‌صورت استاندارد Deploy کنند . نام Forge ممکن است به‌نظر برسد فقط برای Laravel است اما می‌توان از آن برای WordPress Symfony Statamic و هر پروژه PHP دیگر استفاده کرد .

نمای کلی فرآیند Deploy

روند کار با Laravel Forge به‌صورت زیر است:

  • اتصال حساب Forge به ارائه‌دهنده سرور ابری
  • اتصال مخزن Git
  • ایجاد سرور جدید
  • نصب پروژه روی سرور
  • اجرای Deploy با کلیک یا به‌صورت خودکار

گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge: مرحله اول

انتخاب ارائه‌دهنده سرور

در داشبورد Forge می‌توانید یکی از ارائه‌دهندگان محبوب مانند AWS DigitalOcean Linode یا Vultr را انتخاب کنید. Forge همچنین امکان استفاده از VPC سفارشی را نیز فراهم می‌کند .

اتصال Laravel Forge به AWS

ساخت کاربر IAM در AWS

برای اتصال Forge به AWS ابتدا باید یک کاربر IAM در کنسول AWS بسازید. در زمان ساخت دسترسی Programmatic Access را فعال کنید.

گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge: مرحله دوم

تنظیم دسترسی ها

برای اینکه Forge بتواند سرور بسازد و مدیریت کند باید دسترسی‌های لازم داده شود . به‌جای Administrator بهتر است فقط دو مجوز زیر را به کاربر بدهید:

  • AmazonEC2FullAccess
  • AmazonVPCFullAcces

گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge: مرحله سوم

ذخیره کلیدها و اتصال به Forge

بعد از ساخت کاربر IAM کلیدهای دسترسی به شما نمایش داده می‌شود. این مقادیر را در صفحه اتصال AWS در Laravel Forge وارد کنید.

گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge: مرحله چهارم

اتصال مخزن Git

در این مرحله حساب GitHub یا Bitbucket را به Forge متصل کنید . Forge یک کلید عمومی به حساب شما اضافه می‌کند که به‌کمک آن سرور می‌تواند به مخزن دسترسی پیدا کند!!!

ساخت سرور جدید

برای ساخت سرور جدید به بخش Create Server بروید . در AWS اگر از پلن رایگان استفاده می‌کنید می‌توانید t2.micro را انتخاب کنید . در ادامه تنظیماتی مانند نسخه PHP نوع پایگاه داده و سایر موارد را تعیین کنید. پس از چند دقیقه سرور آماده می‌شود .

گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge: مرحله پنجم

بررسی سرور

پس از ساخت سرور می‌توانید با وارد کردن آدرس IP در مرورگر خروجی phpinfo() را مشاهده کنید تا مطمئن شوید محیط PHP به‌درستی نصب شده است.

مدیریت سرور در Forge

داشبورد مدیریت سرور امکانات زیادی در اختیار شما قرار می‌دهد از جمله:

  • مدیریت سایت‌ها
  • اضافه کردن کلید SSH
  • پیکربندی پایگاه داده
  • به‌روزرسانی تنظیمات PHP
  • زمان‌بندی وظایف
  • اجرای Queue Worker
  • تنظیم فایروال
  • مانیتورینگ برنامه

گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge: مرحله ششم

مدیریت سایت ها

سایت پیش‌فرض

هر سرور به‌صورت خودکار یک سایت پیش‌فرض دارد که بهتر است حذف یا جایگزین شود. دایرکتوری وب به‌صورت پیش‌فرض public تنظیم شده که برای Laravel و اکثر برنامه‌های PHP مناسب است .

گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge: مرحله هفتم

نصب پروژه

در بخش مدیریت سایت می‌توانید پروژه را از Git نصب کنید. نام پروژه و Branch را وارد کنید تا فرآیند آماده‌سازی آغاز شود.

گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge: مرحله هشتم

Deploy برنامه

Deploy دستی

برای اجرای استقرار دستی می‌توانید از دکمه Deploy now استفاده کنید. این گزینه زمانی کاربرد دارد که می‌خواهید هر بار به‌صورت کنترل‌شده کد را منتشر کنید.

Deploy خودکار

آیا می‌خواهید با هر Push به Branch مشخص‌شده فرآیند Deploy اجرا شود؟ می‌توانید Quick Deploy را فعال کنید تا این کار به‌صورت خودکار انجام شود.

اسکریپت Deploy

Laravel Forge یک اسکریپت پیش‌فرض Deploy در اختیار شما می‌گذارد که معمولاً شامل موارد زیر است:

cd /home/forge/example.com
git pull origin master
composer install --no-interaction --prefer-dist --optimize-autoloader
echo "" | sudo -S service php7.4-fpm reload
if [ -f artisan ]
then
php artisan migrate --force
fi

اگر می‌خواهید کارهای دیگری انجام شود می‌توانید این اسکریپت را ویرایش کنید. به‌عنوان مثال می‌توانید کش را پاک کنید یا دستورهای تست را اضافه نمایید.

Trigger URL

یکی از قابلیت‌های جالب این است که می‌توانید URL خاصی تعریف کنید تا با دریافت درخواست Deploy اجرا شود. این گزینه برای استفاده با سرویس‌های خارجی یا ساخت اسکریپت‌های سفارشی مفید است.

به روز رسانی Repository و Branch

اگر می‌خواهید مخزن یا Branch را تغییر دهید می توانید از ابزارهای Forge این کار را انجام دهید. در این صورت شاید نیاز باشد اسکریپت Deploy را مطابق Branch جدید به روز رسانی کنید.

مدیریت Environment

Forge فایل env را به‌صورت خودکار ایجاد می‌کند و اطلاعات حساس مانند رمز پایگاه داده را تو اون قرار میده. اگر برنامه از API استفاده می‌کند می‌توانید کلید API را نیز در این فایل قرار دهید. برای دسترسی به این مقادیر در PHP می‌توانید از getenv() استفاده کنید .

Queue Worker

اجرای Queue Workerها همانند اجرای دستور php artisan queue:work است. Forge از Supervisor برای مدیریت این کار استفاده می‌کند تا در صورت توقف به صورت خودکار دوباره راه اندازی شود.

SSL

در گذشته نصب SSL یک فرآیند پیچیده بود اما Forge این کار را بسیار ساده کرده است . می‌توانید از گواهی رایگان LetsEncrypt استفاده کنید یا گواهی دلخواه خود را نصب نمایید. اگر به SSL برای Wildcard Subdomain نیاز دارید می‌توانید از گواهی‌های Cloudflare نیز استفاده کنید.

اضافه کردن SSH Keys

برای دسترسی امن به سرور معمولاً از SSH استفاده می‌شود. ابتدا یک کلید SSH ایجاد کنید:

ssh-keygen -t rsa

سپس کلید عمومی را به Forge اضافه کنید:

cat ~/.ssh/id_rsa.pub

این کلید به سرور اضافه می‌شود تا بتوانید بدون رمز به آن متصل شوید.

گسترش دادن برنامه های وب PHP با استفاده از Laravel Forge: مرحله نهم

پیکربندی PHP و MySQL

در داشبورد Forge می‌توانید نسخه PHP را ارتقا دهید تنظیمات آپلود فایل را تغییر دهید و OPCache را برای Production بهینه کنید . برای پایگاه داده نیز می‌توانید دیتابیس جدید بسازید کاربران را اضافه کنید و دسترسی‌ها را مدیریت کنید. فراموش نکنید مقادیر به‌روزرسانی‌شده را در فایل env وارد کنید.

زمان‌بندی وظایف

Forge ابزار زمان‌بندی وظایف را در اختیار شما قرار می‌دهد تا بتوانید کارهای دوره‌ای را اجرا کنید. مثلاً ارسال ایمیل پاک‌سازی داده یا هر اسکریپت دیگری که لازم دارید.

Daemon

Daemon برنامه‌ای است که به‌صورت Background اجرا می‌شود. Forge به شما اجازه می‌دهد Daemonها را راه‌اندازی کنید و از Supervisor برای مدیریت آن‌ها استفاده کنید تا در صورت توقف دوباره اجرا شوند .

مانیتورینگ

Forge از ابزارهای مانیتورینگ پشتیبانی می‌کند تا بتوانید عملکرد برنامه را بررسی کنید . این ابزارها اطلاعاتی مانند استفاده از CPU حافظه و عملیات I/O را در اختیار شما قرار می‌دهند.

شبکه و فایروال

برای مدیریت فایروال و قوانین شبکه نیازی نیست وارد AWS شوید. می‌توانید این کار را از داشبورد Forge انجام دهید. همچنین امکان تنظیم ارتباط بین سرورها برای پروژه‌های بزرگ فراهم است .

نتیجه گیری

Laravel Forge ابزاری قدرتمند و در عین حال ساده برای استقرار برنامه‌های وب PHP است. این سرویس با حذف مراحل پیچیده Deploy به توسعه‌دهندگان کمک می‌کند روی توسعه تمرکز کنند. پس از پیکربندی اولیه ممکن است دیگر نیازی به ورود مستقیم به کنسول AWS نداشته باشید. اگر به‌دنبال راهکاری پایدار قابل اعتماد و قابل توسعه برای استقرار پروژه‌های PHP هستید Forge یکی از بهترین انتخاب‌ها خواهد بود. آیا شما تجربه‌ای در استفاده از Laravel Forge !!یا ابزارهای مشابه دارید؟

این مقاله چقدر برای شما مفید بود؟
0 امتیاز از 0 رای
tags
برچسب ها
questions
سوالات متداول

خیر. با وجود نام Laravel Forge این ابزار محدود به فریمورک Laravel نیست. شما می توانید پروژه‌های PHP خام وردپرس Symfony Statamic و سایر برنامه های مبتنی بر PHP را نیز به راحتی با Forge مستقر و مدیریت کنید. Forge در واقع روی مدیریت سرور و فرآیند Deploy تمرکز دارد نه روی یک فریمورک خاص.

خیر. یکی از اهداف اصلی Laravel Forge ساده سازی DevOps است. بیشتر تنظیمات سرور نصب پشته نرم افزاری مدیریت SSL و Queue Workerها از طریق رابط گرافیکی انجام می شود. البته اگر دانش فنی بیشتری داشته باشید می توانید اسکریپت Deploy و تنظیمات سرور را به صورت پیشرفته تر شخصی سازی کنید.

Laravel Forge برای پروژه های کوچک تا متوسط و حتی پروژه های Production با ترافیک بالا گزینه مناسبی است. اگر می خواهید فرآیند استقرار سریع پایدار و قابل پیش بینی داشته باشید و زمان خود را صرف توسعه محصول کنید Forge انتخابی منطقی خواهد بود. به‌خصوص برای تیم های کوچک و فریلنسرها بسیار کاربردی است.

دیدگاه و پرسش

هیچ نظری ثبت نشده است