أنشئ منتدى بأمر واحد !!
بسم الله الرحمن الرحيم
لا بد أن مدراء السيرفيرات وخصوصا منهم مدراء الاستضافات المشتركة دائما ما يطلب منهم عملائهم تركيب منتدى على مساحتهم الخاصة، فصارت هذه العملية متعبة وروتينية وتسبب الملل لمدراء الخوادم، فهل يمكن إنشاء منتدى بأمر واحد ؟ أو بالأحرى سطر أوامر واحد
؟
نعم وبكل سهولة، لكن يجب الإعدادا لهذه المهمة جيدا، تابع معي ..
اللوازم:
- هدوء .
- فنجان قهوة أو شاي ساخن .
- ونسخة منتدى المفضلة لديك، يمكنك تحميل نسخة vBulletin 3.8.3 بالضغط هنا.
الأوامر التي نحتاجها في سطر الأوامر هي:
- طبعا الأمر cd للدخول إلى مجلد العميل
. - الأمر wget لجلب النسخة التي سوف نعدل عليها.
- أمر لإعطاء اسم مستخدم الحساب إلى متغير في لغة bash .
- أمر لإعطاء كلمة مرور مستخدم قاعدة البيانات بشكل عشوائي إلى متغير.
- بعض تعليمات mySQL من سطر الأوامر لإنشاء قاعدة البيانات ومستخدمها وكلمة مروره.
- الأمر unzip لفك الضغط وأيضا chown لتعديل مالك الملفات من الـroot .
- الأمر replace للتعديل على ملف config.php .
هذه هي الأوامر فقط
.
تجهيز النسخة
نبدأ بالتعديل على النسخة:
- قم بتحميل النسخة المفضلة لديك وقم بفك الضغط عنها واستخراج مجلد vb فقط .
- عدل على ملف config.php واستبدل قيم متغيرات قاعدة البيانات واسم المستخدم وكلمة مروره إلى DATABASE وUSERDB وPASSWORD على التوالي ليصبح شكل ملف config.php كالتالي:
1 2 3 4 5 6 7 8 9 10 11 12 | . . // قاعدة البيانات $config['Database']['dbname'] = 'DATABASE'; . . // اسم المستخدم $config['MasterServer']['username'] = 'USERDB'; // كلمة المرور $config['MasterServer']['password'] = 'PASSWORD'; . . |
- قم بضغط مجلد vb بصيغة zip وارفعه إلى موقعك ليكون رابطه كالتالي:
انتهينا من تجهيز النسخة وهو الجزء الأطول.
تجهيز الأمر
الأمر بالتفصيل يتكون من مجموعة أوامر متصلة وهي على التوالي:
- نقوم بالدخول إلى مجلد الرئيسي للعميل بالأمر
cd /home/XXXX/public_html/
- نقوم بإعطاء اسم المستخدم إلى المتغير USER بالأمر
USER=`ls -lia | head -2 | tail -1 | awk '{print $4}'`
- نقوم بتويد كلمة مرور عشوائية بطول 16 حرفا ونعطيها للمتغير PASS بالأمر
PASS=`</dev/urandom tr -dc A-Za-z0-9 | head -c16`
- كما نقوم بإعطاء اسم قاعدة البيانات بصيغة لوحات تحكم cPanel إلى المتغير DB بالأمر:
DB=$USER""_dbvb
- نقوم بإنشاء قاعدة بيانات جديدة باسم قيمة المتغير DB الذي أنشأناه سابقا بالأمر
mysql -e "CREATE DATABASE $DB"
- نقوم بإنشاء مستخدم اسمه هو قيمة المتغير DB وكلمة مروروه هي قيمة المتغير PASS وربطه مع قاعدة البيانات بالأمر
mysql -e "GRANT ALL ON $DB.* TO $DB@localhost IDENTIFIED BY '$PASS'"
- نقوم بجلب النسخة من موقعنا إلى مجلد العميل بالأمر
wget http://www.[site].com/vb.zip
- نقوم بفك الضغط عنها بالأمر
unzip vb383.zip
- نقوم بتغيير مالك الملفات من root إلى المستخدم بالأمر
chown -R $USER:$USER vb
- نقوم باستبدال كلمة DATABASE من ملف config.php بقيمة متغير DB بالأمر
replace "DATABASE" "$DB" -- vb/includes/config.php
- وأيضا كلمة USERDB بالأمر
replace "USERDB" "$DB" -- vb/includes/config.php
- وأخيرا كلمة المرور بالأمر
replace "PASSWORD" "$PASS" -- vb/includes/config.php
فيكون ناتج الأمر النهائي هو :
طبعا مع تغيير XXXX في الأمر الأول من سطر الأوامر إلى اسم مستخدم صاحب الحساب الذي نود تركيب منتدى vb عليه، وتغيير رابط النسخة الموجودة في الأمر إلى الرابط الذي أعددته أنت للنسخة .
بعد تنفيذ الأمر قم بذهاب إلى رابط موقع عميلك وقم بإكمال خطوات التثبيت البسيطة :
وبهذا يمكنك استعمال الأمر في أي وقت وعلى أي حساب، وستجد الفرق الشاسع بين التركيب التقليدي والتركيب بالأوامر المعقدة
.
إذا فهمت الشرح جيدا يمكنك إنشاء أوامر خاصة بكل السكربتات وبسهولة تامة جدا
.
فهل يمكنك بعد الآن القول بأن تركيب السكربتات بكثرة عمل ممل ؟
مميزات الشرح:
- السرعة في التركيب والتنفيذ .
- عدم الملل من تركيب السكربتات التي جهزت لها أمر التركيب.
ملاحظات للمبتدئين:
- لا تقم بالتجربة على حساب مملوء .
- لا تقم بتطبيق نفس الأمر على حساب أكثر من مرة.
- تأكد من أنك قمت بتغيير XXXX إلى المستخدم الذي تود تركيب المنتدى له في الأمر فهذا جد هام .
- تأكد من أنك غيرت رابط نسخة المنتدى في الأمر إلى رابط النسخة المعدلة.
الشرح مقدم من أخوكم SilenCker
يوم 23 فبراير 2010 الموافق لـ9 ربيع الأول 1431

3 ردود
بارك الله فيك ونفع بك
فعلا طريقة تختصر الكثير من الوقت والجهد
وشرح رائع
لا تبخل علينا بالمزيد ..
تحياتي.
فعلا طريقة جميلة ، بارك الله فيك
عندي سؤال اخي الكريم
لغة البرمجة التي تستخدمها ، ماهي هذه اللغة ؟
هل هي pearl و هل هي صعبة عن تجربتك طبعا
بارك الله فيك
أهلا بك صديقي
وفيك بارك الله، استعملت في الموضوع bash scripting ،وهي عبارة عن batch لأوامر Linux ، هي لغة بسيطة للغاية لكن لا تستعمل إلا لبرمجة أدوات بسيطة فمميزاتها محدودة إذا قارناها بلغات أخرى، تحتاج منك الإلمام بأوامر الـ Linux ، لا أنصحك بها إذا أردتها أن تكون البداية في البرمجة.
أخوك.