前日、新しいモジュールを更新しましたが、正常に機能していました。さて、実行するbin/magento setup:upgrade
と、次の例外が発生します。pub
Magento 2 のフォルダーのアクセス許可を777(または770)に設定しようとしましたが、機能しません。
[例外]
次のディレクトリへの書き込み権限がありません: 'pub / static'
前日、新しいモジュールを更新しましたが、正常に機能していました。さて、実行するbin/magento setup:upgrade
と、次の例外が発生します。pub
Magento 2 のフォルダーのアクセス許可を777(または770)に設定しようとしましたが、機能しません。
[例外]
次のディレクトリへの書き込み権限がありません: 'pub / static'
回答:
TL; DR pub/static
フォルダーを切り捨てます。
私にとっては、古いインストールがありました。おそらく、いくつかのシンボリックリンクと、もはや存在しない古いファイルがありました。
問題checkInstallationFilePermissions
は、アクセス許可を再帰的にチェックすることです。ファイルとフォルダー。不足しているシンボリックリンクがあり、書き込み可能かどうかのチェックでfalseを返しました。
デバッグ方法:
setup/src/Magento/Setup/Model/FilePermissions.php
メソッドの行143に移動 checkRecursiveDirectories
行を追加する var_dump($subDirectory);var_dump($subDirectory->isWritable());
再実行 bin/magento setup:upgrade
これで、実際に何が間違っているかがわかり、修正できます。個人的に、私はすべてを削除しますpub/static
、これは自動生成されたコンテンツですので、あなたはそれを心配しないでください。
シンボリックリンクが壊れているため、開発中にこのエラーに遭遇しました。
元のファイルが保存されているモジュールのディレクトリを指すシンボリックリンクを使用しview/frontend/web
て、developer
モードでディレクトリにデプロイされたモジュールのディレクトリにファイルを作成しましたpub/static
。
開発のある時点で、モジュールからファイルを削除しましたが、存在しpub/static
ないファイルを指すシンボリックリンクがまだ存在していました。ファイルのいずれかの名前を変更した場合も同様です。
サイトがproduction
モードでbin/magento setup:static-content:deploy
実行されている場合、pub/static
シンボリックリンクを作成する代わりに、実際にファイルをディレクトリにコピーします。
この壊れたシンボリックリンクを見つけるために、シェルからコマンドを実行しました
find -L . -type l
壊れたシンボリックリンクを削除すると、問題が解決しました(たとえば、を使用find -L . -type l -exec rm {} \;
)。
公式ドキュメントに記載されているように、権限を設定する必要があります:http : //devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html
これは私の解決済みの一時的なものです。744行目と466行目をコメントします<magento_dir>/setup/src/Magento/Setup/Model/Installer.php
ます。
これは回線コードです:
$this->checkInstallationFilePermissions();
コアファイルを変更しないでください。
これらのフォルダーには、http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.htmlで説明されているような適切な権限が必要です。
pub / staticフォルダーの内容を削除し、pub / staticフォルダーに許可770を与えると、メッセージは再び表示されません。
Windows OSでこの問題が発生している場合。管理者のコマンドプロンプトでコマンドを実行するだけで、チャームのように機能します。これが誰かを助けることを願っています。
次の3つのIPアドレスに対して、次のコマンドを実行します。
<Magento-Directory>php bin\magento maintenance:allow-ips 127.0.0.1,
<Magento-Directory>php bin\magento maintenance:allow-ips "the ip of my localhost given by the NAT-Router" and
<Magento-Directory>php bin\magento maintenance:allow-ips "the ip of the NAT-Router"
magento2からpub / staticフォルダーを削除するだけです
rm -r pub/static
次に、magento2の静的コンテンツを展開します
php bin/magento setup:static-content:deploy
このプロセスを使用することで、同じ問題が解決しました。
rm -r pub/static/*
、それは.htaccessファイルの削除を避ける必要があります。