Magento Apacheconfiguration(app / etc / local.xml访问警告)

刚刚在Linux服务器上完成安装Magento。

当我去到Magento“pipe理面板”时,我可以在页面顶部看到以下消息。

您的Web服务器configuration不正确。 因此,可以从外部访问具有敏感信息的configuration文件。 请联系您的主机提供商。

这个错误信息最可能的原因是什么?

谢谢,

约翰·戈奇

Solutions Collecting From Web of "Magento Apacheconfiguration(app / etc / local.xml访问警告)"

Magento在各种目录中使用.htaccess文件来拒绝对目录树的访问。 你会发现他们在应用程序,媒体,变种,以及Magento认为适合他们的任何地方。 他们做各种事情,如拒绝查看(应用程序,变种),执行(媒体.htaccess)。 要使这些.htaccess文件起作用,在doc根.htaccess或虚拟服务器配置中设置以下内容非常重要。

 Options FollowSymLinks AllowOverride All 

Magento很可能会检测到应用程序目录.htaccess文件不允许拒绝您的应用程序/ etc / local.xml文件的网络访问,因此所有数据库凭据和加密密钥对于任何使用Web浏览器的人都是可见的。

另一个问题可能是您的文件/目录权限过于宽松。

对于在FastCGI,SuPHP或LSAPI下运行的Magento

 find . -type f -exec chmod 644 {} \; find . -type d -exec chmod 755 {} \; chmod 550 pear #for Magento pre 1.5 chmod 550 mage #for Magento 1.5 and up chmod 550 cron.sh 

对于在DSO下运行的Magento(mod_php)

 find . -type f -exec chmod 644 {} \; find . -type d -exec chmod 755 {} \; chmod o+w var var/.htaccess app/etc chmod 550 pear #for Magento pre 1.5 chmod 550 mage #for Magento 1.5 and up chmod 550 cron.sh chmod -R o+w media 

对于下面的问题,应用程序/ etc文件夹应该有以下.htaccess文件。 尝试通过服务器读取任何内容应该会引发403错误。 您的下一步是与您的网站托管人联系,找出为什么该文件不被尊重。

 Order deny,allow Deny from all 

注意:如果您使用的是像nginx这样的替代http服务器,则必须搜索在Magento目录树中创建的所有.htaccess文件,然后在nginx设置中重新创建Magento使用的所有.htaccess函数,以便拥有相同的文件/目录保护作为标准的Apache DSO安装。 IIS上的Windows安装也一样。

我尝试了以上所有,并没有在我们的网络托管工作。 “AllowOverride All”在我们的vhosts.conf上不起作用,因此“忽略所有”被忽略。

将此代码添加到.htaccess,它的作品魅力…

 ##### Block access to local.xml ##### RewriteRule ^(.*)local.xml$ - [F,L] 

1.在httpd.conf中添加以下内容。

  <Directory "/var/www/html/app/etc"> Options FollowSymLinks AllowOverride All </Directory> 
  1. 将ftp权限设置为local.xml => 600

  2. sudo /etc/init.d/httpd restart

  3. sudo /etc/init.d/httpd reload

Magento检查/app/etc/local.xml是否可以访问(使用curl)。 您可以在浏览器中自行尝试验证。

要解决此问题,请确保此文件不再可见。 你怎么做取决于你的网络服务器。 Magento附带一个.htaccess来防止访问,但你可能已经复制了没有隐藏文件的文件夹。 cp不会复制它们。 或者apache无法访问.htaccess检查文件的权限。

我通过以下步骤解决了这个问题:

确认Magento安装的app子目录中有一个.htaccess文件。 如果缺少.htaccess文件,请在包含以下指令的app子目录中创建一个新的.htaccess文件:

 Order deny,allow Deny from all 

确认文件权限设置正确。 一般来说,目录的权限应设置为755(对用户的读取,写入和执行权限,以及对组和世界的读取和执行权限)。 文件应具有权限设置为644(读取和写入权限的用户,并阅读组和世界的权限)。

请将.htaccess文件权限更改为644,然后刷新magento管理页面。

@Brijmohan karadia和@Spudley

你的解决方案奏效 我正在使用AWS Linux进行Magento安装。

  1. 进入/etc/httpd/conf/httpd.conf

  2. 在httpd.conf中添加以下内容。

    选项FollowSymLinks AllowOverride全部

3.在文件路径/app/etc/local.xml中将SSH / FTP权限设置为local.xml => 600

  1. sudo服务httpd重启

应用程序的/ etc / local.xml文件需要被修改为600,错误将消失;)