2013-09-25 19 views
11

Wygląda na to, że za każdym razem, gdy próbuję przesłać zdjęcia do administratora Magento 1.7, pojawia się "Błąd HTTP". Mam cały folder/pliki multimedialne ustawione na 777, informacja .htaccess jest poprawna, nie używam ochrony hasłem, a dzieje się to w dowolnej przeglądarce.Magento - Błąd przesyłania HTTP?

Wszelkie sugestie są bardzo doceniane!

+0

Może to być również http://stackoverflow.com/questions/2233627/swfupload-works-in-ie-but-not-in-firefox –

Odpowiedz

16

Istnieje wiele rzeczy, które mogłyby być przyczyną tego problemu, ale tutaj jest kilka rzeczy można spróbować:

  • Upewnij się, że katalog/media i wszystkie podkatalogi mają swoją grupę Apache użytkownika (zazwyczaj „Bramki WWW- danych”lub«httpd»):

    sudo chgrp -R www-data /path/to/magento/media 
    
  • Upewnij się, że katalog/media i wszystkie podkatalogi mają odpowiednie uprawnienia nadane grupie Apache za użytkownika:

    sudo chmod -R 775 /path/to/magento/media 
    
  • W System-> konfiguracja> General-> Web, upewnij się, że "Base URL" i "Media Base URL" są poprawne zarówno pod "Secure" i "bez zabezpieczeń"

    1. W swojej Magento baza danych, tabela core_config_data zawiera wartości surowców dla twojej {{secure_base_url}} i {{unsecure_base_url}}

      Upewnij się, że wartości te są prawidłowe i mają końcowe ukośniki, jak http://example.com/

    2. w konfi systemu W powyższym przykładzie upewnij się, że wartości te są poprawne i uwzględniają końcowy ukośnik w wartości nieprzetworzonej. Oznacza to powinny one wyglądać {{secure_base_url}}media na przykład, bez ukośników

  • W System-> Zarządzanie Cache, wyłącz buforowanie

  • Weź pliki .htaccess ze świeżej pobrania swojej wersji Magento (włączając .htaccess w katalogu głównym twojego dokumentu oraz wszelkie pliki .htaccess w/media i wszystkich podkatalogach/media), twórz kopie bieżących plików .htaccess, a następnie jawnie kopiuj nowe pliki .htaccess, aby je zastąpić.

    Ponieważ .htaccess zaczyna się od "." znak ten zostanie zignorowany przez niektóre polecenia Linuksa, co może spowodować, że ludzie będą myśleć, że skopiowali lub zastąpili plik .htaccess, gdy takowe nie istnieją, więc rób to ostrożnie.

    Teraz spróbuj ponownie, a jeśli pojawi się ten sam błąd, to wykluczy .htaccess.

  • Jeśli używasz protokołu SSL, spróbuj wyłączyć protokół SSL, a jeśli masz ten sam błąd, który będzie wykluczyć SSL

  • przejdź do app/code/local i app/code/community i zanotuj przestrzeni nazw w tych katalogach. Teraz przejdź do app/etc/modules i edytuj co *.plik xml w tym katalogu dopasowanie nazw ty zauważone z następujących wartości dla <active> węzła:

    <?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> 
    

    Teraz spróbuj ponownie, a jeśli masz ten sam błąd, który będzie wykluczyć moduł konflikty

  • Jeśli obrazy są wystarczająco duże, może być ograniczony przez ustawienia PHP:

    1. Zidentyfikuj załadowany php.ini:

      <?php 
      phpinfo(); // Look for "Loaded Configuration File" 
      
    2. Edycja php.ini (jeśli jesteś na Ubuntu to chyba w /etc/php5/apache2/php.ini):

      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 
      

      Zrestartuj serwer WWW:

      sudo /etc/init.d/apache2 restart 
      

