За день до этого я обновил новый модуль, и он работал нормально. Теперь, когда я бегу bin/magento setup:upgrade
, я получаю следующее исключение. Я попытался установить разрешения для 777 (или 770) для pub
папки в Magento 2, но она не работает.
[Исключение]
Отсутствуют разрешения на запись в следующие каталоги: 'pub / static'
magento2
permissions
static-content
Тао Фам
источник
источник
Ответы:
TL; Укороченная
pub/static
папка DR .Для меня у меня была более старая установка, которая, вероятно, имела некоторые символические ссылки и старые файлы, которые больше не существуют.
Проблема в
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 -exec rm {} \;
).источник
Внутри вашего корневого каталога Magento выполните следующие команды, и ваша проблема должна исчезнуть:
Работал на меня.
источник
.htaccess
файл. Вам нужен.htaccess
файл.Вы должны настроить разрешения, как описано в официальной документации: 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
.Это код строки:
Мне нужно решение не меняйте файл ядра.
источник
Исправить отказ в разрешении bin / magento
chmod u + x bin / magento
источник
Эти папки должны иметь соответствующие разрешения, как описано в: http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html.
Когда вы удаляете содержимое папки pub / static и предоставляете папке pub / static разрешение 770, сообщение больше не будет отображаться.
источник
У меня была такая же проблема, где я не мог установить Magento через командную строку. Простое создание папки
pub/static
решило проблему.источник
Если у кого-то есть эта проблема на ОС Windows. Просто выполните команду в командной строке администратора, и она будет работать как шарм. Надеюсь, это кому-нибудь поможет.
источник
В моем случае при запуске команды обновления через пользователя без полномочий root или пользователя с ограниченными правами возникла ошибка. Убедитесь, что вы выполнили команду обновления с пользователем с достаточными разрешениями.
источник
Я много раз проверял права на запись и все было хорошо.
источник
Выполните следующую команду для следующих трех IP-адресов:
источник
не используйте это:
это удалит все файлы, даже .htaccess
Вы можете использовать это будет лучше:
после этого использования:
источник
просто удалите паб / статическую папку из вашего magento2
затем разверните статический контент magento2
с помощью этого процесса моя проблема решена.
источник
rm -r pub/static/*
и это должно избежать удаления файла .htaccess.