1

大家好,我收到一个似乎无法修复的错误。

a:5:{i:0;s:93:"Cannot send headers; headers already sent in /home/exowear/public_html/app/Mage.php, line 766";i:1;s:1013:"#0 /home/exowear/public_html/lib/Zend/Controller/Response/Abstract.php(115): Zend_Controller_Response_Abstract->canSendHeaders(true)
#1 /home/exowear/public_html/app/code/core/Mage/Core/Model/App.php(1246): Zend_Controller_Response_Abstract->setHeader('Content-Type', 'text/html; char...')
#2 /home/exowear/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(80): Mage_Core_Model_App->getResponse()
#3 /home/exowear/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(202): Mage_Core_Controller_Varien_Front->getResponse()
#4 /home/exowear/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#5 /home/exowear/public_html/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#6 /home/exowear/public_html/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#7 /home/exowear/public_html/index.php(87): Mage::run('', 'store')
#8 {main}";s:3:"url";s:10:"/index.php";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";}

我正在尝试在实时域上设置它,但我一直遇到这个问题。它在我的测试服务器上运行良好。http://mytempsite.net/sin但是当我把它带到http://vegassinexoticwear.com时,我得到了这个错误。

我试过的

  • 我备份了我的临时站点上的整个目录,并使用 SSH 将它带到了新服务器上。然后我导出数据库并将其导入新数据库。更改 core_config_data 表中的 URL。清除缓存,甚至检查权限。
  • 我安装了一个新的 magento 副本,并分别带来了应用程序、皮肤和媒体文件夹。在把它拿过来之前没有错误,但是一旦我把 app 文件夹拿过来,我又遇到了这个错误。

为什么它可以在一台服务器上运行,而不能在另一台服务器上运行?

编辑/附加细节 这是我在尝试访问该站点时没有得到的错误。

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 4: parser error : StartTag: invalid element name  in /home/exowear/public_html/sin/lib/Varien/Simplexml/Config.php on line 510

#0 [internal function]: mageCoreErrorHandler(2, 'simplexml_load_...', '/home/exowear/p...', 510, Array)
#1 /home/exowear/public_html/sin/lib/Varien/Simplexml/Config.php(510): simplexml_load_string('loadString('loadFile('/home/exowear/p...')
#4 /home/exowear/public_html/sin/app/code/core/Mage/Core/Model/Config.php(315): Mage_Core_Model_Config->_loadDeclaredModules()
#5 /home/exowear/public_html/sin/app/code/core/Mage/Core/Model/App.php(414): Mage_Core_Model_Config->loadModules()
#6 /home/exowear/public_html/sin/app/code/core/Mage/Core/Model/App.php(343): Mage_Core_Model_App->_initModules()
#7 /home/exowear/public_html/sin/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#8 /home/exowear/public_html/sin/index.php(87): Mage::run('', 'store')
#9 {main}

当我去查看 Config.php 第 510 行时,这就是那里

$xml = simplexml_load_string($string, $this->_elementClass);

整个功能是这样的

 */
public function loadString($string)
{
    if (is_string($string)) {
        $xml = simplexml_load_string($string, $this->_elementClass);

        if ($xml instanceof Varien_Simplexml_Element) {
            $this->_xml = $xml;
            return true;
        }
    } else {
        Mage::logException(new Exception('"$string" parameter for simplexml_load_string is not a string'));
    }
    return false;
}

我的 local.xml 文件已保存,确保在 DW CS6 中未选中 BOM

 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
  * Magento
  *
  * NOTICE OF LICENSE ......
  -->
 <config>
     <global>
         <install>
             <date><![CDATA[Mon, 10 Jun 2013 16:34:40 +0000]]></date>
         </install>
         <crypt>
             <key><![CDATA[9a38bb0fba550a5d295b3789fe2dafee]]></key>
         </crypt>
         <disable_local_modules>false</disable_local_modules>
         <resources>
             <db>
                 <table_prefix><![CDATA[]]></table_prefix>
             </db>
             <default_setup>
                 <connection>
                     <host><![CDATA[localhost]]></host>
                     <username><![CDATA[usernamehere]]></username>
                     <password><![CDATA[passwordhere]]></password>
                     <dbname><![CDATA[dbnamehere]]></dbname>
                     <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
                     <model><![CDATA[mysql4]]></model>
                     <type><![CDATA[pdo_mysql]]></type>
                     <pdoType><![CDATA[]]></pdoType>
                     <active>1</active>
                 </connection>
             </default_setup>
         </resources>
         <session_save><![CDATA[files]]></session_save>
     </global>
     <admin>
         <routers>
             <adminhtml>
                 <args>
                     <frontName><![CDATA[admin]]></frontName>
                 </args>
             </adminhtml>
         </routers>
     </admin>
 </config>
4

8 回答 8

2

让我们一起尝试调试。在 Mage.php 文件第 766 行

$localConfigFile = $etcDir . DS . 'local.xml';

    if (is_readable($localConfigFile)) {
        $localConfig = simplexml_load_file($localConfigFile);
        date_default_timezone_set('UTC');
        if (($date = $localConfig->global->install->date) && strtotime($date)) {
            self::$_isInstalled = true;
        }
    }

所以 Magento 在这里尝试做的是加载app/etc/local.xml

我的猜测是,当您更改数据库名称/用户名/密码时,您错误地保存了文件(一些编辑器添加了 BOM 签名)。local.xml 文件应保存为不带 BOM 选项的 UTF8。

于 2013-07-01T20:08:58.720 回答
1

很多时候这个问题来自文件权限

所以请设置适当的文件权限以获取更多信息

http://www.magentocommerce.com/wiki/groups/227/cache_is_not_writable

于 2013-07-03T02:02:14.677 回答
0

处理您的请求时出错

无法发送标头;标头已发送/var/www/leaveasy.com/Leaveasy/app/Mage.php, line 767

痕迹:

#0 /var/www/leaveasy.com/Leaveasy/lib/Zend/Controller/Response/Abstract.php(115): Zend_Controller_Response_Abstract->canSendHeaders(true)
#1 /var/www/leaveasy.com/Leaveasy/app/code/core/Mage/Core/Model/App.php(1246): Zend_Controller_Response_Abstract->setHeader('Content-Type', 'text/html; char...')
#2 /var/www/leaveasy.com/Leaveasy/app/code/core/Mage/Core/Controller/Varien/Front.php(80): Mage_Core_Model_App->getResponse()
#3 /var/www/leaveasy.com/Leaveasy/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(202): Mage_Core_Controller_Varien_Front->getResponse()
#4 /var/www/leaveasy.com/Leaveasy/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#5 /var/www/leaveasy.com/Leaveasy/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#6 /var/www/leaveasy.com/Leaveasy/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#7 /var/www/leaveasy.com/Leaveasy/index.php(89): Mage::run('', 'store')
#8 {main}

Error log record number: 724004798
于 2014-07-21T08:12:40.140 回答
0

我最近遇到了这个问题,我能够自己解决它。我查看了我的 local.xml,发现了一个额外的字符 å 字符,因为我在键盘上按 OPTION + A 而不是 CONTROL + A 时不小心输入并保存了它。:)