Jeśli "Dotarliśmy tak daleko i nic nie zadziałało, oto kilka czasochłonnych rzeczy, które możesz zrobić, aby zawęzić jaki problem to jest:

  • Utwórz nową instalację Magento na tym samym serwerze internetowym i przetestuj przesyłanie obrazów.

    1. Jeśli nadal nie działa, to problem z Apache lub konfiguracji PHP (lub nawet wersji)

    2. jeśli pracują, to prawdopodobnie problem ze swoimi podstawowych plików Magento lub twoją konfigurację Magento lub Magento lub wirtualny host Apache. Podjąć kroki w celu ustalenia, które:

      1. Utwórz nową bazę danych

      2. Usuń wszystko /path/to/new/magento/var/*

        sudo rm -rf /path/to/new/magento/var/* 
        
      3. W swojej starszej Magento administratora, przejdź do System->Tools->Backups i kliknij Create Backup. Po dokonaniu rejestracji, przejdź do /path/to/old/magento/var/backup/ i wstawić kopię zapasową do nowej bazy danych utworzonej:

        mysql -p -u username database_name < backup_file 
        
      4. W nowym systemie plików Magento, przejdź do /path/to/new/magento/app/etc/local.xml i edytować go zwrócić do nowej bazy danych:

        <username>{{db_user}}</username> 
        <password>{{db_pass}}</password> 
        <dbname>{{db_name}}</dbname> 
        
      5. Spróbuj ponownie załadować zdjęcia do nowej instalacji Magento, a jeśli pojawi się błąd, problem leży w konfiguracji Magento lub w bazie danych Magento. Jeśli nie otrzymasz błędu, problem dotyczył podstawowych plików Magento lub hosta wirtualnego Apache.

Jeśli chcesz podać więcej informacji, prawdopodobnie najbardziej użyteczne kawałki byłby kopią załadowanych php.ini, apache2.conf i/lub httpd.conf i kopie Twoich plików z .htaccessdocument root do wszystkich podkatalogów /media, oczywiście z rozwlekłymi wrażliwymi informacjami.

+0

To była najlepsza lista rozwiązań, które widziałem w odniesieniu do tego problemu. W końcu zakończyłem ponowną instalację na nowym hoście, który prawdopodobnie rozwiązał problem. –

+3

Utracono rozszerzenia PHP "mcrypt" i "gd". Powyższa lista rzeczy do sprawdzenia bardzo przydatna, dzięki za to. Jednak sprawdziłem to wszystko i nie dostałem wyniku na moim Magento. W końcu znalazłem problem - może będzie to przydatne dla kogoś - dwa rozszerzenia PHP potrzebne do prawidłowego działania Magento zniknęły po migracji serwera zrobionej jakiś czas temu - "mcrypt" i "gd". Prawdopodobnie jeden z nich powoduje przesłanie "błędu HTTP". Po zainstalowaniu obu działa jak urok. – witkacy26

8

Jeśli masz chroniony hasłem swój katalog główny przy użyciu pliku .htaccess, usuń to zabezpieczenie i spróbuj ponownie.

wewnątrz .htaccess, poszukaj:

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

Upewnij się, że ustawienie potrzeb, jak można znaleźć lepsze sposoby, aby chronić swoją stronę niż ta, ponownie sprawdzić ustawienia zabezpieczeń.

+1

Dziękuję bardzo. To rozwiązało problem z wysłaniem :) –

+0

Nie jest to zbyt bezpieczne, aby usunąć ograniczenie do katalogu, ponieważ strona internetowa będzie dostępna publicznie. Lepiej dodaj wpisy "Allowed from" związane z niektórymi IP, jeśli to możliwe. –

0

znalazłem inną możliwą przyczynę. W wersji 1.6.2.0 Magento miało to miejsce, ponieważ w System -> Web -> Session REMOTE_ADDR i HTTP_USER_AGENT zostały aktywowane. Ponownie przełączono oba na "nie" i ten błąd zniknął (bez żadnych innych zmian!).

2

Niewłaściwe zezwolenie to problem związany z tym błędem. Jeśli zmiana grupy na użytkownika apache/www-dane i zmiana uprawnień zapisu nie rozwiąże to problemu. Wyłącz .htpasswd uwierzytelniania jeśli włączona do .httaccess zrobić ten komentarz te linie

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

przeżyłem ten sam problem na moim serwerze Ubuntu 10.04. To było spowodowane tym szczególnym ustawieniem.

Teraz zrobiłem następujące zmiany w tym pliku: /etc/apache2/mods-available/fcgid.conf (trzeba mieć dostęp root aby je zmodyfikować):

FcgidMaxRequestLen 1073741824 

Prawie na końcu po ostatnim rzędzie fcgi polecenia i przed </IfModule> Just Add :

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

czynienia z tym samym problemem Okazało się, że w moim przypadku był to problem z moim nginx config.

Domyślny maksymalny rozmiar przesyłki dla nginx to 1MB. Jeśli prześlesz większe pliki, zobaczysz 413 błędów w dzienniku błędów nginx, a Magento po prostu powie Ci nieopisujący "błąd przesyłania http".

Zmień lub dodaj parametr [client_max_body_size] w nginx.conf, gdzieś w sekcji http {}, jak w poniższym przykładzie, gdzie ustawić maksymalny rozmiar Prześlij do 200MB:

http { 

    client_max_body_size 200m; 

} 
+0

Patrząc na logowanie do konsoli Chrome, mogłem zobaczyć błąd 413, który pomógł mi w debugowaniu i zastosowaniu tego rozwiązania. Miły! –

1

miałem ten problem w Magento 1.7, ponieważ nazwa pliku obrazu „dutchman's_pipe.jpg” zawierał apostrof. Mam nadzieję, że ta pomoc jest kimś innym.

Powiązane problemy