Magento客户端被服务器配置拒绝。

17

Magento只显示一个白色主页,在error_log中给出的错误是:

client denied by server configuration: /var/www/httpdocs/app/etc/local.xml 

我可以正常访问管理员区域,有没有人知道为什么会出现这种情况?


1
这可能是一个Apache配置问题(比如某个地方的“Deny from xyz”指令)。如果不知道涉及的Apache配置设置,就无法提供更详细的信息。 - Pekka
你需要知道什么?我的vhost.conf中有Allow from All。被拒绝访问的IP是我的服务器IP。 - Ashley
4个回答

23

这条日志条目似乎是由Magento调用创建的,以确保您已经妥善保护了您的管理员。它不是一个错误,实际上是您想要看到的内容,因为它有效地表明您的管理员是安全的。显然,这只是日志中的噪音。

以下链接提供了一个非常优雅的解决方案,可以修复此问题并加速您的管理页面加载速度: http://www.yireo.com/tutorials/magento/magento-administration/1322-client-denied-by-server-configuration-appetclocalxml

本质上,按照下面的位置创建文件,并添加所示内容。添加完文件后:

app/design/adminhtml/default/default/layout/local.xml

使用以下内容:

<layout>
    <default>
        <remove name="notification_security" />
        <remove name="notification_survey" />
    </default>
</layout>

记得清空缓存:系统 > 缓存管理


这非常有帮助,似乎修复了日志垃圾问题。 - Gavin
在Magento 1.9中,这里没有名为local.xml的文件app/design/adminhtml/default/default/layout/local.xml - Pratik Joshi
如果不存在,您可以创建它。@PratikCJoshi - itsazzad
@itsazzad 那你应该编辑帖子并告诉大家。 - Pratik Joshi

12

好的……这个页面上有一些混杂的问题,我来试着解决一下:

服务器配置拒绝客户端:/var/www/httpdocs/app/etc/local.xml

艾伦(Alan):这和你的问题无关。从Magento 1.4开始,每次在后台访问一个页面,它都会填满你的错误日志,并显示这个消息。这是因为Magento会“测试”你的配置文件以查看是否可以被公开访问。但这很愚蠢,因为这个错误表明它已受到保护。

当你找到这个页面时寻找的解决方案似乎是“篡改核心”:http://www.magentocommerce.com/boards/viewthread/213947/#t306425

APC问题是指APC与Magento不兼容:

将Magento的缓存后端从“apc”切换回“files”...在将Magento切换回使用cache方法files之前,必须清除您的var/cache目录“rm -R var/cache/*”,否则Magento将读取旧缓存并报错......由于相同的原因,通过重新启动Apache清除APC然后再切换到APC是明智的......

最后......原始问题:

白屏......很可能是由于PHP错误和您的服务器关闭了显示错误...首先从Magento文档根命令行手动清除缓存“rm -R var/cache/*”......这可能会解决因损坏的缓存导致的问题......如果不能,检查php配置文件中“display_errors”是否等于1或On......要查看PHP设置,在Magento文档根中,在命令行下输入$echo "<?php phpinfo() ?>" > phpinfo.php......从Magento域请求phpinfo.php在浏览器中查看PHP设置,并根据需要进行更改...

其他:将errors/local.xml.sample重命名为errors/local.xml将使您能够看到完整的Magento错误异常......

希望这对某人有所帮助......


1
当启用apc时,为什么会出现被拒绝的错误日志消息(local.xml),而当我关闭它时,就没有日志条目了? - Bryan Ruiz

4
那个错误的措辞
client denied by server configuration: /var/www/httpdocs/app/etc/local.xml 

"is an Apache error message that's unrelated to your problem. Someone tried to directly access your local.xml file via a web browser but were blocked by the server configuration. This is correct behavior."

这是一个Apache错误信息,与您的问题无关。有人试图通过Web浏览器直接访问您的local.xml文件,但被服务器配置阻止了。这是正确的行为。

"Your white screen error is happening for another reason."

您的白屏错误是由其他原因引起的。

  1. "Are there other errors in the log?"

  2. "将PHP配置为单独记录PHP错误。"

  3. "您可以访问Magento管理页面,因此打开Magento特定错误的日志记录。"

"在上述设置完成后,请将您的商店配置为仅向您的IP提供文件,以便确定日志(Apache、PHP或Magento)中与您的直接请求相关的错误。"


谢谢,但是它拒绝访问的IP地址是我的服务器IP。 - Ashley

3
APC缓存显然不适用于Magento,禁用它会抛出PHP错误,指出过时的主题正在产生问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接