التثبيت على cPanel أو الاستضافة المشتركة
التثبيت على cPanel
تحتاج إلى PHP 8.4، وقاعدة بيانات MySQL، والقدرة على إضافة مهام cron. لا تحتاج إلى Redis أو Docker أو PostgreSQL أو صلاحية الوصول إلى shell لعملية طويلة الأمد.
1. الرفع وتحديد جذر المستند (document root)
ارفع حزمة الإصدار خارج public_html، ثم وجه جذر مستند نطاقك إلى دليل public/ الخاص بالتطبيق. إذا كان مضيفك لا يسمح لك بنقل جذر المستند، ضع محتويات public/ في public_html وقم بتحديث المسارين في أعلى index.php.
2. تهيئة قاعدة البيانات والمشغلات (drivers)
في .env، استخدم MySQL ومشغلات no-Redis:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=your_database
DB_USERNAME=your_user
DB_PASSWORD=your_password
CACHE_STORE=database
SESSION_DRIVER=database
QUEUE_CONNECTION=database
BROADCAST_CONNECTION=log
اترك قيم REDIS_* غير محددة. ثم قم بتشغيل المثبت، الذي يقوم بإنشاء المخطط (schema) وأول مسؤول لك.
3. إضافة مهمتي cron
لا يمكن للاستضافة المشتركة إبقاء العامل (worker) قيد التشغيل، لذا تقوم مهمة cron بتفريغ قائمة الانتظار بدلاً من ذلك. قم بتسمية كل قائمة انتظار — حيث أن queue:work المجرد يقرأ فقط default قائمة الانتظار وسيترك مهام المحاسبة وCRM دون معالجة بصمت:
# every minute — background jobs
* * * * * cd /home/youruser/storeconsole && php artisan queue:work --queue=default,accounting,crm-default --stop-when-empty --max-time=55 >/dev/null 2>&1
# every minute — scheduled tasks
* * * * * cd /home/youruser/storeconsole && php artisan schedule:run >/dev/null 2>&1
--stop-when-empty تسمح للعامل بالخروج بمجرد تفريغ قائمة الانتظار، حتى لا تتراكم المهام. لا يتم استخدام Horizon في هذا الإعداد؛ فهو يتطلب Redis.
4. التحقق من ذلك
قم بتشغيل php artisan about. يجب أن تظهر جميع عناصر التخزين المؤقت (Cache)، والجلسة (session)، وقائمة الانتظار (queue)، وقاعدة البيانات المشغلات التي حددتها أعلاه، دون وجود إدخال لـ Redis. سجل الدخول إلى لوحة التحكم وتأكد من أن قائمة الانتظار يتم تفريغها تحت الإعدادات ← النظام.

