إنتقل إلى المحتوى الرئيسي

دليل التثبيت

هذا هو دليل التثبيت الكامل خطوة بخطوة لـ FeedbackPulse SaaS. اتبع كل خطوة بعناية.


قائمة التحقق قبل التثبيت

قبل البدء، تأكد من توافر:

  • خادم يستوفي جميع المتطلبات
  • اسم نطاق يشير إلى عنوان IP الخادم
  • وصول SSH إلى خادمك (أو FTP لرفع الملفات)
  • قاعدة بيانات MySQL/MariaDB وبيانات اعتماد
  • حساب بريد إلكتروني SMTP (Gmail، Mailgun، Amazon SES، إلخ)
  • رمز شراء Envato الخاص بك (من طلب CodeCanyon)

الخطوة 1: رفع الملفات إلى خادمك

الخيار أ: استخدام SSH (موصى به)

# الاتصال بالخادم
ssh user@your-server-ip

# الانتقال إلى مجلد الويب
cd /var/www

# رفع الملف المضغوط واستخراجه
# (ارفع الملف zip عبر SCP أو SFTP أو wget من رابط مؤقت)
unzip feedbackpulse-saas.zip -d feedbackpulse-saas
cd feedbackpulse-saas

الخيار ب: استخدام FTP/SFTP

  1. اتصل بالخادم باستخدام FileZilla أو WinSCP أو ما شابه
  2. انتقل إلى مجلد الويب (عادةً /var/www/ أو /home/user/public_html/)
  3. ارفع مجلد feedbackpulse-saas المستخرج بالكامل
  4. تأكد من إمكانية الوصول إلى المجلد الفرعي public/

الخيار ج: استخدام cPanel File Manager

  1. سجّل الدخول إلى cPanel
  2. افتح File Manager ← انتقل إلى public_html (أو مجلد فرعي)
  3. ارفع الملف المضغوط
  4. استخرجه في مكانه
  5. مهم: ستحتاج إلى ضبط جذر المستند على مجلد public/ (راجع إعداد Apache)

الخطوة 2: ضبط صلاحيات الملفات

cd /var/www/feedbackpulse-saas

# ضبط الملكية (استبدل www-data بمستخدم خادم الويب)
# Apache: www-data | Nginx: www-data أو nginx
sudo chown -R www-data:www-data .

# ضبط صلاحيات المجلدات
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;

# جعل التخزين والذاكرة المؤقتة قابلين للكتابة
sudo chmod -R 775 storage bootstrap/cache

الخطوة 3: إعداد خادم الويب

يجب أن يشير خادم الويب إلى مجلد public/ داخل المشروع — وليس إلى جذر المشروع. هذا متطلب أمني بالغ الأهمية.

اختر خادم الويب:

الإصدار السريع:

Apache:

DocumentRoot /var/www/feedbackpulse-saas/public

Nginx:

root /var/www/feedbackpulse-saas/public;

بعد الإعداد، أعد تشغيل خادم الويب:

# Apache
sudo systemctl restart apache2

# Nginx
sudo systemctl restart nginx

الخطوة 4: الرابط الرمزي للتخزين (تلقائي)

يحاول مثبّت الويب تلقائيًا إنشاء الرابط الرمزي للتخزين أثناء الخطوة الأخيرة. لا تحتاج إلى تشغيل أي أوامر.

  • VPS/مخصص: يُنشأ الرابط الرمزي تلقائيًا. لا حاجة لأي إجراء.
  • الاستضافة المشتركة: إذا كانت الروابط الرمزية معطّلة على مزودك، يستخدم FeedbackPulse بديلاً مدمجًا بـ PHP لتقديم الملفات المرفوعة (الشعارات والصور). كل شيء يعمل — لا حاجة لأي إجراء.

ستُخبرك صفحة اكتمال المثبّت بما إذا كان الرابط الرمزي قد أُنشئ أو إذا كان البديل نشطًا.


الخطوة 5: تشغيل مثبّت الويب

افتح متصفحك وانتقل إلى:

https://yourdomain.com/install

