2013-09-25 8 views
11

जब भी मैं Magento 1.7 के व्यवस्थापक में छवियों को अपलोड करने का प्रयास करता हूं तो मुझे "HTTP त्रुटि अपलोड करें" प्रतीत होता है। मेरे पास संपूर्ण मीडिया फ़ोल्डर/फ़ाइलें 777 पर सेट हैं, htaccess जानकारी सही है, मैं पासवर्ड सुरक्षा का उपयोग नहीं कर रहा हूं, और यह किसी भी ब्राउज़र में होता है।Magento - HTTP त्रुटि अपलोड करें?

किसी भी सुझाव की बहुत सराहना की जाती है!

+0

यह भी हो सकता है http://stackoverflow.com/questions/2233627/swfupload-works-in-ie-but-not-in-firefox –

उत्तर

16

वहाँ कई चीजें हैं जो इस मुद्दे का कारण हो सकता है, लेकिन कुछ बातें यहां है आप की कोशिश कर सकते:

  • यकीन है/मीडिया निर्देशिका बनाने और सभी सबडायरेक्टरियों अपने अपाचे के उपयोगकर्ता की समूह आमतौर पर है ('www- डेटा 'या' httpd '):

    :

    sudo chgrp -R www-data /path/to/magento/media 
    
  • यकीन है/मीडिया निर्देशिका और सभी सबडायरेक्टरियों अपने अपाचे के उपयोगकर्ता के समूह को दी उचित अनुमतियाँ बनाओ

  • सिस्टम में> Configuration-> जनरल> वेब, सुनिश्चित करें कि "आधार URL" "बेस मीडिया URL" दोनों "सुरक्षित" के तहत सही हैं "असुरक्षित"

    1. अपने Magento में बनाने के लिए और और डेटाबेस, टेबल core_config_data कच्चे मूल्यों अपने {{secure_base_url}} और {{unsecure_base_url}}

      यकीन है कि इन मूल्यों को सही कर रहे हैं और पीछे चल स्लैश किया है के लिए, की तरह http://example.com/

    2. प्रणाली आत्मविश्वास में शामिल ऊपर की अवधि, सुनिश्चित करें कि कच्चे मूल्य में पिछला स्लैश के लिए वे मान सही लेखांकन हैं। इसका मतलब यह है कि वे, कोई स्लैश

  • सिस्टम> कैश प्रबंधन में साथ कैशिंग

  • उदाहरण के लिए {{secure_base_url}}media की तरह दिखना चाहिए, निष्क्रिय (Magento के अपने संस्करण के एक ताजा डाउनलोड से .htaccess फ़ाइलों ले लो आपके दस्तावेज़ रूट में .htaccess, और किसी भी .htaccess फ़ाइलों/मीडिया और/मीडिया की सभी उपनिर्देशिकाओं सहित), अपनी वर्तमान। htaccess फ़ाइलों का बैकअप लें, फिर उन्हें प्रतिस्थापित करने के लिए ताजा। htaccess फ़ाइलों को स्पष्ट रूप से कॉपी करें।

    क्योंकि .htaccess '।' से शुरू होता है। चरित्र, इसे कुछ लिनक्स कमांडों द्वारा अनदेखा कर दिया जाएगा, जो लोगों को यह सोचने का कारण बन सकता है कि उन्होंने वास्तव में एक .htaccess फ़ाइल की प्रतिलिपि बनाई है या अधिलेखित की है, इसलिए यह सावधानी से करें।

    अब पुन: प्रयास करें, और यदि आपको एक ही त्रुटि मिलती है, तो वह .htaccess को रद्द कर देगा।

  • आप SSL का उपयोग कर रहे हैं, एसएसएल अक्षम करने का प्रयास और अगर आप एक ही त्रुटि मिलती है, कि app/code/local और app/code/community करने के लिए SSL

  • नेविगेट को खारिज करने और उन निर्देशिकाओं में नामस्थान के नोट बना देंगे। अब app/etc/modules पर जाएं और प्रत्येक * संपादित करें।कि निर्देशिका में xml फ़ाइल नामस्थान आप <active> नोड के लिए निम्न मान के साथ ध्यान दिया मिलान:

    <?xml version="1.0"?> 
    <config> 
        <modules> 
         <Namespace_*> 
          <!-- set this value to "false" --> 
          <active>false</active> 
          <!-- more nodes here, just leave every 
           node alone except <active> --> 
         </Namespace_*> 
        </modules> 
    <config> 
    

    अब पुन: प्रयास करें, और यदि आप एक ही त्रुटि मिलती है, कि मॉड्यूल से इनकार करेंगे विरोध करता है

  • छवियों काफी बड़ी हैं, तो आप अपने PHP सेटिंग्स के द्वारा प्रतिबंधित किया जा सकता है:

    :

    1. अपने लोड php.ini को पहचानें

    2. संपादित अपने php.ini (यदि आप Ubuntu पर कर रहे हैं यह शायद /etc/php5/apache2/php.ini में था):

      sudo /etc/init.d/apache2 restart 
      

