我的Magento 2开发环境已开始向我戳以下错误消息
您的Web服务器设置不正确,并允许未经授权访问敏感文件。请联系您的主机提供商
有没有人追踪
- 正在执行哪些安全检查?
- 这些检查在核心代码中的何处发生?
Magento\AdminNotification\Model\System\Message\Security
课堂。您在哪种情况下收到此消息?
我的Magento 2开发环境已开始向我戳以下错误消息
您的Web服务器设置不正确,并允许未经授权访问敏感文件。请联系您的主机提供商
有没有人追踪
Magento\AdminNotification\Model\System\Message\Security
课堂。您在哪种情况下收到此消息?
Answers:
此检查表明任何人都可以访问app/etc/*
文件。例如app/etc/env.php
,将凭据存储到DB,密钥和其他资源的文件。
更好的解决方案是将pub
文件夹配置为Web根目录,而不是magento2
大多数安装文档中指定的默认安装目录(通常是默认安装目录)。这将提高整体安全性并解决您的问题。确保还编辑其他Apache / Nginx位置定义。对于Nginx,$MAGE_ROOT
指令应为/var/www/example.com/magento2/pub
,您的指令也应为 root
。确保也进行更改后刷新缓存,否则图像和css文件将被破坏(系统->工具->缓存管理->刷新Magento缓存)。
\Magento\AdminNotification\Model\System\Message\Security
负责此功能。参见_isFileAccessible
方法。
这肯定会给Magento商店带来风险。
MAGENTO 2 Centos 7服务器
要修复消息“您的Web服务器设置不正确,并允许未经授权访问敏感文件。请与您的主机提供商联系”。
1)### shh-从您的root帐户运行以下命令。###
chown -R accountuser:accountusergroup /path-to-root-folderl/
2)### ssh-从域帐户用户(不是您的Web服务器帐户,如apache等)运行以下命令。###
find . -type d -exec chmod 770 {} \; & find . -type f -exec chmod 660 {} \; && chmod u+x bin/magento
chmod -R g+w /path-to-root-folderl/{pub,var} chmod -R g+w /path-to-root-folderl/{app/etc,vendor} chmod -R g+s pub/static pub/media . find var/generation -type d -exec chmod g+s {} \; find var/session -type d -exec chmod g+s {} \;
3)### ssh-从您的root帐户运行以下命令。###
chown -R domain_account_user:webservergroup /path-to-root-folderl/var chown -R domain_account_user:webservergroup /path-to-root-folder/app/etc chown -R domain_account_user:webservergroup /path-to-root-folderl/pub chown -R webserverUSER:webservergroup /path-to-root-folder/var/session
这将修复此错误和许多其他错误。注意:在使用magento 2时禁用SUPHP,您将省去很多麻烦。目前,我正在使用ea-apache24-mod_cgid和PHP 7和ea-php70-php-fpm运行mod_mpm_event。
在添加PHP-FPM之前,我让我的magento 2仅运行了带有ea-apache24-mod_cgid和PHP 7的mod_mpm_event。
如果您正在运行cpanel / apache,并且不想使用easyapache迁移到mod_mpm_event + ea-apache24-mod_cgid,则可以使用ssh中的shell。从ssh运行下面的命令。yum shell删除ea-apache24-mod_mpm_worker删除ea-apache24-mod_cgi安装ea-apache24-mod_mpm_event安装ea-apache24-mod_cgid运行退出
就我而言,问题是由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,则在magento安装的根目录中将nginx.conf文件重命名为“ nginx.conf.sample”。这对我有用,并且警告消息在Magento Admin中消失了。