Magento - 上传HTTP错误?

Mid*_*der 11 magento magento-1.7

每当我尝试在Magento 1.7的管理员中上传图像时,我似乎都会收到"上传HTTP错误".我将整个媒体文件夹/文件设置为777,.htaccess信息是正确的,我没有使用密码保护,这种情况发生在任何浏览器中.

任何建议都非常感谢!

Ade*_*mar 16

有很多事情可能导致这个问题,但这里有一些你可以尝试的事情:

  • 确保/ media目录和所有子目录都有Apache的用户组(通常是'www-data'或'httpd'):

    sudo chgrp -R www-data /path/to/magento/media
    
    Run Code Online (Sandbox Code Playgroud)
  • 确保/ media目录和所有子目录具有给予Apache用户组的适当权限:

    sudo chmod -R 775 /path/to/magento/media
    
    Run Code Online (Sandbox Code Playgroud)
  • 在系统 - >配置 - >常规 - > Web中,确保"安全"和"不安全"下的"基本URL"和"基本媒体URL"正确无误

    1. 在您的Magento数据库中,该表core_config_data包含您{{secure_base_url}}和的原始值{{unsecure_base_url}}

      确保这些值正确并且有斜杠,例如 http://example.com/

    2. 在上面的系统配置中,请确保这些值是正确的,并考虑原始值中的尾部斜杠.这意味着它们应该看起来像{{secure_base_url}}media没有斜线

  • 在系统 - >缓存管理中,禁用缓存

  • 从新版本的Magento下载.htaccess文件(包括文档根目录中的.htaccess,以及/ media和/ media的所有子目录中的任何.htaccess文件),备份当前的.htaccess文件,然后明确复制新的.htaccess文件以替换它们.

    因为.htaccess以'.'开头.某些Linux命令会忽略它,这会导致人们认为他们实际上没有复制或覆盖.htaccess文件,所以要小心这样做.

    现在再试一次,如果你得到同样的错误,那将排除.htaccess.

  • 如果您正在使用SSL,请尝试禁用SSL,如果您收到相同的错误,则会排除SSL

  • 导航到app/code/localapp/code/community记录这些目录中的命名空间.现在转到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>
    
    Run Code Online (Sandbox Code Playgroud)

    现在再试一次,如果你得到同样的错误,那将排除模块冲突

  • 如果图像足够大,您可能会受到PHP设置的限制:

    1. 确定你加载的php.ini:

      <?php
      phpinfo(); // Look for "Loaded Configuration File"
      
      Run Code Online (Sandbox Code Playgroud)
    2. 编辑你的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
      
      Run Code Online (Sandbox Code Playgroud)

      重启您的网络服务器:

      sudo /etc/init.d/apache2 restart
      
      Run Code Online (Sandbox Code Playgroud)

如果你已经做到这一点并且没有任何效果,那么你可以采取一些时间密集的措施来缩小它的问题范围:

  • 在同一个Web服务器上创建全新的Magento安装并测试图像上传.

    1. 如果它们仍然不起作用,那么Apache或PHP配置(甚至可能是版本)也存在问题

    2. 如果它们确实有效,则可能是您的Magento核心文件或Magento配置或Magento数据库或Apache虚拟主机存在问题.采取以下步骤来帮助确定:

      1. 创建一个新数据库

      2. 删除所有内容 /path/to/new/magento/var/*

        sudo rm -rf /path/to/new/magento/var/*
        
        Run Code Online (Sandbox Code Playgroud)
      3. 在您较旧的Magento管理员中,转到System->Tools->Backups并单击Create Backup.完成后,转到/path/to/old/magento/var/backup/并将备份插入到您创建的新数据库中:

        mysql -p -u username database_name < backup_file
        
        Run Code Online (Sandbox Code Playgroud)
      4. 在新的Magento文件系统中,导航到/path/to/new/magento/app/etc/local.xml并编辑它以指向新数据库:

        <username>{{db_user}}</username>
        <password>{{db_pass}}</password>
        <dbname>{{db_name}}</dbname>
        
        Run Code Online (Sandbox Code Playgroud)
      5. 再次尝试在新的Magento安装上上传图片,如果您收到错误,则问题出在您的Magento配置或Magento数据库中.如果您没有收到错误,则问题出在您的Magento核心文件或Apache虚拟主机中.

如果您想提供更多信息,那么最有用的部分可能是您所加载的文件的副本php.ini,apache2.conf和/或文件的httpd.conf副本,以及所有子目录,当然,任何敏感信息都会被混淆..htaccessdocument root/media

  • "mcrypt"和"gd"PHP扩展错过了.以上列表要检查的内容非常有用,谢谢.但是我已经检查了一切,并没有在我的Magento上得到结果.最终我发现了问题 - 也许它对某人有用 - 在一段时间之前完成服务器迁移后,Magento正常工作所需的两个PHP扩展缺失 - "mcrypt"和"gd".可能其中一个导致上传"HTTP错误".安装后,它就像一个魅力. (3认同)

小智 13

要添加到chjohasbrouck的答案,您还可以从未启用GD PHP扩展程序中获得此错误.

要在Ubuntu上安装Apache/do:

sudo apt-get install php5-gd
Run Code Online (Sandbox Code Playgroud)

然后重启apache.

进一步的Ubuntu说明如下:http://www.cyberciti.biz/faq/ubuntu-linux-install-or-add-php-gd-support-to-apache/


Mee*_*com 9

如果您使用.htaccess文件对您的根目录进行了密码保护,请删除此保护并重试.

在你的内心.htaccess,寻找:

AuthName "Restricted Area"
AuthType Basic
AuthUserFile /path/to/your/passwd_file
AuthGroupFile /dev/null
require valid-user
Run Code Online (Sandbox Code Playgroud)

请务必重新检查您的安全设置需求,因为您可能会找到比此更好的方法来保护您的网站.