# 🔧 دليل التثبيت - نظام مقايسة مشاريع IoT ## المتطلبات الأساسية ### البرمجيات المطلوبة - ✅ PHP 7.4 أو أحدث - ✅ MySQL 5.7 أو MariaDB 10.2 أو أحدث - ✅ Apache/Nginx - ✅ متصفح حديث (Chrome, Firefox, Safari, Edge) ### الإضافات المطلوبة لـ PHP ``` - PDO - PDO_MySQL - JSON - mbstring ``` --- ## طريقة التثبيت ### الطريقة 1: التثبيت التلقائي (موصى به) ⭐ #### الخطوة 1: التحقق من الاتصال بقاعدة البيانات تأكد من إعدادات قاعدة البيانات في: ``` backend/config/database.php ``` يجب أن تحتوي على: ```php private $host = 'localhost'; private $db_name = 'ecommerce'; // اسم قاعدة البيانات private $username = 'root'; // اسم المستخدم private $password = ''; // كلمة المرور private $port = 3308; // المنفذ ``` #### الخطوة 2: تشغيل ملف الإعداد **عبر سطر الأوامر:** ```bash cd /path/to/project php backend/database/setup_iot_estimation.php ``` **أو عبر المتصفح:** ``` http://localhost/backend/database/setup_iot_estimation.php ``` #### الخطوة 3: التحقق من النجاح يجب أن ترى: ``` ✅ Database connected ✅ Table 1 created ✅ Table 2 created ✅ Table 3 created ✅ Table 4 created ✅ Table 5 created ✅ Inserted 12 device templates ✅ Inserted 4 room templates ✅ iot_projects (0 records) ✅ iot_project_rooms (0 records) ✅ iot_project_devices (0 records) ✅ iot_device_templates (12 records) ✅ iot_room_templates (4 records) 🎉 Setup completed successfully! ``` --- ### الطريقة 2: التثبيت اليدوي #### الخطوة 1: إنشاء الجداول قم بتنفيذ ملف SQL: ```bash mysql -u root -p ecommerce < backend/database/create_iot_estimation_tables.sql ``` أو عبر phpMyAdmin: 1. افتح phpMyAdmin 2. اختر قاعدة البيانات 3. اذهب إلى تبويب "SQL" 4. انسخ محتوى ملف `create_iot_estimation_tables.sql` 5. اضغط "تنفيذ" #### الخطوة 2: التحقق من الجداول تأكد من إنشاء الجداول التالية: - iot_projects - iot_project_rooms - iot_project_devices - iot_device_templates - iot_room_templates --- ## التحقق من التثبيت ### 1. اختبار الاتصال بقاعدة البيانات ```bash php backend/database/test-connection.php ``` يجب أن ترى: ``` ✅ Database connected! Tables found: X ✅ iot_projects exists ✅ iot_project_rooms exists ✅ iot_project_devices exists ✅ iot_device_templates exists ✅ iot_room_templates exists ``` ### 2. الوصول للنظام افتح المتصفح وانتقل إلى: ``` http://localhost/backend/admin/iot-estimation/ ``` يجب أن ترى صفحة قائمة المشاريع. --- ## استكشاف الأخطاء ### المشكلة: خطأ في الاتصال بقاعدة البيانات **الأعراض:** ``` ❌ Database connection failed! ``` **الحلول:** 1. تحقق من إعدادات قاعدة البيانات في `backend/config/database.php` 2. تأكد من تشغيل خادم MySQL/MariaDB 3. تحقق من اسم المستخدم وكلمة المرور 4. تأكد من وجود قاعدة البيانات **اختبار الاتصال:** ```bash mysql -u root -p -e "SHOW DATABASES;" ``` --- ### المشكلة: الجداول غير موجودة **الأعراض:** ``` ❌ iot_projects NOT FOUND ``` **الحلول:** 1. أعد تشغيل ملف الإعداد: ```bash php backend/database/setup_iot_estimation.php ``` 2. أو قم بالتثبيت اليدوي عبر SQL --- ### المشكلة: خطأ في الصلاحيات **الأعراض:** ``` Access denied for user 'root'@'localhost' ``` **الحلول:** 1. تحقق من كلمة مرور MySQL 2. امنح الصلاحيات: ```sql GRANT ALL PRIVILEGES ON ecommerce.* TO 'root'@'localhost'; FLUSH PRIVILEGES; ``` --- ### المشكلة: خطأ في المنفذ **الأعراض:** ``` Can't connect to MySQL server on 'localhost:3308' ``` **الحلول:** 1. تحقق من المنفذ الصحيح: ```bash mysql -u root -p -e "SHOW VARIABLES LIKE 'port';" ``` 2. عدّل المنفذ في `backend/config/database.php` --- ### المشكلة: صفحة بيضاء **الأعراض:** صفحة فارغة بدون أخطاء **الحلول:** 1. فعّل عرض الأخطاء: ```php error_reporting(E_ALL); ini_set('display_errors', 1); ``` 2. تحقق من سجلات الأخطاء: ```bash tail -f /var/log/apache2/error.log ``` --- ## الإعدادات المتقدمة ### تغيير اسم قاعدة البيانات 1. عدّل `backend/config/database.php`: ```php private $db_name = 'your_database_name'; ``` 2. أعد تشغيل ملف الإعداد --- ### تغيير بادئة الجداول إذا كنت تريد إضافة بادئة للجداول (مثل `iot_est_`): 1. عدّل ملف SQL: ```sql CREATE TABLE IF NOT EXISTS iot_est_projects ... ``` 2. عدّل جميع الاستعلامات في ملفات PHP --- ### تفعيل HTTPS 1. احصل على شهادة SSL 2. عدّل إعدادات Apache/Nginx 3. أعد توجيه HTTP إلى HTTPS: ```apache RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ``` --- ## النسخ الاحتياطي ### نسخ احتياطي لقاعدة البيانات ```bash # نسخ احتياطي كامل mysqldump -u root -p ecommerce > backup_$(date +%Y%m%d).sql # نسخ احتياطي لجداول IoT فقط mysqldump -u root -p ecommerce \ iot_projects \ iot_project_rooms \ iot_project_devices \ iot_device_templates \ iot_room_templates \ > iot_backup_$(date +%Y%m%d).sql ``` ### استعادة النسخة الاحتياطية ```bash mysql -u root -p ecommerce < backup_20251122.sql ``` --- ## الترقية ### من إصدار سابق 1. احتفظ بنسخة احتياطية: ```bash mysqldump -u root -p ecommerce > backup_before_upgrade.sql ``` 2. قم بتحديث الملفات 3. شغّل سكريبت الترقية (إن وجد): ```bash php backend/database/upgrade_to_v1.1.php ``` --- ## الأداء ### تحسين الأداء 1. **تفعيل Caching:** ```php // في config/database.php $this->conn->setAttribute(PDO::ATTR_PERSISTENT, true); ``` 2. **تحسين Indexes:** ```sql ANALYZE TABLE iot_projects; ANALYZE TABLE iot_project_rooms; ANALYZE TABLE iot_project_devices; ``` 3. **تفعيل Query Cache:** ```sql SET GLOBAL query_cache_size = 67108864; SET GLOBAL query_cache_type = 1; ``` --- ## الأمان ### تأمين التثبيت 1. **تغيير كلمة مرور قاعدة البيانات:** ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'strong_password'; ``` 2. **حذف ملفات الإعداد بعد التثبيت:** ```bash rm backend/database/setup_iot_estimation.php rm backend/database/test_iot_setup.php ``` 3. **تقييد الوصول للملفات الحساسة:** ```apache Require all denied ``` --- ## الدعم ### الحصول على المساعدة إذا واجهت مشاكل: 1. راجع قسم استكشاف الأخطاء أعلاه 2. تحقق من [الدليل الشامل](README.md) 3. راجع [الأسئلة الشائعة](QUICK-START.md#أسئلة-شائعة) 4. تواصل مع فريق الدعم --- ## قائمة التحقق قبل البدء بالاستخدام، تأكد من: - [ ] تم تثبيت PHP 7.4+ - [ ] تم تثبيت MySQL/MariaDB - [ ] تم إنشاء قاعدة البيانات - [ ] تم تعديل إعدادات الاتصال - [ ] تم تشغيل ملف الإعداد بنجاح - [ ] تم التحقق من وجود الجداول - [ ] تم التحقق من القوالب الجاهزة - [ ] يمكن الوصول للنظام عبر المتصفح - [ ] تم اختبار إنشاء مشروع تجريبي - [ ] تم أخذ نسخة احتياطية --- ## الخلاصة التثبيت بسيط ومباشر! في معظم الحالات، يكفي تشغيل: ```bash php backend/database/setup_iot_estimation.php ``` وستكون جاهزاً للبدء! 🚀 --- **تم التطوير بواسطة:** فريق Roz Skin **الإصدار:** 1.0.0 **آخر تحديث:** 2025-11-22