كلاود
أدلة

نشر تطبيق Laravel على سيرفر سعودي: دليل كامل

كلاود|٦ أبريل ٢٠٢٦|4 دقائق قراءة|٤٢٦ مشاهدة
نشر تطبيق Laravel على سيرفر سعودي: دليل كامل

من إعداد السيرفر لـ Nginx + PHP-FPM + MySQL + SSL + Queue Worker + Scheduler. نشر Laravel خطوة بخطوة.

لماذا تنشر تطبيق Laravel على سيرفر سعودي؟

Laravel هو أكثر إطار عمل PHP استخداماً في العالم العربي. أغلب الأنظمة المخصصة في السعودية — من أنظمة ERP إلى بوابات العملاء — مبنية بـ Laravel. لكن كثير من المطورين ينشرونها على سيرفرات في أمريكا أو أوروبا بدون التفكير في التبعات.

نشر تطبيقك على سيرفر سعودي يعطيك: زمن استجابة 8ms بدل 150ms، توافق مع متطلبات توطين البيانات، وإمكانية الربط مع الأنظمة الحكومية مثل النفاذ الوطني.

المتطلبات الأساسية

مواصفات السيرفر

حجم التطبيقالمعالجالذاكرةالتخزينالتكلفة السنوية
صغير (حتى 1,000 مستخدم)2 vCPU4 GB40 GBأسعار تنافسية — الأسعار والباقات
متوسط (1,000-10,000)4 vCPU8 GB100 GB1بأسعار مناسبة — الأسعار والباقات
كبير (10,000+)8 vCPU16 GB200 GB19,500 ريال

البرمجيات المطلوبة

  • نظام التشغيل: Ubuntu 24.04 LTS (الأكثر دعماً وتوثيقاً)
  • PHP 8.3+ مع الامتدادات المطلوبة: mbstring, xml, curl, zip, bcmath, gd, intl
  • Composer 2.x لإدارة الحزم
  • Nginx (أسرع من Apache لتطبيقات Laravel)
  • MySQL 8.0 أو PostgreSQL 16 (PostgreSQL أسرع للاستعلامات المعقدة)
  • Redis للتخزين المؤقت وإدارة الجلسات والطوابير
  • Supervisor لتشغيل Queue Workers
  • Node.js 20 LTS لبناء الواجهة الأمامية (إذا كنت تستخدم Vite)

خطوات النشر: من الصفر إلى الإنتاج

المرحلة 1: إعداد السيرفر

بعد استلام بيانات الدخول من كلاود (cloud.net.sa)، أول الخطوات:

  1. تحديث النظام بالكامل
  2. إنشاء مستخدم غير root للنشر (لا تشغّل التطبيق بـ root)
  3. إعداد جدار الحماية: السماح فقط بالمنافذ 22 (SSH)، 80 (HTTP)، 443 (HTTPS)
  4. إعداد مفتاح SSH وتعطيل دخول root بكلمة مرور
  5. تثبيت fail2ban للحماية من التخمين

المرحلة 2: تثبيت البرمجيات

ثبّت PHP مع كل الامتدادات من مستودع Ondrej PPA. ثبّت Nginx من المستودع الرسمي. ثبّت MySQL أو PostgreSQL حسب اختيارك. ثبّت Redis وفعّله كخدمة تعمل تلقائياً.

المرحلة 3: إعداد Nginx

إعداد Nginx لـ Laravel يحتاج انتباه لعدة نقاط:

  • الجذر (root) يشير لمجلد public في مشروعك
  • توجيه كل الطلبات لـ index.php (Laravel routing)
  • منع الوصول المباشر لملفات .env و .git
  • تفعيل ضغط gzip للاستجابات
  • إعداد رؤوس الأمان: X-Frame-Options, X-Content-Type-Options, Strict-Transport-Security

المرحلة 4: نشر التطبيق

  1. استنسخ المشروع من Git في مجلد النشر
  2. نفّذ composer install --optimize-autoloader --no-dev
  3. انسخ ملف .env وعدّل إعدادات قاعدة البيانات والتخزين المؤقت
  4. ولّد مفتاح التطبيق بأمر php artisan key:generate
  5. نفّذ المهاجرات: php artisan migrate --force
  6. ابنِ الواجهة الأمامية: npm install && npm run build
  7. اضبط الصلاحيات: مجلدات storage و bootstrap/cache قابلة للكتابة من المستخدم www-data

المرحلة 5: التحسينات للإنتاج

هذه الأوامر ضرورية وتحسّن الأداء بشكل ملحوظ:

  • php artisan config:cache — يجمّع ملفات الإعداد في ملف واحد
  • php artisan route:cache — يجمّع جدول التوجيه
  • php artisan view:cache — يجمّع قوالب Blade
  • php artisan event:cache — يجمّع أحداث التطبيق
  • php artisan optimize — يشغّل كل التحسينات دفعة واحدة

إعداد SSL (شهادة الحماية)

Let's Encrypt مجاني ومعتمد. ثبّت Certbot وفعّل الشهادة مع التجديد التلقائي كل 60 يوماً. لا يوجد سبب لتشغيل موقع بدون HTTPS في 2026.

إعداد الطوابير (Queues)

Laravel يعتمد على الطوابير لتنفيذ المهام الثقيلة بشكل غير متزامن: إرسال البريد، معالجة الصور، توليد التقارير. إعداد Supervisor لتشغيل queue:work والتأكد من إعادة التشغيل التلقائي عند الفشل.

إعداد الجدولة (Task Scheduling)

أضف أمر php artisan schedule:run لـ crontab ليعمل كل دقيقة. هذا يتيح لـ Laravel تنفيذ المهام المجدولة (تنظيف الجلسات، إرسال الإشعارات، التقارير الدورية).

النسخ الاحتياطي

  • قاعدة البيانات: نسخة يومية + قبل كل نشر جديد
  • ملفات التخزين (storage/app): نسخة يومية
  • ملف .env: نسخة محفوظة بأمان (يحتوي مفاتيح حساسة)
  • خدمة النسخ الاحتياطي من كلاود: تفعيلها لأمان إضافي

المراقبة

  • Laravel Telescope للتطوير: يسجّل كل الطلبات والاستعلامات والاستثناءات
  • Laravel Pulse للإنتاج: لوحة مراقبة مدمجة تعرض أداء التطبيق لحظياً
  • مراقبة السيرفر: استخدام أداء المعالج والذاكرة والقرص — تنبيه عند 80%

النشر التلقائي (CI/CD)

للفرق المتقدمة، اربط مستودع Git بأداة نشر تلقائي:

  • GitHub Actions: تشغيل الاختبارات + النشر التلقائي عند الدمج في الفرع الرئيسي
  • Laravel Forge: خدمة مدفوعة تدير السيرفر والنشر بالكامل
  • سكربت نشر مخصص: أبسط خيار — سكربت bash يسحب التحديث ويعيد بناء التطبيق

الخلاصة

نشر تطبيق Laravel على سيرفر سعودي عملية مباشرة إذا اتبعت الخطوات بترتيب. السيرفر جاهز بشكل تلقائي وسريع من كلاود، الإعداد يحتاج ساعة واحدة، والنتيجة: تطبيق يعمل بزمن استجابة 8ms، بيانات داخل المملكة، وبنية إنتاج جاهزة للتوسع.

--- ### ابدأ الآن جاهز تبني مشروعك؟ اختر خادمك السحابي بالمواصفات اللي يحتاجها تطبيقك، أو راجع الباقات والأسعار.
مشاركة