Magento - Загрузить HTTP-ошибку?

Кажется, я получаю сообщение "Ошибка загрузки HTTP", когда я пытаюсь загрузить изображения в Magento 1.7 admin. У меня есть все медиа-папка/файлы, установленные на 777,.htaccess информация верна, я не использую защиту паролем, и это происходит в любом браузере.

Любые предложения приветствуются!

Ответ 1

Есть много вещей, которые могут вызвать эту проблему, но вот несколько вещей, которые вы могли бы попробовать:

  • Убедитесь, что в каталоге /media и во всех подкаталогах есть группа пользователей Apache (обычно это "www-data" или "httpd" ):

    sudo chgrp -R www-data /path/to/magento/media
    
  • Убедитесь, что каталог /media и все подкаталоги имеют соответствующие разрешения для вашей группы пользователей Apache:

    sudo chmod -R 775 /path/to/magento/media
    
  • В System- > Configuration- > General- > Web убедитесь, что "Base URL" и "Base Media URL" являются правильными как для "Secure", так и "Unsecure"

    • В вашей базе данных Magento таблица core_config_data содержит исходные значения для ваших {{secure_base_url}} и {{unsecure_base_url}}

      Убедитесь, что эти значения верны и имеют косые черты, например http://example.com/

    • В приведенной выше конфигурации системы убедитесь, что эти значения правильно учитывают конечную косую черту в исходном значении. Это означает, что они должны выглядеть как {{secure_base_url}}media, например, без косой черты

  • В System- > Cache Management отключите кеширование

  • Возьмите файлы .htaccess из новой загрузки вашей версии Magento (включая .htaccess в корне вашего документа и любые файлы .htaccess в /media и все подкаталоги /media ), создайте резервную копию текущего .htaccess, а затем явно скопируйте свежие файлы .htaccess, чтобы их заменить.

    Потому что .htaccess начинается с '.' символ, он будет проигнорирован некоторыми командами Linux, которые могут заставить людей думать, что они скопировали или перезаписали файл .htaccess, когда они на самом деле этого не сделали, поэтому сделайте это осторожно.

    Теперь попробуйте еще раз, и если вы получите ту же ошибку, это исключит .htaccess.

  • Если вы используете SSL, попробуйте отключить SSL, и если вы получите ту же ошибку, это будет исключать SSL

  • Перейдите к app/code/local и app/code/community и обратите внимание на пространства имен в этих каталогах. Теперь перейдите к app/etc/modules и отредактируйте каждый *.xml файл в этом каталоге, соответствующий указанным пространствам имен, со следующим значением для <active> node:

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

    • Определите загруженный php.ini:

      <?php
      phpinfo(); // Look for "Loaded Configuration File"
      
    • Отредактируйте свой php.ini(если вы на Ubuntu, возможно, он был в /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
      

      Перезагрузите веб-сервер:

      sudo /etc/init.d/apache2 restart
      

Если вы дошли до этого, и ничего не сработало, вот некоторые из длительных вещей, которые вы могли бы сделать, чтобы сузить, в чем проблема:

  • Создайте новую установку Magento на одном веб-сервере и загрузите тестовые изображения.

    • Если они все еще не работают, это проблема с конфигурацией Apache или PHP (или, возможно, даже с версией)

    • Если они действительно работают, вероятно, это проблема с вашими основными файлами Magento или с вашей конфигурацией Magento или с базой данных Magento или с виртуальным хостом Apache. Выполните следующие шаги, чтобы определить, что:

      • Создайте новую базу данных

      • Удалить все в /path/to/new/magento/var/*

        sudo rm -rf /path/to/new/magento/var/*
        
      • В старшем администраторе Magento перейдите к System->Tools->Backups и нажмите Create Backup. После этого перейдите в /path/to/old/magento/var/backup/ и вставьте свою резервную копию в новую созданную вами базу данных:

        mysql -p -u username database_name < backup_file
        
      • В новой файловой системе Magento перейдите к /path/to/new/magento/app/etc/local.xml и отредактируйте ее, чтобы указать на новую базу данных:

        <username>{{db_user}}</username>
        <password>{{db_pass}}</password>
        <dbname>{{db_name}}</dbname>
        
      • Повторите загрузку изображений на новой установке Magento, и если вы получите сообщение об ошибке, проблема будет в конфигурации Magento или в вашей базе данных Magento. Если вы не получили ошибку, проблема была в ваших основных файлах Magento или на вашем виртуальном хосте Apache.

Если вы хотите предоставить дополнительную информацию, возможно, наиболее полезными являются копии загруженных php.ini, apache2.conf и/или httpd.conf, а также копии ваших файлов .htaccess из document root через все подкаталоги /media, с любой конфиденциальной информацией, запутанной, конечно.

Ответ 2

Чтобы добавить к chjohasbrouck ответ, вы также можете получить эту ошибку из-за отсутствия расширения расширения GD PHP.

Для установки на Ubuntu w/Apache выполните:

sudo apt-get install php5-gd

а затем перезапустите apache.

Далее следуют инструкции Ubuntu: http://www.cyberciti.biz/faq/ubuntu-linux-install-or-add-php-gd-support-to-apache/

Ответ 3

Если у вас есть защищенный паролем корневой каталог с помощью файла .htaccess, удалите эту защиту и повторите попытку.

Внутри .htaccess найдите:

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

Обязательно переустановите свои настройки безопасности, так как вы можете найти более эффективные способы защиты своего сайта, чем этот.

Ответ 4

За этой ошибкой возникает неправильное разрешение. Если изменение группы на пользователя apache/www-data и изменение разрешения на запись не разрешает это. Отключить .htpasswd аутентификацию, если включен в .httaccess, чтобы сделать этот комментарий для этих строк

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

Ответ 5

Обращаясь к той же проблеме, я обнаружил, что в моем случае это была проблема с моей конфигурацией nginx.

Максимальный размер загрузки по умолчанию для nginx равен 1 МБ. Если вы загружаете файлы большего размера, вы увидите 413 ошибок в журнале ошибок nginx, а Magento просто скажет вам не описательную "ошибку загрузки HTTP".

Измените или добавьте параметр [client_max_body_size] в nginx.conf, где-то в разделе http {}, как в этом примере, где я установил максимальный размер загрузки до 200 Мб:

http {

    client_max_body_size 200m; 

}

Ответ 6

У меня была эта проблема в Magento 1.7, потому что имя файла изображения "dutchman's_pipe.jpg" содержало апостроф. Надеюсь, это поможет кому-то другому.

Ответ 7

Я нашел еще одну возможную причину. В Magento версии 1.6.2.0 это произошло, потому что в разделе System → Web → Session были активированы REMOTE_ADDR и HTTP_USER_AGENT. Я снова переключил оба на "нет", и эта ошибка исчезла (без каких-либо изменений!)

Ответ 8

У меня возникла такая же проблема на моем сервере Ubuntu 10.04. Это было вызвано этой конкретной настройкой.

Теперь я сделал следующее изменение в этом файле: /etc/apache2/mods-available/fcgid.conf (у вас должен быть доступ root для его изменения):

FcgidMaxRequestLen 1073741824

Почти в конце после последней строки команд Fcgi и перед </IfModule> просто добавьте:

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