سلام! من آرش فدائی هستم و تو این مقاله قراره یاد بگیریم چطور با Laravel Forge یه پروژه لاراول رو به‌راحتی روی سرور مستقر کنیم. Laravel Forge یه ابزار قدرتمنده که فرآیند تنظیم سرور و استقرار اپلیکیشن رو خودکار می‌کنه، از نصب پیش‌نیازها گرفته تا مدیریت دیتابیس و SSL. تو این آموزش، قدم به قدم یه پروژه لاراول رو روی Forge مستقر می‌کنیم و چند تا نکته عملی از تجربه‌های خودم باهاتون به اشتراک می‌ذارم. بریم شروع کنیم!

Laravel Forge: تجربه شخصی من

اولین باری که خواستم یه پروژه لاراول رو روی سرور بذارم، داشتم همه‌چیز رو دستی تنظیم می‌کردم و کلی با نصب PHP و Nginx دست‌وپنجه نرم کردم. وقتی با Laravel Forge آشنا شدم، انگار یه دنیای جدید جلوم باز شد! تو یه پروژه داشتم یه اپلیکیشن وبلاگ می‌ساختم و با Forge تو کمتر از یه ساعت سایتم رو سرور بود، با SSL و همه تنظیمات لازم. حالا بیاید ببینیم چطور می‌تونید از این ابزار استفاده کنید و از دردسرهای تنظیم دستی سرور خلاص بشید!

پیش‌نیازها

قبل از شروع، این موارد رو آماده کنید:

  • یه حساب کاربری تو Laravel Forge (می‌تونید از سایت forge.laravel.com ثبت‌نام کنید).

  • یه پروژه لاراول که تو یه مخزن Git (مثل GitHub، GitLab یا Bitbucket) آپلود شده.

  • یه سرور (مثل DigitalOcean، AWS یا Linode) که قراره پروژه‌تون روش مستقر بشه.

  • یه دامنه (اختیاری، برای تنظیم DNS و SSL).

  • تنظیمات دیتابیس (مثل MySQL) که تو پروژه‌تون استفاده کردید.

قدم اول: ساخت سرور در Laravel Forge

بعد از ورود به حساب Forge، این مراحل رو دنبال کنید:

  1. ایجاد سرور جدید: تو داشبورد Forge، روی Create Server کلیک کنید.

  2. انتخاب ارائه‌دهنده سرور: Forge از ارائه‌دهنده‌های مختلفی مثل DigitalOcean، AWS، Linode و Hetzner پشتیبانی می‌کنه. من خودم معمولاً از DigitalOcean استفاده می‌کنم چون تنظیمش ساده‌ست. یه ارائه‌دهنده انتخاب کنید و مشخصات سرور (مثل اندازه و منطقه) رو وارد کنید.(البت این که ایرانی هم هستیم خالی از لطف نیست )

  3. تنظیمات اولیه: Forge به صورت خودکار PHP، Nginx، MySQL و بقیه پیش‌نیازها رو نصب می‌کنه. کافیه چند دقیقه صبر کنید تا سرور آماده بشه.

یه تجربه از خودم: یه بار یه سرور با رم کم انتخاب کردم و موقع نصب وابستگی‌ها به مشکل خوردم. همیشه سروری انتخاب کنید که حداقل 1GB رم داشته باشه!

قدم دوم: اتصال مخزن Git

