すべてのフォルダーに777のアクセス許可を与えた後でも、Magento画像のアップロードが機能しない


9

magento管理パネルで画像をアップロードできず、「宛先フォルダーが書き込み可能でないか、存在しません」というエラーが発生します。最近、すべてのファイルを1つのホスティングから別のホスティングに移動しました。これに対する解決策はありますか?


どのようなホスティングパッケージがありますか?サポートが含まれている場合は、現在の権限について彼らに尋ねる価値があるかもしれません。
David Manners 2014年

同じサーバーでホストされている2つのWebサイトがあり、ファイルがアップロードされていなくても、ファイルをアップロードするすべての権限があります
user3164549

回答:


16

プロジェクトでファイルlib/Varien/File/Uploader.phpを開きMage::log()save()関数内に配置します。

public function save($destinationFolder, $newFileName = null)
{
    $this->_validateFile();

    if ($this->_allowCreateFolders) {
        $this->_createDestinationFolder($destinationFolder);
    }

    if (!is_writable($destinationFolder)) {
        // Put a mage::log() and check what is the folder magento is looking for.
        Mage::log($destinationFolder);
        throw new Exception('Destination folder is not writable or does not exists.');
    }
    ...
}

ログから、Magentoが探しているフォルダーを見つけることができます。次に、そのフォルダーのアクセス許可を確認します。


5
Media / tmp / category / productにファイルアクセス許可を与えるのを忘れてしまい、ありがとうございます。そのフォルダーにファイルアクセス許可を与えると、問題は解決しました
user3164549

2
問題が解決したことをうれしく思います。これが問題の解決に役立った場合は、それを回答としてマークしてください。
スケシニ2014年

5

マゼント2

Magento 2でも同じエラーが発生します。これは、この場合のエラーの原因となったファイルです。

vendor/magento/framework/File/Uploader.php

行に256このコードを一時的に配置して、書き込み不可/存在しないフォルダーを取得できます。

if( !is_writable($destinationFolder) ) {
    // throw new Exception('Destination folder is not writable or does not exists.');
    throw new Exception($destinationFolder);
} 

それ以外の場合は、これらのフォルダーが存在し、Webサーバーから書き込み可能かどうかを確認します。

  • pub/media/catalog/
  • pub/media/catalog/category
  • pub/media/catalog/product
  • pub/media/images
  • pub/media/wysiwyg/

3

私にとって問題は作ることによって解決されました

pub / media / tmp

Webサーバーによって書き込み可能

「pub / media」ディレクトリの下の次のフォルダも書き込み可能です

- banners
- catalog
- images
- wysiwyg

3

何回かこの問題に遭遇し、権限を確認した後のサーバーではなく、通常はイメージファイル自体であることを忘れてしまいました。寸法またはファイルサイズが大きすぎるため、画像をアップロードできませんでした。

私にとっての解決策は:


2

メディアフォルダーmedia / tmp / catalog / productが存在することを確認し、「そのディレクトリをウェブサーバーから書き込み可能にする」


権限をに設定する代わりに、777「そして、そのディレクトリをウェブサーバーから書き込み可能にする」と言う方が良いでしょう。Webサーバーが画像を書き込むことができるようにするために、すべてのユーザーに書き込みアクセス権を与える必要はないという考え方です。(私が反対票を投じたのは私ではありませんが、疑問に思った場合に備えて、これが理由であると考えられます)
Dan

はい、もちろん;)
Altravista 2015

2

777権限のあるメディアフォルダーを確認してください。コンパイルモードを有効にしている場合は、777権限のあるフォルダーも確認しください。

これらのフォルダーに777のアクセス許可を与えた後、問題は解決しました。


0

Plesk管理からの有効期限が切れた証明書である可能性があります(これは私の場合でした)。

上記の手順を試しましたが、うまくいきませんでした。そこから、FileZillaを介してファイルにアクセスして、すべてのフォルダーに一度にアクセス許可を付与しようとしました。そのため、期限切れの証明書に関するエラーメッセージが表示されました。これはストア自体のSSL証明書ではなく、Pleskの管理です。新しい自己署名証明書を作成し、そのPlesk管理を適用すると、すべてが正常に戻りました。

これでうまくいきました。ここに私の貢献を残します。

幸運を


0

vhost上のmagento DocumentRootが適切に設定されている場合、ファイルのアップロードに関するMagentoバグがあります

/path/to/magento/pub

(非推奨)の代わりに

/path/to/magento

アップローダーはファイルを作成しようとします

/path/to/magento/pub/pub/your_upload_dir

場所pubは2回行くことに注意してください。彼らは、2.2.0以降でそれを修正する予定であると言いましたが、2.2.1でもこの問題は発生します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.