اربط المستودع واضبط المتغيرات ليُنشر التطبيق. تعمل الطوابير والمجدول أيضًا، دون cron يدوي ودون تذكرة لكل composer install.
هذه الأسطر الستة هي النشر كله: بلا SSH وبلا cron يدوي.
استضافة Laravel هي استضافة تجهز متطلبات إطار العمل مسبقًا: نسخة PHP المناسبة وComposer وartisan وجذر المستند على public وإمكانية تشغيل الأعمال الخلفية كالطوابير والمجدول. وهنا الفرق الحقيقي عن الاستضافة المشتركة: هناك لا تعيش PHP إلا مدة طلب واحد، ولا مكان لعامل دائم.
يعمل مشروع Laravel على ثلاثة أنواع من البنية: استضافة مشتركة للمواقع قليلة الزيارات، وخادم افتراضي للتحكم الكامل مقابل تكلفة الصيانة، ومنصة سحابية تقدم النشر والتوسع والمعالجة الخلفية دون إدارة خوادم. يعتمد الاختيار على حاجة المشروع إلى عامل طوابير دائم.
هذه قائمة الشراء. إن غاب بند منها عند مزوّد، سيظهر لاحقًا كخطأ لا في صفحة البيع.
يحتاج Laravel 11 إلى PHP 8.2 أو أحدث، مع تفعيل PDO وmbstring وopenssl وintl وgd وzip، وإمكانية تغيير النسخة لا تثبيتها.
إذا أشار النطاق إلى جذر المشروع صار .env والكود مقروءًا من الخارج. يجب أن يكون جذر المستند مجلد public.
يجب أن يتم تثبيت التبعيات وتشغيل migrate وconfig:cache وقت النشر، دون تذكرة.
مع Vite أو Mix تحتاج مكانًا لتشغيل npm ci وnpm run build، وإلا لم تُبنَ الأنماط.
تعتمد الطوابير على عملية طويلة الأمد. بدون عامل تبقى المهام في الطابور وينتظر المستخدم بلا نهاية.
يجب أن يعمل schedule:run كل دقيقة، وهنا عادةً يفشل cron المحدود في الاستضافة المشتركة.
يعمل التخزين على الملفات والطابور على قاعدة البيانات إلى حدّ ما. ومع حركة حقيقية يظهر فرق Redis.
ملفات المستخدمين على قرص الحاوية المحلي تختفي مع كل نشر، فمكانها S3.
لا أحدها أفضل بإطلاق. اقرأ الجدول بحسب ما يفعله مشروعك فعلاً.
| المعيار | استضافة مشتركة | خادم افتراضي | منصة لكسويا السحابية |
|---|---|---|---|
| الموارد | مشتركة مع عشرات المستخدمين | مخصصة تديرها بنفسك | مخصصة لكل مشروع |
| الطوابير والعوامل | غائبة عادةً أو محدودة | بـSupervisor، تعدّه بنفسك | مشروع منفصل للعامل |
| المجدول | cron محدود | cron كامل | استدعاء كل دقيقة |
| النشر | رفع يدوي أو Git على الخادم | سكربتات خاصة بك | push إلى المستودع وبناء تلقائي |
| الصيانة والأمان | عند المزوّد | عندك | عندنا |
| التكلفة | منخفضة وثابتة | منخفضة، لكن وقتك ليس كذلك | حسب الاستخدام، بالساعة |
لموقع شركة بسيط ببضع مئات من الزيارات يوميًا، تبقى الاستضافة المشتركة الأرخص. ومع الطوابير والعوامل والنشر المتكرر يتجاوز وقت صيانة الخادم فرق السعر.
ست خطوات من المستودع إلى النطاق، دون حاجة إلى SSH.
اربط GitHub أو GitLab أو Gitea واختر الفرع الرئيسي.
اختر نوع Laravel. إن كان للمستودع Dockerfile فحدّد مساره، وإلا استُخدم القالب الجاهز.
أدخل APP_KEY واتصال قاعدة البيانات وQUEUE_CONNECTION. تبقى الأسرار في اللوحة لا في المستودع.
يُبنى الإصدار وتُثبَّت التبعيات ويُنشر. سجل كل مرحلة متاح ويبيّن المرحلة الفاشلة.
أنشئ مشروع Supervisor يشغّل php artisan queue:work لتعالج المهام بعيدًا عن حركة الويب.
اربط نطاقك أو استخدم النطاق الفرعي المجاني؛ تُصدر شهادة SSL وتُجدَّد تلقائيًا.
خمسة إعدادات تفصل بين «يعمل على الخادم» و«يعمل في الإنتاج».
اجعل مشغّل الطابور Redis وشغّل العامل منفصلًا. تحتاج المهام الفاشلة إلى إعادة محاولة وسجلات.
يُستدعى schedule:run كل دقيقة وينفّذ kernel الخاص بك؛ لا حاجة لتعريف cron في لوحة.
يأخذ Reverb منفذًا ونطاقًا خاصًا ويعمل إلى جانب التطبيق. للأحمال الثقيلة افصل العامل عن خادم المقبس.
إن عملت على Redis فعّل Horizon أيضًا، واحمِ مساره بالمصادقة.
اضبط FILESYSTEM_DISK=s3 لتبقى الملفات بعد كل نشر ومشتركة بين الإصدارات.
تُحسب التكلفة حسب الموارد التي يستهلكها المشروع: المعالج والذاكرة والقرص والحركة، بالساعة. لا خطة ثابتة بسقف خفي؛ تختار التركيبة وتدفع مقابلها.
معظم انقطاع الانتقال يأتي من أمرين: البريد المعاملاتي وبوابة الدفع. خطط لهما منفصلين.
خذ نسخة من قاعدة البيانات وانسخ storage/app/public.
ارفع المستودع دون .env أو vendor.
اضبط APP_URL وSESSION_DOMAIN واتصال قاعدة البيانات الجديدة.
شغّل migrate --force ثم اختبر بوابة الدفع وتسجيل الدخول.
غيّر سجل النطاق وأبقِ الاستضافة القديمة حتى يستقر الجديد.
هذه أكثر الأخطاء تكرارًا في الدعم.
الحل
غالبًا APP_KEY فارغ أو storage غير قابل للكتابة. أنشئ المفتاح وصحّح صلاحيات المجلدات.
الحل
العامل متوقف أو QUEUE_CONNECTION يشير إلى مشغّل خاطئ. شغّل مشروع العامل وصحّح المشغّل.
الحل
كُتبت الملفات على قرص الحاوية المحلي. غيّر FILESYSTEM_DISK إلى S3.
الحل
نطاق الجلسة لا يطابق الحالي أو الوكيل غير موثوق. اضبط SESSION_DOMAIN والوكلاء الموثوقين.
الحل
الوصول إلى packagist من داخل إيران غير مستقر. نفّذ النشر في مجموعة ألمانيا.
الحل
لم تُنفَّذ خطوة بناء الواجهة أو بقي تخزين الإعدادات قديمًا. أضف npm run build وconfig:cache.
في المشتركة تعمل PHP لطلب واحد فقط ولا مكان لعامل دائم. استضافة Laravel تبقي الطوابير والمجدول وأوامر artisan تعمل.
اربط المستودع واضبط المتغيرات وشاهد أول نشر. النطاق الفرعي وSSL جاهزان من البداية.
ابدأ نشر Laravel