السلام عليكم ورحمة الله وبركاته
من خلال بحثي العميق في هذا المعهد الكبير والمنتديات المتخصصة الأخرى وجدت ان الكثير من اصحاب المنتديات يعانون من مشكلة في رفع المرفقات عن طريق " التحكم بالملفات المرفقة " وظهور رسالة خطأ وهي " فشل رفع الملف " أو ما شابهها من رسائل .. ولم ينجح الكثير منهم في حل المشكلة بالرغم من تعدد الحلول.
وقد وقعت انا شخصياً في هذه المشكلة .. وكنت ارى شيئاً غريباً في مشكلتي ايضاً وهو ان بعض الاعضاء يستطيعون تحميل المرفقات ولكن البعض الآخر لا !! وهذا ما زاد استغرابي وسوف اخبركم بالسبب لاحقاً.
المهم .. لم يهدأ لي بال مع هذه المشكلة الا بعد ان توصلت الى الحل الصحيح عن طريق فتح تذكرة مطولة مع مركز الدعم الفني بالشركة الأم vbulletin وقيام احد المختصين لديهم بزيارة منتداي والدخول الى لوحة التحكم والاطلاع على المشكلة عن قرب.
واتضحت المشكلة في النهاية ان اسبابها تعود الى اعدادات سيرفر المستضيف ونظام السيف مود Safe Mode ويجب ان نقوم نحن أصحاب المنتديات بضبط اعداداتنا لتتماشى مع اعدادات السيرفر. كيف؟
أقولكم كيف بالتفصيل الممل .. تابعوا معي الخطوات:
بس قبل لا أبدأ في الخطوات حبيت اوضح ان احد الحلول يقول لك عدل على ملف الـ .htaccess علشان تتماشى مع السيف مود لسيرفر المستضيف! وهو حل فاشل جداً اتركه عنك.
الخطوة الأولى:
=======================
اولا:
نقول بالدخول بالاف تي بي لمجلد المنتدى
وننشي مجلد داخل باسم
tmp
ونعطيه تصريح 777
=======================
=======================
اولا:
نقول بالدخول بالاف تي بي لمجلد المنتدى
وننشي مجلد داخل باسم
tmp
ونعطيه تصريح 777
=======================
=======================
ثانيا:
نقوم بالدخول الى لوحة تحكم المنتدى
ونغط على خيارات المنتدى
ثم
خيارات البريد
ونتاكد من الاتي
1- استخدام نظام الانتظار البريدي يجب ان يقون على خيار لا
2- تفعيل مقياس "-f" يجب ان يكون على خيار لا
3- بريد SMTP يجب ن ايكون على خيار لا
4- إتّصال SMTP الآمن يجب ان يكون على خيار لا
=======================
ثانيا:
نقوم بالدخول الى لوحة تحكم المنتدى
ونغط على خيارات المنتدى
ثم
خيارات البريد
ونتاكد من الاتي
1- استخدام نظام الانتظار البريدي يجب ان يقون على خيار لا
2- تفعيل مقياس "-f" يجب ان يكون على خيار لا
3- بريد SMTP يجب ن ايكون على خيار لا
4- إتّصال SMTP الآمن يجب ان يكون على خيار لا
=======================
بعد ذلك نضغط على حفظ
=======================
الان نرجع على خيارات المنتدى ونحتار
خيارات إعدادات المزود و تحقيق الأمثلية
ونتاكد من
1- تفعيل الرفع في الوضع الآمن يجب ان يكون الخيار نعم
2- المجلد المؤقت للوضع الآمن (تضع فيه الامتداد الخاص بمجلد tmp)
استبدل المحدد بالاحمر باليوزر الخاص بموقعك (يوزر الاف تي بي والسيبانل)
=======================
بعد ذلك نضغط على حفظ
الان نرجع على خيارات المنتدى ونحتار
خيارات إعدادات المزود و تحقيق الأمثلية
ونتاكد من
1- تفعيل الرفع في الوضع الآمن يجب ان يكون الخيار نعم
2- المجلد المؤقت للوضع الآمن (تضع فيه الامتداد الخاص بمجلد tmp)
استبدل المحدد بالاحمر باليوزر الخاص بموقعك (يوزر الاف تي بي والسيبانل)
=======================
بعد ذلك نضغط على حفظ
الكثير انحلت معهم المشكلة بعد تطبيق الحل الوارد اعلاه .. ولكن البعض الآخر لم ينجح معهم الحل وما زالوا يعانون من المشكلة وأنا كنت منهم. اذن لنذهب الى الخطوة الثانية.
الخطوة الثانية:
ان الذين لم ينجح معهم الحل اعلاه هم الذين يتعاملون مع المرفقات على أساس انها تخزن في ( نظام الملفات ) أي بمعنى ان المرفقات ترفع الى احد المجلدات الموجودة في الموقع ولنفرض ان اسمه مثلاً attachments ولنفرض ان امتداده هو public_html/vb/attachments وهذا الخيار يلجأ اليه صاحب المنتدى ليخفف الضغط عن قاعدة بياناته بتخزين المرفقات في مجلد منفصل بدلاً من ان يخزن المرفقات على القاعدة مباشرة. وطبعاً التصريح المعطى لهذا المجلد هو 777 ولكن لافائدة منه مع مشكلتنا هذه.
اذن اين الخلل ؟؟
الخلل هو ان نظام السيف مود في سيرفر المستضيف لا يسمح برفع الملفات الى مجلد منفصل من خلال سكربت برنامج الفيبوليتن. روح يمين روح يسار ما تقدر تغير فيه شي خلاص هو هكذا ولن يقبل المستضيف بأن يغير نظامه علشان خاطر عيونك.
الخلل هو ان نظام السيف مود في سيرفر المستضيف لا يسمح برفع الملفات الى مجلد منفصل من خلال سكربت برنامج الفيبوليتن. روح يمين روح يسار ما تقدر تغير فيه شي خلاص هو هكذا ولن يقبل المستضيف بأن يغير نظامه علشان خاطر عيونك.
لذا .. ولكي تحل المشكلة نهائياً ..
يتوجب عليك ان تغير مكان تخزين المرفقات الى التخزين في (قاعدة البيانات) بدلاً من (نظام الملفات).
يتوجب عليك ان تغير مكان تخزين المرفقات الى التخزين في (قاعدة البيانات) بدلاً من (نظام الملفات).
وهذا الشرح مصور للطريقة:
تحذيرات قبل البدء في العملية:
1- خذ نسخة من مجلدك اللي يحتوي على المرفقات .. لأنها ستحذف من المجلد بعد ان تنقلها لقاعدة البيانات.
2- خذ نسخة احتياطية من قاعدة بياناتك علشان اذا ما عرفت كيف تواصل العملية تقدر تعيد قاعدة بياناتك السابقة.
لاتتخوفون من التحذيرات فهي مجرد احتياط للأمان
1- خذ نسخة من مجلدك اللي يحتوي على المرفقات .. لأنها ستحذف من المجلد بعد ان تنقلها لقاعدة البيانات.
2- خذ نسخة احتياطية من قاعدة بياناتك علشان اذا ما عرفت كيف تواصل العملية تقدر تعيد قاعدة بياناتك السابقة.
لاتتخوفون من التحذيرات فهي مجرد احتياط للأمان
بسم الله نبدأ:
ادخل لوحة تحكم المنتدى
ثم الذهاب الى خيارات الملفات المرفقة ثم ( مكان تخزين المرفقات ) كما في الصورة:
ستلاحظ ان مكان تخزين المرفقات حالياً تخزن على نظام الملفات كما في الصورة .. انت اختر خيار ( نقل العناصر من نظام الملفات الى قاعدة البيانات ) ثم اضغط على ( اذهب ) :
سيطلب منك بعد ذلك تأكيد العملية .. أكد العملية وواصل معه .. ليبدأ في عملية نقل المرفقات الى قاعدة البيانات الى ان يصل الى النهاية.
بعد اكتمال العملية ارجع الى خيارات ( مكان تخزين المرفقات ) وستلاحظ انها اصبحت في قاعدة البيانات كما في الصورة:
واخيراً .. يتوجب عليك تحديث العدادات من خلال هذا الخيار اللي في الصورة:
بامكانك الآن التأكد من المرفقات بزيارة احد الموضوعات اللي تحتوي على المرفقات في منتداك وتحميلها .. او رفع ملف مرفق جديد.
انتهت العملية الآن وبامكانك حذف المجلد السابق اللي كان يحتوي على المرفقات بكل أمان.
ولا تنسى ان تكون خياراتك الخاصة بـ ( اعدادات المزود وتحقيق الامثلية ) على نفس الخيارات المشروحة في الاقتباس المشروح اعلاه ومهم جداً بأن تتأكد ان مجلد tmp يحمل التصريح 777
وبهذا انحلت المشكلة ولله الحمد
في شي قلته لكم في البداية وما كملته .. ان بعض الاعضاء عندي كانوا يقدرون يرفعون المرفقات وبعضهم لا .. كيف هذا ؟؟ الجواب هو اني كنت في السابق مخلي مكان تخزين المرفقات في قاعدة البيانات .. ولكن لاحقاً قررت انقلها لنظام الملفات .. لذلك الاعضاء اللي كانوا محملين مرفقات في الماضي كانوا يستطيعون الرفع لوجود مجلد خاص بهم داخل مجلد المرفقات الرئيسي .. ولكن الاعضاء الجدد ما كانوا يستطيعون الرفع ويعطيهم رسالة خطأ وهي " فشل رفع الملف " بسبب ان نظام السيف مود لا يقبل الكتابة داخل مجلد المرفقات ليقوم بانشاء مجلد جديد لأي عضو جديد. وهذا هو السبب.
== انتهى ==
تعليق