سيرشدك المثبّت عبر 5 خطوات. راجع جولة مثبّت الويب للحصول على لقطات شاشة وشروحات تفصيلية.

ملخص سريع:

الخطوة 1: التحقق من الترخيص

  • أدخل رمز شراء Envato/CodeCanyon الخاص بك
  • يتحقق هذا من ترخيصك مع Envato API
  • إذا لم تكن تستخدم Envato، قد يكون هناك خيار للتخطي

الخطوة 2: فحص المتطلبات

  • يتحقق المثبّت تلقائيًا من:
    • اعتماديات Vendor (وجود vendor/autoload.php)
    • إصدار PHP (8.2+)
    • امتدادات PHP المطلوبة
    • صلاحيات المجلدات (storage، bootstrap/cache)
    • بيئة الاستضافة (يكتشف الاستضافة المشتركة، يُظهر معلومات التوافق)
  • أصلح أي عناصر فاشلة قبل المتابعة

الخطوة 3: إعداد قاعدة البيانات

  • أدخل بيانات اعتماد قاعدة البيانات:
    • المضيف: 127.0.0.1 (أو localhost)
    • المنفذ: 3306
    • اسم قاعدة البيانات: feedbackpulse (أنشئها أولاً!)
    • اسم المستخدم: اسم مستخدم قاعدة البيانات
    • كلمة المرور: كلمة مرور قاعدة البيانات
  • سيُشغّل المثبّت جميع عمليات الترحيل ويُلقّح البيانات الافتراضية

أنشئ قاعدة البيانات أولاً:

CREATE DATABASE feedbackpulse CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

الخطوة 4: حساب المشرف

  • أنشئ حساب المشرف العام:
    • الاسم: اسمك
    • البريد الإلكتروني: [email protected]
    • كلمة المرور: كلمة مرور قوية (8 أحرف على الأقل)
  • هذا هو الحساب الذي ستستخدمه لإدارة المنصة بأكملها

الخطوة 5: إعداد البريد الإلكتروني

  • أدخل تفاصيل SMTP:
    • المضيف: مثل smtp.gmail.com
    • المنفذ: 587 (TLS) أو 465 (SSL)
    • اسم المستخدم: اسم مستخدم SMTP الخاص بك
    • كلمة المرور: كلمة مرور SMTP أو كلمة مرور التطبيق
    • التشفير: TLS (موصى به)
    • عنوان الإرسال: [email protected]
  • يمكنك تخطي هذا والإعداد لاحقًا في إعدادات الإدارة

الاكتمال

  • يُبدّل برامج تشغيل الجلسة والذاكرة المؤقتة إلى database للإنتاج
  • يُنشئ CRON_TOKEN لنقطة نهاية cron المستندة إلى الويب
  • يُنشئ ملف storage/installed.lock (يمنع إعادة التشغيل)
  • يُظهر صفحة نجاح مع تعليمات إعداد cron job (خيارا CLI وURL) والخطوات التالية

الخطوة 6: إعداد Cron Job

يحتاج FeedbackPulse إلى cron job لتشغيل المهام المجدولة. هذا ضروري لـ:

  • إرسال ملخصات البريد (يومية/أسبوعية)
  • معالجة انتهاء صلاحية التجربة
  • تطبيق سياسات الاحتفاظ بالبيانات
  • إرسال تنبيهات الاستخدام
  • تشغيل اكتشاف شذوذات الذكاء الاصطناعي
  • إرسال التقارير المجدولة

الخيار 1 — أمر CLI (VPS / مخصص):

crontab -e

أضف هذا السطر:

* * * * * cd /var/www/feedbackpulse-saas && php artisan schedule:run >> /dev/null 2>&1

الخيار 2 — URL/wget (الاستضافة المشتركة):

إذا كان لوح الاستضافة يدعم فقط cron المستند إلى URL، استخدم نقطة نهاية cron الويب (يُنشأ CRON_TOKEN تلقائيًا أثناء التثبيت ويُعرض على صفحة الاكتمال):

wget -q -O /dev/null "https://yourdomain.com/cron/run?token=YOUR_CRON_TOKEN"

