bin / magento setup:upgradeを実行すると、pub / staticディレクトリに書き込み権限がありません


19

前日、新しいモジュールを更新しましたが、正常に機能していました。さて、実行するbin/magento setup:upgradeと、次の例外が発生します。pubMagento 2 のフォルダーのアクセス許可を777(または770)に設定しようとしましたが、機能しません。

  [例外]
  次のディレクトリへの書き込み権限がありません: 'pub / static'


この問題を解決できたのですか?その場合は、ソリューションを投稿してください。
レーナパレフ

同じ問題がありますか?
サオファム

はい、私は同じ問題に直面しています。どうやって解決したの?
リーナパレフ

コアの行コードをコメントします。私のようにしたいですか?
サオファム

1
私はrelsoveを以下の投稿に投稿しました。私はそれを試すことができます
タオファム

回答:


30

TL; DR pub/staticフォルダーを切り捨てます。


私にとっては、古いインストールがありました。おそらく、いくつかのシンボリックリンクと、もはや存在しない古いファイルがありました。

問題checkInstallationFilePermissionsは、アクセス許可を再帰的にチェックすることです。ファイルとフォルダー。不足しているシンボリックリンクがあり、書き込み可能かどうかのチェックでfalseを返しました。

デバッグ方法:

  1. setup/src/Magento/Setup/Model/FilePermissions.php

  2. メソッドの行143に移動 checkRecursiveDirectories

  3. 行を追加する var_dump($subDirectory);var_dump($subDirectory->isWritable());

  4. 再実行 bin/magento setup:upgrade

これで、実際に何が間違っているかがわかり、修正できます。個人的に、私はすべてを削除しますpub/static、これは自動生成されたコンテンツですので、あなたはそれを心配しないでください。


1
setup:upgradeを実行した後、pub / staticを完全に削除しました。pub/ static内の唯一のフォルダーは__requirejsフォルダーです。CSS、何のスタイリングので、今までに何....男を逃しません..私は私は行っていないたくないされている
Lachezar Raychev

どうすればpub / staticのすべてを復元できますか?
ラチェザールRaychev

2
すべてが....とてもうまくいった:)私は本当にこのフレームワークを軽蔑し始める
Lachezar Raychev

3
pub / staticの内容を削除する場合は、コードベースの一部であり、再作成されないため、pub / static / .htaccessを削除しないでください:github.com/magento/magento2/tree/2.0/ pub / static
mttjohnson

パーフェクト!これでした
。.-Arvind07

11

シンボリックリンクが壊れているため、開発中にこのエラーに遭遇しました。

元のファイルが保存されているモジュールのディレクトリを指すシンボリックリンクを使用し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 {} \;)。


これも私の問題に対する答えでした、ありがとうmttjohnson!
ジョシュアソイロー16

4

Magentoルートディレクトリ内で以下のコマンドを実行すると、問題は解消されます。

$ rm -rf pub/static/*
$ php bin/magento setup:static-content:deploy

私のために働いた。


これも.htaccessファイルを削除します。.htaccessファイルが必要です。
アダーシュカトリ

2

公式ドキュメントに記載されているように、権限を設定する必要があります:http : //devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html


1
実際のアクセス許可は、URLが変更された場合にのみ発生しますか。
rob3000

再試行しますが、機能しません
サオファム

サブディレクトリに再帰的に実行することを忘れないでください:pub、pub / staticなど
Mage2.PRO

所有権は許可と同じくらい重要です。上記のリンクとdevdocs.magento.com/guides/v2.0/install-gde/prereq/…も確認してください。2人のユーザーが必要です。ローカルユーザーとWebサーバーユーザー
スティーブジョンソン

アプリケーションレベルでアクセス許可を設定するという考え全体が間違っているので、そのセクションのドキュメントは避けるべきだと思います。githubの問題に応じて次のバージョンで更新されます
Claudiu Creanga

1

これは私の解決済みの一時的なものです。744行目と466行目をコメントします<magento_dir>/setup/src/Magento/Setup/Model/Installer.phpます。

これは回線コードです:

$this->checkInstallationFilePermissions();

コアファイルを変更しないでください。


この問題は、pub / staticディレクトリの下の壊れたシンボリックリンク(以下で回答)が原因である可能性があります。壊れたシンボリックリンクを削除すると、コアファイルを変更せずに問題を解決できます。
mttjohnson


@EnvisionEcommerceリンクが機能しません。
MagePsycho



0

コマンドライン経由でMagentoをインストールできないという同じ問題がありました。フォルダーを作成するだけでpub/static問題は解決しました。


0

Windows OSでこの問題が発生している場合。管理者のコマンドプロンプトでコマンドを実行するだけで、チャームのように機能します。これが誰かを助けることを願っています。


0

私の場合、非rootユーザーまたは権限が制限されているユーザーでアップグレードコマンドを実行すると、エラーが発生しました。十分な権限を持つユーザーで必ずアップグレードコマンドを実行してください。


0

何回も書き込み許可を確認しましたが、すべてが正常でした。

  1. この行にコメントしましたが、例外が発生しました。
  2. 次に、setup:upgradeを実行しました。
  3. 例外を使用して行を元に戻しました
  4. 問題はもう再現しませんでした

0

次の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" 

0

これを使用しないでください:

rm -r pub/static

.htaccessでもすべてのファイルが削除されます

あなたはこれを使用することができますより良いです:

rm -rf pub/static/frontend
rm -rf pub/static/adminhtml

その使用後:

php bin/magento setup:static-content:deploy en_US -f 

-1

magento2からpub / staticフォルダーを削除するだけです

rm -r pub/static

次に、magento2の静的コンテンツを展開します

php bin/magento setup:static-content:deploy

このプロセスを使用することで、同じ問題が解決しました。


4
重要な.htaccessファイルが含まれているため、pub / staticディレクトリ全体を削除しないでください。静的コンテンツのデプロイ時に.htaccessファイルは再作成されません。実行できますがrm -r pub/static/*、それは.htaccessファイルの削除を避ける必要があります。
mttjohnson
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.