Моя среда разработки Magento 2 начала высовывать мне следующее сообщение об ошибке
Ваш веб-сервер настроен неправильно и разрешает несанкционированный доступ к конфиденциальным файлам. Пожалуйста, свяжитесь с вашим хостинг-провайдером
Кто-нибудь выследил
- Какие проверки безопасности происходят?
- Где в основном коде происходят эти проверки?
Magento\AdminNotification\Model\System\Message\Security
класса. в какой ситуации вы получили это сообщение?Ответы:
Эта проверка говорит, что любой может получить доступ к
app/etc/*
файлам. Например,app/etc/env.php
файл, в котором хранятся учетные данные в БД, ключ шифрования и другие ресурсы.Лучшее решение - настроить
pub
папку в качестве корневого веб-каталога вместо каталога установки по умолчанию, как правилоmagento2
, как указано в большинстве установочных документов. Это улучшит общую безопасность и решит вашу проблему. Обязательно отредактируйте и другие определения местоположения Apache / Nginx. Для Nginx$MAGE_ROOT
директива должна быть/var/www/example.com/magento2/pub
, как и вашаroot
директива. Обязательно очистите кэш после внесения изменений, иначе изображения и css файлы будут повреждены (Система -> Инструменты -> Управление кэшем -> Очистить кэш Magento).\Magento\AdminNotification\Model\System\Message\Security
несет ответственность за эту функциональность. Смотрите_isFileAccessible
метод.Это, безусловно, будет рисковать магазином Magento.
источник
Если вы используете Apache, убедитесь, что
.htaccess
файл, который входит в magento в/app/
папке, присутствует на вашем веб-сервере, и что Apache настроен на использование файлов .htaccess для переопределения настроек для каждой папки, но это должно быть включено по умолчанию.Содержимое этого файла должно быть:
источник
Это системное сообщение, и это сообщение пришло от
getText()
метода, классаMagento\AdminNotification\Model\System\Message\Security
.Когда мы открываем панель администратора, контроллер проверяет все уведомления и связанную с ними безопасность.
вы можете отладить из
execute()
метода вMagento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php
.источник
MAGENTO 2 Centos 7 Сервер
Исправить сообщение «Ваш веб-сервер настроен неправильно и разрешает несанкционированный доступ к конфиденциальным файлам. Пожалуйста, свяжитесь с вашим хостинг-провайдером».
1) ### shh- Запустите следующую команду из вашей учетной записи root. ###
2) ### ssh - Запустите следующую команду от пользователя учетной записи домена (не вашей учетной записи веб-сервера, такой как apache и т. Д.). ###
3) ### ssh - Запустите следующую команду из вашей учетной записи root. ###
Это исправит эту ошибку и многие другие ошибки. Примечание: отключите SUPHP при использовании magento 2, вы избавите себя от головной боли. В настоящее время я запускаю mod_mpm_event с ea-apache24-mod_cgid и PHP 7 и ea-php70-php-fpm.
Мой magento 2 работал только с mod_mpm_event с ea-apache24-mod_cgid и PHP 7, прежде чем я добавил PHP-FPM.
Если вы используете cpanel / apache и не хотите использовать easyapache для перехода на mod_mpm_event + ea-apache24-mod_cgid, вы можете использовать shell из ssh. Запустите команду ниже из ssh. yum shell удалить ea-apache24-mod_mpm_worker удалить ea-apache24-mod_cgi установить ea-apache24-mod_mpm_event установить ea-apache24-mod_cgid выполнить quit
источник
В моем случае проблема была вызвана тем, что представление
default
магазина было отключено. В то время как проверка безопасности была сделана,Magento\AdminNotification\Model\System\Message\Security
класс попытался загрузитьapp/etc/config.php
файл, было сгенерировано исключение (Fatal error: Uncaught Magento\Framework\Exception\NoSuchEntityException: Default store is inactive
), которое преобразовало код ответа в 200 (обычно это должно привести к 404). Таким образом, система подумала, что файл доступен, что означало бы проблему безопасности.Просто включите представление
default
магазина, чтобы исправить это.источник
Одно простое решение - если вы не используете nginx, переименуйте файл nginx.conf в nginx.conf.sample в корневом каталоге вашей установки magento. Это сработало для меня, и предупреждающее сообщение исчезло в Magento Admin.
источник
Я думаю, это проблема с правами доступа к каталогам и файлам. Пожалуйста, дайте соответствующие разрешения, такие как 0755 для каталогов 0644 для файлов, если это не решает проблему, пожалуйста, проверьте также файл .htaccess.
источник
Эти тесты присутствуют внутри класса,
Magento\AdminNotification\Model\System\Message\Security
и этот текст уведомления приходитfunction getText()
. Я думаю, что magento проверяет доступностьapp/etc/*
файлов и на основании этого показывает предупреждение в админ-панели.источник