Magento 后台安全警告解决方案[ubuntu, LAMP, httpd.conf]

ubuntu系统下配置了LAMP环境后,在装了magento这套CMS后, 在进入后台时发现有如下的警告提示:

Your web server is configured incorrectly. As a result, configuration files with sensitive information are accessible from the outside. Please contact your hosting provider.

既然提示是联系hosting provider. 就说明是配置环境方面的问题, 这是一个解决问题的思路,根据这一思路, 经GG后发现和这个文件app/etc/local.xml 的访问权限有关,浏览器中输入 http://yourdomainname/app/etc/local.xml 发现确实可以直接访问,这个对于运行于网上提供服务的平台是不可想像的. 必须尽快解决这个问题, 问题很有可能出现在apache服务器上配置上, Apache的缺省配置禁止了Magento启用其控制文件, 而magento则在app文件夹下的.htaccess文件内使用了Deny from all, 这条命令来限制对该文件(local.xml)的访问权限, 知晓了它的原理, 就只需要在apache的配置文件上来解决了, 对于ubuntu系统来说(其他的非window系统可做参考), 找到apache2服务器的配置文件却不是一件容易的事, 因为当你通过正常的途径找到httpd.conf时, 却发现这个文件里啥也没有,充其量也就是为了解决NameVirtualHost *:80 has no VirtualHosts, 这个问题而设置的ServerName localhost, 这个命名而已, 具体的详见笔者另一篇博客, 它的实际配置文件其实是放在/etc/apache2/sites-available和链接文件夹/etc/apache2/sites-enable/之下. 打开/etc/apache2/sites-available/对应的虚拟主机配置目录, 将所有AllowOverride None处都改为AllowOverride All, 然后保存. 然后你查看一下/etc/apache2/sites-enable/文件夹对应的文件,确认它也做了相应的修改(其实几乎一定和/etc/apache2/sites-available/文件夹下的文件一致, 因为它们是链接对应关系, 除非像我一样, 直接把/etc/apache2/sites-available/文件直接复制到/etc/apache2/sites-enable/文件夹一样才需要手动修改). 保存后退出.进入shell, 重启apache2服务器:

/etc/init.d/apache2 restart

进入magento后台, 刷新缓存后,你就会发现那个警告已经没有了, 同时你在浏览器输入:http://yourdomainname/app/etc/local.xml就会出现403提示:

You don’t have permission to access /magento/app/etc/local.xml on this server

至此问题解决!