【问题标题】:Can't change Magento base URL, stuck in cache无法更改 Magento 基本 URL,卡在缓存中
【发布时间】:2012-01-20 11:06:40
【问题描述】:

我刚刚在开发域中安装了一个实时站点。我更改了 core_config_data 中的 web/unsecure/base_urlweb/secure/base_url 字段,但我不小心拼错了新域。然后我加载了网站并注意到我的错误。我已经更正了拼写,但它似乎缓存了错误的域。我已经尝试重新导入数据库并更改 url,我已经删除了缓存目录中的所有内容,但 js 和 css 文件仍然在管理后端的每个链接中使用了错误的域。并且管理后台也指向了错误的域。

有什么建议吗?这是一个旧的 Magento 1.3 安装。

【问题讨论】:

    标签: magento


    【解决方案1】:

    如果您对var/ 文件夹没有适当的权限,Magento 可以将其缓存信息写入系统 /tmp 文件夹。

    这可能会导致您更改了 Magento 数据库中的基本 URL、清除缓存(手动删除 var/cache 中的所有 mage-?? 文件夹)、(如果您正在运行操作码缓存),(手动禁用编译器(1.4.x.x 及更高版本)),系统仍会查找原始站点。

    大多数拥有自己服务器的人发现,在修复、清除和重置权限,然后重新启动服务器后,该站点神奇地开始工作。服务器重启会清除 /tmp 的 Magento 缓存文件,Magento 最终开始查看自己的配置以找到它的位置。

    此操作的屏幕截图...

    /tmp...中找到的 Magento 目录...

    还有位于该目录中的缓存。注意路径 -> /tmp/magento/var/cache

    为了找到那个放错位置的缓存目录,如果您可以安装n98-magerun,请使用命令n98-magerun.phar sys:info 获取基本系统信息列表,其中一项为Cache Directory 位置。

    【讨论】:

    • 我假设 rm -rf /tmp/magento/*rm -rf /var/tmp/magento/* 是建议的修复(基于您的操作系统)
    • 是的,如果您不想重新启动操作系统并获得用户目录之外的访问权限,这将消除障碍。 正确设置文件/文件夹权限后执行此操作,以便网络服务器可以读取/写入您的 var/ 树,并且您不应该再次遇到这个卡住的配置问题。
    【解决方案2】:

    当您将 Magento 安装移动或更改为新域名时,您需要确保以下四件事:

    1) 替换服务器上任何文件中旧域的任何实例。这可以通过以下方式在某些(如果不是全部)*nix 上完成:

     find ./ -type f -exec sed -i ‘s/olddomain/newdomain/’ {} \;
    

    2) 删除 var/cache 和 var/session 文件。

    3) 更新数据库中的 web/unsecure/base_url 和 web/secure/base_url。 (以及您域的任何其他实例 - 通常不会更多)

    4) 但最终文件夹需要 775 的权限,而文件至少需要 664 的权限。这可以通过以下 *nix 命令完成:(注意:var folder 和 sub 可能需要更高的权限)

     find . -type d -exec chmod 775 {} ;
     find . -type f -exec chmod 664 {} ;
    

    关于我如何发现这一点的一点历史。不得不将 Magento 网站从一台服务器移动到另一台服务器。这是为了测试以确保一切都能正确传输。在花了一个小时大量导入数据库(~3,970,000 行 - 我见过的任何 CMS 中最大的数据库,并且我创建/修改了自制软件和其他常见 CMS)之后,当我想要的时候,我只剩下 www.domain.com developer.domain.com。

    【讨论】:

    • 很好的信息。但是,我会跳过第一步,这样做从来没有遇到过问题。我也见过大型数据库转储,并喜欢事先clear the log tables
    • 实际上需要第一步,因为某些核心/主题文件已更改为包含旧域。不知道为什么最后一个人这样做。
    • 救命稻草! chmodding 文件夹并清除所有缓存文件后一切正常。
    【解决方案3】:

    当您更改某些内容时,总是 rm -rf var/cache/* 如果您更改基本 url,那么也重新生成所有索引

    【讨论】:

    • 另外我也无法重新索引,因为在没有加载 JS 的情况下表单不会在管理区域提交
    • 执行了 Anton 建议的命令后,您确定所有缓存目录都被删除了吗?
    • 1.4.x.x 允许命令行重新索引,不确定如何以编程方式为 1.3.x.x 执行此操作,因为我坚持使用它的时间不够长,需要制作 PHP 脚本来执行此操作。跨度>
    • 尝试其他浏览器。浏览器有时会缓存 301 并继续重定向你,即使你已经修复了网站。
    【解决方案4】:

    这可能会导致您更改了 Magento 数据库中的基本 URL、清除缓存(手动删除 var/cache 中的所有 mage-?? 文件夹)、(如果您正在运行操作码缓存),(手动禁用编译器(1.4.x.x 及更高版本)),系统仍在寻找原始站点。%

    【讨论】:

      【解决方案5】:

      检查您的 config.xml -- 它可能包含实时站点数据库配置。

      对于 Magento,路径是 /app/etc/config.xml,但我不确定您的版本是否相同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-23
        • 1970-01-01
        • 2014-07-28
        • 1970-01-01
        • 1970-01-01
        • 2012-10-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多