نصيحة: تُظهر صفحة اكتمال المثبّت كلا الخيارين مع مسار الخادم الفعلي والرمز مملوءَين مسبقًا. انسخهما من هناك!

للمزيد من التفاصيل، راجع Cron Jobs وعمال قائمة الانتظار.


الخطوة 7: إعداد SSL (HTTPS)

يُوصى بشدة بـ HTTPS للأمان، خاصةً لأن FeedbackPulse يتعامل مع بيانات المصادقة والدفع.

استخدام Let's Encrypt (مجاني)

# تثبيت Certbot
sudo apt install certbot python3-certbot-nginx # لـ Nginx
# أو
sudo apt install certbot python3-certbot-apache # لـ Apache

# الحصول على الشهادة
sudo certbot --nginx -d yourdomain.com # لـ Nginx
# أو
sudo certbot --apache -d yourdomain.com # لـ Apache

سيُعدّ Certbot خادم الويب تلقائيًا لـ HTTPS ويُعدّ التجديد التلقائي.

للمزيد من التفاصيل، راجع شهادات SSL.


الخطوة 8: التحقق من التثبيت

اتبع قائمة التحقق هذه:

الفحصالكيفيةالنتيجة المتوقعة
تحميل صفحة الهبوطزر https://yourdomain.comرؤية صفحة الهبوط
عمل تسجيل الدخولزر https://yourdomain.com/loginتسجيل الدخول ببيانات المشرف العام
لوحة الإدارةزر https://yourdomain.com/admin/dashboardرؤية لوحة تحكم الإدارة
رابط التخزينزر https://yourdomain.com/storage/لا خطأ 404
فحص الصحةزر https://yourdomain.com/upرؤية نص "OK"
تشغيل Cronتحقق من الإدارة ← الإعداداتلا تحذيرات cron
عمل البريد الإلكترونيالإدارة ← الإعدادات ← البريد ← إرسال اختبارياستلام بريد اختباري

خطوات ما بعد التثبيت

بعد اكتمال التثبيت:

  1. راجع خطط الاشتراكالإدارة ← الخطط (عدّل التسعير والحدود والميزات)
  2. إعداد بوابات الدفعالإدارة ← الإعدادات ← المدفوعات (مفاتيح API لـ Stripe/PayPal)
  3. تخصيص صفحة الهبوطالإدارة ← صفحة الهبوط
  4. اختبار البريد الإلكترونيالإدارة ← الإعدادات ← البريد ← إرسال بريد اختباري
  5. إعداد DNS الشامل (اختياري) — للنطاقات الفرعية للمستأجرين. راجع إعداد DNS الشامل.
  6. إنشاء أول مستأجر — سجّل في /register في نافذة تصفح خاص

استكشاف أخطاء التثبيت وإصلاحها

المشكلةالحل
صفحة بيضاء فارغةتحقق من storage/logs/laravel.log للأخطاء. عادةً مشكلة صلاحيات.
خطأ 500 في الخادمفعّل وضع التصحيح مؤقتًا: اضبط APP_DEBUG=true في .env، ثم تحقق من الخطأ.
"Class not found"تأكد من وجود مجلد vendor/ وسلامته. أعد رفعه من الحزمة المُنزّلة إذا لزم الأمر.
رفض الاتصال بقاعدة البياناتتحقق من بيانات الاعتماد، تأكد من تشغيل MySQL، تحقق من أهمية localhost مقابل 127.0.0.1.
عدم تحميل المثبّتتأكد من إشارة جذر الويب إلى مجلد public/.
عدم تحميل CSS/JSامسح ذاكرة التخزين المؤقتة للمتصفح. إذا كانت الصور مفقودة، يتعامل البديل الاحتياطي معها تلقائيًا على الاستضافة المشتركة. على VPS، زر /update بصفتك مشرفًا عامًا لإعادة إنشاء الرابط الرمزي.
رفض الإذنشغّل أوامر chown وchmod من الخطوة 2 مرة أخرى.

للمزيد، راجع استكشاف الأخطاء وإصلاحها.


الخطوات التالية