【发布时间】:2014-12-30 14:01:02
【问题描述】:
大约 2 年后,该网站突然抛出此错误而没有任何代码更改(在浏览 ../admin 时也是如此)。
同一个网站空间上的另一个magento网站也有同样的问题。
针对此问题提出的其他解决方案是关于格式错误的 base_url 变量,但此处并非如此。也因为它一直有效,所以这应该不是问题。
会不会是某种过载或者连接数据库失败?
【问题讨论】:
大约 2 年后,该网站突然抛出此错误而没有任何代码更改(在浏览 ../admin 时也是如此)。
同一个网站空间上的另一个magento网站也有同样的问题。
针对此问题提出的其他解决方案是关于格式错误的 base_url 变量,但此处并非如此。也因为它一直有效,所以这应该不是问题。
会不会是某种过载或者连接数据库失败?
【问题讨论】:
要解决这个错误,我们应该首先检查的主要事项:
检查 'core_config_data' 表中的 'web/unsecure/base_url' 和 'web/secure/base_url' 条目,并确保 URL 不应包含任何空格并且应该存在正确的 URL 我们应该检查位于 'app/etc/local.xml' 下的数据库连接字符串,并确保数据库、用户名和密码不应包含非法字符,如 '[' 会破坏 XML。
【讨论】:
非法方案异常来自
#File: lib/Zend/Uri.php
public static function factory($uri = 'http', $className = null)
{
//...
if (ctype_alnum($scheme) === false) {
#require_once 'Zend/Uri/Exception.php';
throw new Zend_Uri_Exception('Illegal scheme supplied, only alphanumeric characters are permitted');
}
这意味着在您的系统中某处,可能是由于在 System -> Configuration 中设置的值,存在一个带有非字母数字字符集的 URL。
您可以通过向系统添加一些临时日志记录来识别错误字符串
public static function factory($uri = 'http', $className = null)
{
Mage::Log($uri);
file_put_contents('/tmp/uri.log',"\n",FILE_APPEND);
然后修复值(可能在core_config_data 表中)
【讨论】: