我已将整个 www 目录从 Web 服务器复制到我的本地工作站。我正在尝试让 Magento 连接到本地数据库。是的,我更改了“magento/app/etc/local.xml”文件中的连接字符串值。我已经验证了大约一百次,它已经被改变了。在你告诉我它被缓存之前,为了安全起见,我已经删除了整个“magento/var/cache”目录,并在 www 目录中查找了“secret_password”的所有文件。以下是我的 local.xml 文件的摘录。
<host><![CDATA[localhost]]></host>
<username><![CDATA[root]]></username>
<password><![CDATA[root]]></password>
<dbname><![CDATA[dev_xarisma]]></dbname>
我在笔记本电脑上尝试了此操作,确实发现缓存是问题所在。我花了几个小时才弄清楚。但我最终转储了“Varien_Db_Adapter_Pdo_Mysql”对象,就在那时我发现它获取的值不是我在“local.xml”文件中设置的值;请参阅下面的部分转储。
[_config:protected] => Array
(
[host] => localhost
[username] => root
[password] => (*secret_pass_you_cant_see*)
[dbname] => production_xarisma
我终于发现旧的登录凭据是通过 grep WWW 目录来查找我们的强密码来缓存的。我很惊讶地在 magento/var/cache 文件中发现了一堆文件。我删除了有问题的文件,这解决了我笔记本电脑上的问题。但是,它不适用于工作站。我已经删除了整个 var 目录,并且该行为仍在继续。我什至多次重新启动我的工作站,以防 Apache 缓存了某些内容,但没有成功。
笔记本电脑和工作站都运行 Ubuntu 31.10、Apache2、当前的 mySql,两者都没有什么奇怪的。如果您想知道为什么我会执行这个疯狂的“将生产服务器克隆到我的工作站”过程,那是因为我们正在尝试解决仅在生产中出现的问题。是的,我检查了所有看似相关的文章。先感谢您。
好吧,我花了两天时间才找到。但我不知道我发现的是一个错误还是一个功能。
问题是“magento/app/etc”目录中还有另一个文件,该文件覆盖了“local.xml”文件中正确的数据库连接参数。该文件称为“localOLD.xml”。显然,有人想要备份我们的数据库设置以确保安全;一个好主意。但显然,Magento 正在读取该文件而不是“local.xml”。
我真的很惊讶,当我删除该文件后它就开始工作了。事实上,我并不相信。因此,我复制了“local.xml”,将其命名为“localOLD.xml”,为连接参数输入了一些测试值,Magento 尝试使用它们。
这是一个错误还是一个功能?任何人?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)