برای استقرار پروژه، باید مخزن Git پروژه‌تون رو به Forge وصل کنید:

  1. تو داشبورد Forge، روی Sites کلیک کنید و Create Site رو بزنید.

  2. دامنه یا زیردامنه (مثل example.com یا app.example.com) رو وارد کنید. اگه دامنه ندارید، می‌تونید از IP سرور استفاده کنید.

  3. تو بخش Git Repository، لینک مخزن Git پروژه‌تون (مثل https://github.com/username/laravel-app.git) رو وارد کنید.

  4. Forge از شما می‌پرسه که کدوم شاخه (مثل main یا master) رو مستقر کنه. شاخه درست رو انتخاب کنید.

بعد از اتصال، Forge پروژه رو از مخزن می‌کشه و تو پوشه‌ای مثل /home/forge/example.com قرار می‌ده.

قدم سوم: تنظیمات محیطی (.env)

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

  1. تو بخش Environment تو Forge، فایل .env پروژه رو وارد کنید. یه نمونه فایل .env:

APP_NAME=Laravel
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=https://example.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=forge
DB_PASSWORD=your_secure_password
  1. برای تولید APP_KEY:

php artisan key:generate

Forge این دستور رو خودش می‌تونه اجرا کنه. یه تجربه از خودم: یه بار APP_DEBUG=true رو تو محیط پروداکشن گذاشتم و خطاهای حساس رو سایت نشون داد. همیشه تو پروداکشن APP_DEBUG رو false کنید!

قدم چهارم: تنظیم دیتابیس

برای تنظیم دیتابیس:

  1. تو داشبورد Forge، به بخش Database برید و یه دیتابیس جدید (مثل laravel) بسازید.

  2. نام کاربری و رمز دیتابیس رو تو فایل .env وارد کنید.

  3. Migrationها رو اجرا کنید:

php artisan migrate --force

این دستور Migrationها رو بدون درخواست تأیید اجرا می‌کنه. من یه بار فراموش کردم دیتابیس رو درست تنظیم کنم و خطای اتصال گرفتم. همیشه مطمئن شید تنظیمات دیتابیس تو .env درست باشه!

قدم پنجم: نصب وابستگی‌ها

Forge به صورت خودکار Composer و NPM رو اجرا می‌کنه، اما می‌تونید دستی هم چک کنید:

  1. تو بخش Deploy Script تو Forge، مطمئن شید این خطوط وجود دارن:

cd /home/forge/example.com
git pull origin main
composer install --no-interaction --prefer-dist --optimize-autoloader --no-dev
npm ci
npm run build
php artisan migrate --force
  1. روی Deploy Now کلیک کنید تا پروژه مستقر بشه.

یه تجربه از خودم: یه بار فراموش کردم npm run build رو تو اسکریپت بذارم و فایل‌های CSS و JS کامپایل نشدن. همیشه این خط رو تو اسکریپت استقرار اضافه کنید!

قدم ششم: تنظیم SSL برای امنیت

برای فعال کردن HTTPS:

  1. تو بخش SSL تو Forge، روی Let’s Encrypt کلیک کنید.

  2. دامنه‌تون رو وارد کنید و SSL رو فعال کنید. Forge گواهی SSL رایگان رو خودش نصب می‌کنه.

  3. تو فایل .env مطمئن شید که APP_URL با https:// شروع می‌شه.

من تو یه پروژه SSL رو دستی نصب کردم و کلی دردسر کشیدم. Let’s Encrypt تو Forge این کار رو خیلی راحت کرده!

قدم هفتم: بهینه‌سازی‌های اضافی

برای بهتر کردن عملکرد:

  1. کش کردن تنظیمات:

php artisan config:cache
php artisan route:cache
php artisan view:cache
  1. فعال کردن Redis برای کش (اختیاری):

CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379

تو Forge، می‌تونید Redis رو از بخش Server Management نصب کنید.

  1. تنظیمات Queue: برای کارهای سنگین (مثل ارسال ایمیل)، از Queue استفاده کنید. تو Forge، یه Worker تو بخش Queue اضافه کنید و این تنظیمات رو تو .env بذارید:

QUEUE_CONNECTION=redis

من تو یه پروژه داشتم ایمیل‌های زیادی می‌فرستادم و بدون Queue سایت کند می‌شد. Queue با Redis کلی عملکرد رو بهتر کرد!

نکات تکمیلی

  • مانیتورینگ: از Laravel Telescope یا New Relic برای مانیتورینگ عملکرد استفاده کنید. تو Forge می‌تونید Telescope رو به‌راحتی نصب کنید.

  • بکاپ: تو بخش Backups تو Forge، بکاپ‌های خودکار برای دیتابیس تنظیم کنید. من یه بار دیتابیس رو از دست دادم و چون بکاپ داشتم، نجات پیدا کردم!

  • به‌روزرسانی‌ها: همیشه سرور و پکیج‌ها رو به‌روز نگه دارید. تو Forge می‌تونید از Server Management آپدیت‌ها رو اعمال کنید.

امیدوارم این آموزش بهتون کمک کرده باشه که پروژه لاراول‌تون رو راحت روی سرور بذارید! اگه سوالی دارید یا جایی گیر کردید، تو کامنت‌ها بپرسید. من همیشه از بازخوردهای شما کلی چیز جدید یاد می‌گیرم!

موفق باشید و به کدنویسی ادامه بدید!