于 2014-08-22T17:05:42.133 回答
0

启用错误报告并尝试创建日志文件

Mage::log('无法发送标头;标头已在 ' . $file . ', line ' . $line) 中发送;

于 2013-07-02T09:22:25.757 回答
0

是的,该错误的问题只是当前问题的“]”。尝试检查您的新主机详细信息、用户名和密码。另外,正确的添加方式。

于 2014-05-10T16:32:59.470 回答
0

还有一个标题已经发送的原因

在 index.php 中添加了任何回显然后显示错误并在 var/reports 中显示标头已发送错误

请检查 index.php 是否添加了任何回声,然后将其删除

于 2013-07-02T17:51:09.677 回答
0

这可能有几个原因。要找出影响您的原因,请按照以下说明进行操作:

不要在浏览器中打开页面,而是在命令行中运行:

curl http://yourpage.com/

在发送标头之前,您将收到正在写入的错误和/或数据。

例如,我得到了这个:

<br />
<b>Warning</b>:  file_put_contents(/var/www/html/var/log/system.log): failed to open stream: Permission denied in <b>/var/www/html/app/Mage.php</b> on line <b>832</b><br />
<br />
<b>Warning</b>:  chmod(): Permission denied in <b>/var/www/html/app/Mage.php</b> on line <b>833</b><br />
<script type="text/javascript">window.location.href = 'http://bluepowershop.localhost/errors/report.php?id=629963827323&skin=default';</script>

这意味着我必须为 var/log 文件设置可写权限。

于 2019-07-15T10:15:20.823 回答