الحل النهائي لمشكلة رفع الملفات لمدونة ووردبريس 3.3


مصنفة في قسم  : مشاكل وحلول
كتبت بتاريخ  : 26 ديسمبر 2011
عدد المشاهدات  : 
عدد التعليقات  : 31 تعليق 

الحل النهائي لمشكلة رفع الملفات لمدونة ووردبريس 3.3

السلام عليكم ورحمة الله وبركاته

اليوم مع حل جديد ونهائي لمشكل رفع الملفات بالنسبة لووردبريس 3.3 والنسخة السابقة لمن يعاني من هذا الامر وقد تحدث عنه مؤخرا في تدوينة بعنوان حل مشكلة رفع الصور في ووردبريس 3.3 والتي ابديت فيها حيرتي بسبب المشكل والتي كانت بخصوص دوال PHP التي تم تعطيلها وقد كان بالفعل هذا  هو السبب الرئيسي لهذه المشكلة التي كلما افتكرتها كلما حاولت مرار وتكرار ايجاد حل لها وايضا ما دفعني لهذا هو ان بعض الاخوة اصبحوا يفضلون الرجوع الى النسخة القديمة لعدم وجود حل لهذه المشكلة.  وحتى المواقع الاجنبية لم تكن بها حلول ايجابية. ما عدا حل واحد في منتدى ووردبريس الرسمي طرحة العضو robhough لم انتبه له بتاتا حتى مررت به اليوم والذي جعلني اتذكره هو حديث عن تفعيل الوضع الامن في الاستضافت العربية ومشاكله الكتيرة. المهم الحل سيطرح مباشرة لاننا عرفنا سبب المشكل مسبقا

اخوان المرجوا الانتباه الى امر مهم هذا الحل يخص فقط الاشخاص الذين يعانون المشكل المشار اليه في الصور اسفله يعني لما يرفعون الصورة تطلع بحجم 0x0 او لا ترفع اصلا

الحل

بطبيعة الحال هو تعطيل الوضع الامن (Safe Mode) والطريقة سهلة وبسيطة وستكون باستعمال php.ini و htaccess. كل ما عليك هو اتباع الخطوات التالية :

الخطوة الاولى

قم بانشاء ملف باسم php.ini في المجلد الرئيسي للمدونة مع مراعات مسار مجلد ووردبريس كل واحد واين يركب ووردبريس فهناك من يستعمل مجلد فرعي وهناك من يستعمل نطاق فرعي المهم بعد انشاء الملف نقم بنسخ الكود التالي داخله :

safe_mode = Off
upload_tmp_directory = /home/User/public_html/wp-content/tmp

المهم السطر الاول قمنا بتعطيل السيف مود. بالنسبة لسطر الثاني قمنا بتحديد مجلد tmp الذي سيوضع فيه الملفات المؤقت التي تحدثنا عنها في حل مشكلة عرض اتصال FTP هنا يجب عليك انشاء هذا المجلد واعطائه التصريح 775 او 777 ولا تنسى تغيير اليوزر (User) حسب مسار موقعك

المهم في هذه الحال السيف مود سيتم تعطيله فقط في المجلد الرئيسي لهذا سنحتاج لطريقة سريعة لتطبيق هذا الامرعلى جميع المجلدات الفرعية والحل هو التالي

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

هنا سنقوم بحماية ملف php.ini لمنع الوصول اليه وتطبيق الملف php.ini على جميع المجلدات الفرعية باستعمال htaccess كل ما عليك هو انشاء ملف باسم htaccess لا تنسى ان تتاكد من وجود ملف مسبقا وبعدها قم باضافة الكود التالي :

<Files php.ini>
order allow,deny
deny from all
satisfy all
</Files>

suPHP_ConfigPath /home/user/public_html

قمنا اولا بحماية الملف بمنع الوصول اليه سواء من داخل السيرفر او خارجه ثانيا قمنا باستعمال موديل suPHP الخاص بال Apache لتطبيق ملف php.ini على جميع الملفات والمجلدات الفرعية وللمزيد حول هذا الموديل يرجى مراجعة صفحة الاعدادات للموقع الرسمي suPHP Apache module هذا كل شيء ومبروك عليكم حل المشكل

