刚刚在Linux服务器上安装Magento。
当我去Magento“管理面板”时,我可以看到以下消息 页面顶部。
您的网络服务器配置不正确。因此,可以从外部访问包含敏感信息的配置文件。请联系您的托管服务提供商。
此错误消息的最可能原因是什么?
谢谢,
John Goche
答案 0 :(得分:19)
Magento在各种目录中使用.htaccess文件拒绝访问目录树。你可以在app,media,var和Magento认为适合的地方找到它们。他们做了各种各样的事情,比如拒绝观看(app,var),执行(媒体.htaccess)。要使这些.htaccess文件起作用,在doc root .htaccess或虚拟服务器配置中设置以下内容非常重要。
Options FollowSymLinks
AllowOverride All
很可能Magento检测到不允许应用程序目录.htaccess文件拒绝对您的应用程序/ etc / local.xml文件进行网络访问,因此所有拥有数据库凭据和加密密钥的人都可以看到网络浏览器。
另一个问题可能是您的文件/目录权限过于宽松。
对于在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(mod_php)下运行的Magento
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
对于下面的问题, app / etc文件夹应该包含以下.htaccess文件。试图通过服务器读取任何内容应该抛出403错误。您的下一步是与您的网络托管服务商取得联系,以找出该文件未被尊重的原因。
Order deny,allow
Deny from all
注意:如果您正在使用其他http服务器(如nginx),则必须搜索在Magento目录树中创建的所有.htaccess文件,并在您的nginx中重新创建Magento使用的所有.htaccess函数设置,因此您具有与标准Apache DSO安装相同的文件/目录保护。 IIS上的Windows安装也是如此。
答案 1 :(得分:4)
我尝试了以上所有内容,但没有一个在我们的网络托管上工作。 “AllowOverride All”对我们的vhosts.conf不起作用,因此,“拒绝所有人”被忽略了。
将此代码添加到.htaccess并且它有效...
##### Block access to local.xml #####
RewriteRule ^(.*)local.xml$ - [F,L]
答案 2 :(得分:2)
1.在httpd.conf中添加以下内容。
<Directory "/var/www/html/app/etc">
Options FollowSymLinks
AllowOverride All
</Directory>
将权限从ftp设置为local.xml =&gt; 600
sudo /etc/init.d/httpd restart
sudo /etc/init.d/httpd reload
答案 3 :(得分:1)
Magento检查/app/etc/local.xml
是否可访问(使用curl)。您可以在浏览器中自行尝试验证。
要解决此问题,您必须确保此文件不再可见。你如何做到这一点取决于你的网络服务器。 Magento附带.htaccess
以阻止访问,但您可能已经复制了没有隐藏文件的文件夹。 cp
不会复制它们。或者apache无法访问.htaccess
检查文件权限。
答案 4 :(得分:0)
我按照以下步骤解决了这个问题:
确认Magento安装的app子目录中有.htaccess文件。如果缺少.htaccess文件,请在包含以下指令的app子目录中创建一个新的.htaccess文件:
Order deny,allow
Deny from all
确认已正确设置文件权限。通常,目录应具有设置为755的权限(用户的读取,写入和执行权限,以及组和世界的读取和执行权限)。文件的权限应设置为644(用户的读写权限以及组和世界的读取权限)。
请将.htaccess文件权限更改为644,然后刷新magento管理页面。
答案 5 :(得分:0)
@Brijmohan karadia和@Spudley
您的解决方案有效。我正在使用AWS Linux进行Magento安装。
转到/etc/httpd/conf/httpd.conf
在httpd.conf中添加以下内容。
选项FollowSymLinks AllowOverride All
3.在文件路径/app/etc/local.xml中设置SSH / FTP到local.xml =&gt; 600的权限
答案 6 :(得分:-4)
app / etc / local.xml文件需要chmodded为600,错误将消失;)