اذهب إلى المحتوى

السؤال

نشر

قمت بنشر مشروع لارافيل Laravel على إستضافة وأريد تشغيل وضع الإصلاح maintenance mode في الوقت الحالي ولكن ليس لدي وصول إلى سطر أوامر في الخادم، لذا لا يمكنني استخدام Artisan بشكل مباشر.

هل هناك طريقة لتنشيط وضع الصيانة maintenance mode على موقع مبني بإستخدام لارافيل Laravel دون استخدام Artisan (أي من داخل الكود نفسه)؟

Recommended Posts

  • 1
نشر

يمكنك إضافة مسار مخصص عند الوصول إليه سيتم تنفيذ أمر Artisan لتغيير حالة وضع الإصلاح، وحماية هذا المسار بطريقة ما بحسب تطبيقك للوصول إليه فقط من المستخدم صاحب الصلاحية لذلك مثلًا كالتالي: 

// حماية الوصول للمسارات
Route::middleware('auth')->group(function(){
  // تنشيط وضع الإصلاح
  Route::get('/app-down', function(){
    Artisan::call('down');
  });

  // إيقاف وضع الإصلاح
  Route::get('/app-up', function(){
    Artisan::call('up');
  });
});

بعد ذلك وبعد تسجيل الدخول كمستخدم لديه صلاحية الوصول لتلك المسارات يمكنك الاتصال بالمسار التالي لتنشيط وضع الإصلاح (مع تبديل اسم النطاق بحسب تطبيقك):

http://domain.com/app-down

والمسار التالي لإيقاف ذلك الوضع وتشغيل التطبيق مجددًا

http://domain.com/app-up

 

  • 1
نشر

اضافة لما اشار اليه المدرب حسن، قد لا تواجه مشكلة بتنفيذ php artisan down لأن التطبيق ينتقل من وضع التمكين الى وضع التعطيل. قد تكون هنالك مشكلة باعادة تمكينه مجددا فالوصول الى اين تقوم بتشغيل php artisan up قد يكون هو الآخر معطلا ضمن وضع التصحيح. لتجنب هاته المشكلة يمكنك استثناء عنوان ال IP الخاص بالجهاز الذي سيقوم باعادة التمكين مجددا. يوجد الخيار --alow

php artisan down --allow=192.168.0.0

كطريقة ابسط اكثر. يمكنك مباشرة حذف ملف down الكائن بـ storage/framework. فعند تشغيل الامر php artisan down يتم انشاء هذا الملف. وعند الامر php artisan up سيتم حذفه.

يمكنك عمل ذلك يدويا دون اللجوء لواجهة Artisan لتنفيذ هاته الاوامر.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...