اذا طلع الخطاء 500 Internal Server Error فاعلم ان الموديل suPHP Apache module غير مفعل في السيرفر قم بازالة السطر الاخير من php.ini ولكن في هذه الحالة لن تنجح الطريقة الا اذا قمت بنسخ ملف php.ini في جميع المجلدات والله يعينك
ملاحظة مهمة الذي لم تنفع معه الطريقة لازم يراسل الاستضافة لكي يقوم له بهذه العملية لانه لابد ان يكون مفعل php.ini في حسابك

خاتمة

كان شكي في مكانه بالنسبة للوضع الامن (Safe Mode) والحمد لله اني وجدت حل لان المشكل جنني وحيرني في نفس الوقت ومع بعض التجارب نفعت الطريقة والى اللقاء . الى هنا انتهينا من هذه المشكلة اتمنى ان يكون الحل مفيدا لكم والى اللقاء في تدوينة اخرى ان شاء الله

اخوان المرجوا المساعدة في نشرة التدوينة لتصل لاكبر عدد من الذين يعانون من المشكلة فالله وحده يعلم كم من واحد يعاني من هذه المشكلة ايضا

اذا كان هناك اي استفسار يرجى وضع تعليق ولا تنسى الاشتراك في قائمتنا البريدية ولك جزيل الشكر :)

والسلام عليكم ورحمة الله وبركاته

الحل النهائي لمشكلة رفع الملفات لمدونة ووردبريس 3.3 بواسطة مجلة ووردبريس, يمكنك نقل ومشاركة التدوينة مع ذكر المصدر الأصلي للموضوع ، مع رابطه, والتدوينة مرخصة بموجب المشاع الابداعي Creative Commons A-NC-SA 3.0.

الوسوم : , , , , , , , , , , , , ,