आप हैं:

sudo vi /path/to/php.ini 

# Make these three values higher than the filesize of the images you're 
# trying to upload: 
upload_max_filesize = 200M 
post_max_size = 200M 
memory_limit = 200M 

अपने वेब सर्वर को पुनरारंभ करें अब तक यह प्राप्त हुआ है और कुछ भी काम नहीं किया है, यहां कुछ समय-गहन चीजें हैं जो आप कम करने के लिए कर सकते हैं कि यह किस प्रकार की समस्या है:

  • उसी वेबसर्वर और परीक्षण छवि अपलोड पर Magento का एक नया इंस्टॉल बनाएं।

    1. वे अभी भी काम नहीं करते हैं, तो यह

    2. अगर वे काम करते हैं, यह शायद अपने Magento कोर फ़ाइलों या के साथ एक समस्या थी अपाचे या PHP विन्यास (या संभावित रूप से संस्करण) के साथ एक समस्या है आपका Magento कॉन्फ़िगरेशन या Magento डेटाबेस या अपाचे वर्चुअल होस्ट। जो निर्धारित करने में मदद के लिए इन चरणों लें:

      1. /path/to/new/magento/var/*

        sudo rm -rf /path/to/new/magento/var/* 
        
      2. में एक नया डेटाबेस

      3. सब कुछ बनाने, हटाने अपने पुराने Magento व्यवस्थापक में, System->Tools->Backups के पास जाकर Create Backup क्लिक करें। एक बार यह हो, /path/to/old/magento/var/backup/ के पास जाकर नए डेटाबेस आपके द्वारा बनाई गई में अपने बैकअप सम्मिलित करें:

        mysql -p -u username database_name < backup_file 
        
      4. अपने नए Magento फाइल सिस्टम में, /path/to/new/magento/app/etc/local.xml पर जाएं और अपने नए डेटाबेस को इंगित करने के लिए इसे संपादित:

        <username>{{db_user}}</username> 
        <password>{{db_pass}}</password> 
        <dbname>{{db_name}}</dbname> 
        
      5. ताजा Magento इंस्टॉल पर छवि अपलोड करने का प्रयास करें, और यदि आपको त्रुटि मिलती है, तो समस्या आपके Magento कॉन्फ़िगरेशन या आपके Magento डेटाबेस में है। अगर आपको त्रुटि नहीं मिलती है, तो समस्या आपकी Magento कोर फ़ाइलों या आपके अपाचे वर्चुअल होस्ट में थी।

आप अधिक जानकारी प्रदान करने के लिए चाहते हैं, तो शायद सबसे उपयोगी टुकड़े अपने लोड php.ini, apache2.conf और/या httpd.conf, और अपने .htaccess फ़ाइलों की प्रतिलिपि की एक प्रति किया जाएगा /media की सभी उप-निर्देशिकाओं के माध्यम से, किसी भी संवेदनशील जानकारी के साथ निश्चित रूप से obfuscated।

+0

यह समस्या के बारे में मैंने देखा समाधानों की सबसे अच्छी सूची थी। अंत में, मैंने एक नए होस्ट पर पुनर्स्थापित करना समाप्त कर दिया, जो कि समस्या का समाधान कर रहा है। –

+3

"mcrypt" और "gd" PHP एक्सटेंशन चूक गए। बहुत उपयोगी जांचने के लिए चीजों की सूची के ऊपर, इसके लिए धन्यवाद। हालांकि मैंने इसे सब कुछ देखा है और मेरे Magento पर परिणाम नहीं मिला है। आखिर में मुझे समस्या मिली है - शायद यह किसी के लिए उपयोगी होगा - कुछ समय पहले सर्वर माइग्रेशन के बाद मैगेंटो के लिए दो PHP एक्सटेंशन की आवश्यकता थी, "mcrypt" और "gd"। शायद उनमें से एक "HTTP त्रुटि" अपलोड करने का कारण बनता है। दोनों स्थापित करने के बाद यह एक आकर्षण की तरह काम करता है। – witkacy26

8

यदि आपने .htaccess फ़ाइल का उपयोग करके अपनी रूट निर्देशिका को पासवर्ड-सुरक्षित किया है, तो इस सुरक्षा को हटाएं और पुनः प्रयास करें।

अपने .htaccess अंदर, देखने के लिए:

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /path/to/your/passwd_file 
AuthGroupFile /dev/null 
require valid-user 

, जरूरतों की स्थापना के रूप में आप इस एक से अपनी साइट की रक्षा के लिए बेहतर रास्ते ढूंढ सकते हैं अपनी सुरक्षा की फिर से जांच करना सुनिश्चित करें।

+1

बहुत बहुत धन्यवाद। उसने अपलोड त्रुटि हल की :) –

+0

निर्देशिका प्रतिबंध को हटाने के लिए यह बहुत सुरक्षित नहीं है क्योंकि वेबसाइट सार्वजनिक रूप से उपलब्ध होगी। यदि संभव हो तो कुछ आईपी से संबंधित प्रविष्टियों से "अनुमोदित" प्रविष्टियां बेहतर जोड़ें। –

12

chjohasbrouck के उत्तर में जोड़ने के लिए, आप यह त्रुटि भी जीडी PHP एक्सटेंशन सक्षम नहीं होने से प्राप्त कर सकते हैं।

Ubuntu पर स्थापित करने के लिए डब्ल्यू/अपाचे कार्य करें:

sudo apt-get install php5-gd 

और फिर अपाचे पुनरारंभ करें।

इसके अलावा उबंटू यहां दिए गए निर्देशों: http://www.cyberciti.biz/faq/ubuntu-linux-install-or-add-php-gd-support-to-apache/

+1

मुझे याद दिलाने के लिए धन्यवाद @ पैंटबर्ग – Alexandros

+1

यह मेरे लिए काम करता है, धन्यवाद! –

0

मैं एक संभावित कारण मिल गया। Magento संस्करण 1.6.2.0 में यह हुआ क्योंकि सिस्टम -> वेब -> सत्र REMOTE_ADDR और HTTP_USER_AGENT के तहत सक्रिय किया गया था। मैंने फिर से "नहीं" पर स्विच किया और यह त्रुटि गायब हो गई (बिना किसी अन्य बदलाव के!)

2

गलत त्रुटि इस त्रुटि के पीछे समस्या है। यदि समूह को अपाचे/www-data उपयोगकर्ता में बदलना और लिखने की अनुमति बदलने से यह हल नहीं होता है। अक्षम प्रमाणीकरण .htpasswd अगर .httaccess में सक्षम मेरी उबंटू 10.04 सर्वर पर इस टिप्पणी को इन पंक्तियों

#AuthType Basic 
#AuthName "Password Protected Area" 
#AuthUserFile .htpasswd path 
#Require valid-user 
0

मैं एक ही समस्या का सामना करना करना है। यह इस विशेष सेटिंग के कारण हुआ था। /etc/apache2/mods-available/fcgid.conf (आप इसे संशोधित करने के लिए रूट पहुँच होना आवश्यक है):

FcgidMaxRequestLen 1073741824 
लगभग fcgi की अंतिम पंक्ति के बाद अंत पर

आदेश और </IfModule> से पहले बस जोड़ने

अब मैं इस फ़ाइल में निम्न परिवर्तन किया :

<IfModule mod_fcgid.c> 
    AddHandler fcgid-script .fcgi 
    FcgidConnectTimeout 60 
    FcgidMaxRequestLen 1073741824 
</IfModule> 
2

उसी समस्या से निपटने में मैंने पाया कि मेरे मामले में यह मेरे nginx कॉन्फ़िगरेशन के साथ एक मुद्दा था।

nginx के लिए डिफ़ॉल्ट अधिकतम अपलोड आकार 1 एमबी है। यदि आप बड़ी फाइलें अपलोड करते हैं तो आपको अपने nginx त्रुटि लॉग में 413 त्रुटियां दिखाई देगी, जबकि Magento आपको केवल एक गैर-वर्णनात्मक "http अपलोड त्रुटि" बताएगी।

nginx में [client_max_body_size] पैरामीटर बदलें या जोड़ें।conf, http {} अनुभाग में कहीं न कहीं, इस उदाहरण है जहाँ मैं 200MB के लिए अधिकतम अपलोड आकार सेट की तरह:

http { 

    client_max_body_size 200m; 

} 
+0

क्रोम में कंसोल लॉग को देखते हुए, मुझे 413 त्रुटि दिखाई दे रही थी, जिसने मुझे इस समाधान को डीबग करने और लागू करने में मदद की। अच्छा! –

1

मैं Magento 1.7 में इस समस्या थी क्योंकि छवि फ़ाइल नाम "dutchman's_pipe.jpg" निहित एक apostrophe। मैं उम्मीद करता हूं कि इससे किसी की मदद होगी।

संबंधित मुद्दे