web-dev-qa-db-ja.com

Magento-HTTPエラーをアップロードしますか?

Magento 1.7の管理者で画像をアップロードしようとすると、「HTTPのアップロードエラー」が発生するようです。メディアフォルダ/ファイル全体を777に設定しました。htaccess情報は正しく、パスワード保護を使用していません。これはどのブラウザでも発生します。

どんな提案も大歓迎です!

11

この問題の原因となる可能性のあるものはたくさんありますが、試すことができることがいくつかあります。

  • / mediaディレクトリとすべてのサブディレクトリにApacheのユーザーグループ(通常は「www-data」または「httpd」)があることを確認してください。

    Sudo chgrp -R www-data /path/to/magento/media
    
  • / mediaディレクトリとすべてのサブディレクトリに、Apacheのユーザーグループに適切な権限が付与されていることを確認してください。

    Sudo chmod -R 775 /path/to/magento/media
    
  • [システム]-> [構成]-> [一般]-> [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/localおよびapp/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>
    

    もう一度やり直してください。同じエラーが発生した場合は、モジュールの競合が除外されます。

  • 画像が十分に大きい場合は、PHP設定:

    1. ロードされたphp.iniを特定します。

      <?php
      phpinfo(); // Look for "Loaded Configuration File"
      
    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
      

      Webサーバーを再起動します。

      Sudo /etc/init.d/Apache2 restart
      

ここまで到達しても何も機能しない場合は、問題の種類を絞り込むために、時間のかかる作業をいくつか実行できます。

  • 同じ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/*
        
      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コアファイルまたはApache仮想ホストにあります。

より多くの情報を提供したい場合、おそらく最も有用な部分は、ロードされたphp.iniApache2.conf、および/またはhttpd.confのコピー、および.htaccessからdocument rootのすべてのサブディレクトリを介した/mediaファイルのコピーであり、機密情報は難読化されています。コース。

16
Adelmar

Chjohasbrouckの答えに追加するために、Gd PHP拡張機能を有効にしていないことからこのエラーが発生することもあります。

Apacheを使用してUbuntuにインストールするには、次のようにします。

Sudo apt-get install php5-Gd

その後、Apacheを再起動します。

ここでのUbuntuの詳細な手順: http://www.cyberciti.biz/faq/ubuntu-linux-install-or-add-php-Gd-support-to-Apache/

13
pantsburgh

.htaccessファイルを使用してルートディレクトリをパスワードで保護している場合は、この保護を解除して再試行してください。

.htaccess内で、次を探します。

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

これよりもサイトを保護するためのより良い方法が見つかる可能性があるため、セキュリティ設定のニーズを再確認してください。

9
Meetai.com

このエラーの背後にある問題は、間違った許可です。グループをApache/www-dataユーザーに変更し、書き込み権限を変更してもこれが解決しない場合。このコメントを行うために.httaccessで有効になっている場合は、.htpasswd認証を無効にします。

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

同じ問題に対処していると、私の場合はnginx構成の問題であることがわかりました。

Nginxのデフォルトの最大アップロードサイズは1MBです。より大きなファイルをアップロードすると、nginxエラーログに413のエラーが表示されますが、Magentoは説明のつかない「httpアップロードエラー」を通知します。

最大アップロードサイズを200mbに設定した次の例のように、http {}セクションのどこかにあるnginx.confの[client_max_body_size]パラメーターを変更または追加します。

http {

    client_max_body_size 200m; 

}
2
Ottonet

画像ファイル名「dutchman's_pipe.jpg」にアポストロフィが含まれていたため、Magento1.7でこの問題が発生しました。私はこの助けが他の誰かであることを願っています。

2
gardener

Ubuntu10.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>
0
user1737814

別の考えられる理由を見つけました。 Magentoバージョン1.6.2.0では、これは[システム]-> [ウェブ]-> [セッション]でREMOTE_ADDRとHTTP_USER_AGENTがアクティブ化されたために発生しました。両方を再び「いいえ」に切り替えたところ、このエラーは消えました(他の変更はありません!)

0
Ziagl