عدد التعليقات على هذه التدوينة : 31 تعليق

  1. نديم عاشور يناير 8th, 2012

    لم اسمع عن هذا الحل ادبا و انا اميز بين المجلد و الملف
    شكرا لك

  2. منارة سورية يناير 8th, 2012

    مرحبا اشكرك على تعبك بأيجاد الحل المناسب لكن قمت بعمل المقاله بالحرف لكن لم تنفع هل هناك حل اخر لو في حل ارجو ان تساعدني قبل العودة للاصدارالاقدم

    • معاذ يناير 11th, 2012

      عذرا اخي العزيز نسيت ارد عليك
      المهم اخي قم باستبدال فقط الملف file.php الموجود في المسار wp-admin/includes بملف من النسخة 3.2.1 وراح تنحل المشكلة

  3. Dawn birth يناير 9th, 2012

    السلام عليكم ورحمة الله وبركاته
    ===================
    أولا جزاكم الله خيرا أخي على هذا المجهود في البحث عن حل المشكلة
    بالنسبة لي المستضيف مفعل الوضع الآمن ولا يمكنني تعطيله بهذه الطريقة لانه غير مفعل php.ini عندي ولكن المشكلة تم حلها بالطريقة الموجودة في تعليقك هذا في التدوينة السابقة بالتعديل على ملف wp-config.php :
    http://www.mwordpress.net/2011/12/solve-the-problem-of-uploading-images-in-wordpress-3-3/#comment-1093
    أحببت ان اضيف ايضا اني قبل ان احلها بهذه الطريقة قمت حلها عن طريق التعديل في ملف file.php الموجود في المسار التالي:
    wp-admin/includes/file.php
    فقط قمت بتغيير دالة wp_handle_upload وارجاعها – هذه الدالة فقط – الى النسخة السابقة من وورد بريس 3.2 وهذه الدالة هي السبب الرئيسية في المشكلة بسبب تغيير بسيط في طريقة نقل الملف الى مجلد uploads ويمكنكم الاطلاع على التغيير في هذه الدالة في هذا الرابط :
    http://core.trac.wordpress.org/changeset?old_path=%2Ftags%2F3.2%2Fwp-admin%2Fincludes%2Ffile.php&old=19721&new_path=%2Ftags%2F3.3.1%2Fwp-admin%2Fincludes%2Ffile.php&new=19721

    • معاذ يناير 10th, 2012

      وعليكم السلام ورحمة الله وبركاته
      اللهم امين اخي العزيز
      بالنسبة اخي العزيز لمشكلة php.ini انا ايضا وقعت في هذه المشكلة امس عندما كنت احاول حل المشكلة احد الاصدقاء فقمت بتغيير مجلد tmp وايضا ملف file.php لان المشكلة كانت في الدالة touch المعطلة والتي يستعملها الملف فقلت اجرب انسخة القديمة لملف file.php المتواجدة في اصدار 3.2 فنجحت الطريقة
      على فكرة اخي العزيز انا قمت بتغير الملف بالكامل وليس فقط الدالة wp_handle_upload لان الخطاء الذي كان يطلع بسبب الدالة touch
      ومشكور على مرورك العطر وتنبيهك للحل

  4. منارة سورية يناير 11th, 2012

    السلام عليكم
    اخي الكريم قمت بأسبدال الملف file.php
    من نسخة 3.2 وهو يعمل بشكل ممتاز
    هل هناك تعديلات اخرى تحياتي لكم

    • معاذ يناير 13th, 2012

      وعليكم السلام ورحمة الله وبركاته
      اذا كانت ترفع الملفات بدون مشاكل فلا تحتاج لاي اعدادات اخرى

  5. Ramez يناير 16th, 2012

    أخي العزيز … يوجد حل ثاني بالنسبة للصور فقط ….
    بكل بساطة غير تصريح مجلد Uploads الى 777

    ——–

    عالعموم اظن سبب هذه المشكلة هو تعطيل دالة اسمها glob
    وتعطل من معظم الإستضافات لأسباب أمنية … وأظن تفعيلها يحل المشكلة ككل والله أعلم …..

    ——

    ربي يبارك بك على هذا الحل الجميل

    • معاذ يناير 17th, 2012

      يا اخي رامز لو كان الحل في اعطاء تصريح 777 ما كتبت هذه التدوينة المشكلة ان الاستضافت تختلف في اعدادتها ل php

      عالعموم مشكور اخي العزيز على مرورك العطر والله يبارك فيك

  6. الاسم مدرك بيدوسي فبراير 2nd, 2012

    شكرا على الاقتراح للحل.
    لكن لم يكن لدي مشاكل في ووردبرس 3.0 او 3.2 او 3.3

    • معاذ فبراير 3rd, 2012

      العفو اخي العزيز ربما الاستضافة عندك لم تقم بتفعيل السيف مود

  7. سعيد الغامدي فبراير 7th, 2012

    السلام عليكم ورحمة الله وبركاته

    الله يجزاك الجنة قول آمين

    اخي الكريم قمت بأسبدال الملف file.php
    من نسخة 3.2 وهو يعمل بشكل ممتاز

    ماقصرت الله يعطيك العافية ويجزاك الجنة على ماتقوم به فعل الخير ويكثر من امثالك .

    • معاذ فبراير 9th, 2012

      وعليكم السلام ورحمة الله وبركاته
      العفو اخي العزيز
      اللهم امين والله يجازيك انت ايضا الجنة

  8. ناصر مارس 10th, 2012

    كلمات الشكر لا توفيك حقك أخي الكريم ، لقد قضيت أكثر من أسبوعين في المواقع الأجنبية أبحث عن حل ، و لم أتوقع أبداً أن اجد الحل بأيادي عربية. أشكرك جزيل الشكر و وفقك الله دائما و زادك علماً

    • معاذ مارس 10th, 2012

      العفو اخي العزيز ناصر
      اللهم امين اخي وانت ايضا وفقك الله وزادك علما ورزقا

الصفحة 2 من 2»12

  • مجلة الوردبريس
    مارس 10th, 2012




1. المرجوا الابتعاد عن كتابة تعليقات بنمط (يعطيك العافية)، (روعة)، (ممتاز)، (مشكوووور)، (ابداع).

2. زاوية التعليقات هي جزء مكمّل للموضوع الذي قرأته للتو. حاول أن تحصر تعليقك في صلب الموضوع حتى نستثمر هذا التعليق لكسب المزيد من الفائدة سواءً عن طريق مناقشة الموضوع أو عن طريق إضافة معلومات مكمّلة أو إبداء ملاحظات أخرى في نفس السياق.