السلام عليكم و رحمة الله و بركاته.....
الكثير من الناس يحاولون بارك الله فيهم تطوير نسخ جاهزة بالهاكات و طرحها للتحميل لكي يستفيد منها أخوانهم و يوفروا عليهم عناء تركيب الهاكات و المشاكل التي تواجههم فيها. و قد سأل الكثير من المطورين عن طريقة عمل ملف تثبيت install بحيث يتم تثبيت النسخة مباشرة كما لو كانت النسخة غير مطورة، و كما هو الحال مع نسخة المهندس بلس المطورة. لذا سنقوم في هذا الدرس باذن الله بشرح الطريقة مع العلم بأنها ليست بالسهلة و تحتاج الخبرة الكافية في البرمجة بلغة php و قواعد البيانات (و سيقتصر الشرح على قواعد بيانات MySQL فقط).
مقدمة:
طريقة تثبيت منتديات phpBB قد اختلفت منذ الاصدار 2.0.4 و ما بعده، فأصبح ملف التثبيت install.php بداخل المجلد install بحيث يكون رابط التثبيت هو
[ فقط المشتركين فى المنتدى يمكنهم رؤية الرابط . اضعط هنا للتسجيل ... ] . و لو فتحت ملف install.php بأحد محررات النصوص و قرأته بتمعن ستجد أنه عند عمل التثبيت يتم قراءة أوامر انشاء و ادخال المعلومات الأساسية من أحد الملفات الموجودة بمجلد schemas بداخل المجلد install.
افتح مجلد schemas ستجد بداخله بعض الملفات و التي يكون اسمها xxxx_schema.sql أو xxxx_basic.sql حيث xxxx هو أسم أحد أنواع قواعد البيانات مثل mysql أو mssql أو غيرها. و كما قلنا سنقتصر في شرحنا على قواعد بيانات mysql لذا افتح ملف mysql_schema.sql و اقرأه بتمعن قليلاً. ستجد أن الملف يحتوي على معلومات انشاء الجداول الجديدة CREATE ، ثم افتح ملف mysql_basic.sql ستجد أنه يحتوي على معلومات ادخال البيانات في الجداول الخاصة بالمنتدى.
طريقة العمل:
:36_1_37:
عندما يتم طلب ملف install عن طريق المتصفح فانه يقوم بطلب بعض المعلومات المهمة لعمل التثبيت. و حالما ينتهي المستخدم من ادخال المعلومات (اسم قاعدة البيانات، اسم المستخدم، كلمة السر.... الخ) و ينقر زر التثبيت فانه يتم التأكد أولاً من وجود قاعدة البيانات و ذلك بمحاولة الاتصال بها، فان لم يتم ذلك ستظهر الرسالة المعروفة:
:36_1_4:
phpBB : Critical Error
Could not connect to the database
اما في حال تم الاتصال بقاعدة البيانات و تم التأكد من وجودها، فسيبدأ ملف install.php بقراءة محتويات ملف mysql_schema.sql (ذلك على افتراض أنك اخترت نوع قواعد البيانات هو mysql ) و تنفيذ الأوامر التي فيه حتى يتم الأنتهاء من تكوين جميع الجداول الخاصة بالنسخة. بعدها يبدأ ملف install.php بقراءة محتويات ملف mysql_basic.sql و تنفيذ الأوامر التي فيه فيتم ادخال جميع المعلومات الأساسية في قاعدة البيانات.
بعد الأنتهاء من ذلك، يقوم الملف install.php بتحديث بعض المعلومات في قاعدة البيانات مثل وقت انشاء المنتدى و اسم السيرفر و غيره، و كذلك يقوم بادخال معلومات مشرف عام المنتدى (و الذي تم ادخاله مباشرة قبل التثبيت) في قاعدة البيانات.
حالما يتم الانتهاء من ادخال و تحديث جميع المعلومات المطلوبة في قاعدة البيانات، يقوم الملف install.php بفتح ملف config.php و الذي يكون خالياً في البداية، و يكتب فيه بعض المعلومات الهامة مثل اسم السوابق للجداول table prefix و اسم قاعدة البيانات و مستضيفها، اسم مستخدمها و كلمة السر له. لذلك يجب عليك أن تعطي ذلك الملف (config.php) التصريح 666 قبل بدأ التثبيت ليتمكن ملف install.php من الكتابة فيه، ثم بعد الانتهاء تعيد تصريح الملف الى 644 حتى لا يقوم أحد بالعبث بمحتويات هذا الملف
و في النهاية، يتم التحويل الى صفحة الادارة admin/index.php و قبلها يطلب منك حذف المجلدين install و contrib .
:36_1_11: :36_1_11: :36_1_11:
كيف أجعل التثبيت للنسخة المطورة يتم مباشرة؟:
كل ما عليك هو أن تضيف أوامر انشاء الجداول الجديدة الخاصة بالهاكات CREATE و أوامر تعديل الجداول القديمة لكي يعمل الهاك ALTER الى ملف mysql_schema.sql فيتم انشاء جميع الجداول عندما يتم قراءة هذا الملف ، ثم اضافة أوامر ادخال المعلومات الخاصة بالهاكات INSERT الى ملف mysql_basic.sql فيتم ادخال المعلومات الأولية مباشرة عندما يتم قراءة هذا الملف. بالطبع يجب عليك أن تضيف كل أمر في سطر لوحده، و هكذا يتم تثبيت نسختك مباشرة بجميع الجداول الأضافية و محتوايتها الاساسية.
متفرقات مهمة:
الختام:
حاولنا في هذا الشرح أن نجعله سهلاً و ميسراً بقدر الإمكان حتى يتسنى لمن يقرأه أن يفهمه بكل سهولة. بالطبع فان الباب مفتوح لأي استفسار حول ما تم ذكره في الدرس، و لكن
عذراً فالباب مغلق في وجه من يأتي ليقول (ما هي الأوامر الخاصة بالهاك الفلاني) فلن أقوم باعداد ملف تثبيت لكل من يطور نسخة.
اذا كان سؤالك هو (ما هي الأوامر الخاصة بالهاك الفلاني) فالرد هو بكل بساطة : ابحث عن دروس في قواعد البيانات - لتعلم الطريقة الصحيحة لكتابة الأوامر - ثم ابحث في ملف التثبيت الخاص بالهاك
:36_1_3: :36_1_3: :36_1_3:
جميع الحقوق مفوظة لــ phpbb arebia
تقبلوا تحيات أخوكم
VB
:36_1_13: :36_1_13: :36_1_13: :36_1_13: