我使用 Magento 提供的 Docker 安装脚本在 Mac 上的两个 Docker 容器中安装了 Magento。Docker 提供了两个 IP 号,一个用于使用 127.0.0.1 和端口号(本例中为 32772,即主机的公开端口号),另一个在 172.xxx 范围内(此处为 172.17.0.2)。
我登录后,更改了一些琐碎的值。然后我提交了两个 docker 引擎(Magento 和 Mysql)并将它们保存到 tar 文件中。我在 Ubuntu 16.04 桌面上的 docker 中加载了这些文件。在出现一些初始错误并重新启动两个 docker 引擎后,它应该可以正常工作,但它在一点上失败了。当我在浏览器中加载网站时,它会被重定向到 127.0.0.1:32772,这不起作用。Magento 处理此重定向,因此在某种程度上它可以正常工作。
Magento 设置为重定向到一个 URL。此 URL 或 IP 设置在表中,并设置为正确的值 (172.17.0.2)。通常,这意味着重定向应为 172.17.0.2,端口 80。
select * from core_config_data where path like '%base_url%';
清除缓存:
php bin/magento cache:clean && php bin/magento cache:flush
rm -rf var/cache/*
浏览器缓存已清除(完全删除了 .mozilla 文件夹),也尝试了私人窗口,并且我安装了另一个浏览器以确保万无一失。
在 magento2 docker 容器中,我安装了 elinks(一个命令行浏览器),它使用以下命令打开 magento 的站点和管理员:http://本地主机。我看到了管理员登录表单。如果我在主机浏览器中打开网站,它会从 172.17.0.2 重定向到 127.0.0.1:32772,其中包括一个会话 ID。这意味着 magento 运行并生成此会话 ID,但我不明白重定向的含义。
然后有这个暴露的端口号 32772。这是在 Mac 上设置的,我敢打赌这不是在 Ubuntu 安装上使用的数字。
- 为什么重定向不断发生?
- 我怎样才能使该网站正常运行?
- 公开的端口号设置在哪里?我可以为正在运行的容器更改它吗?
- 如何获取当前容器的正确端口号?
答案1
我在 ubuntu_16.04 上遇到了同样的问题,在我尝试了这个线程的解决方案之后1,我尝试了这些:
当你在 Magento 管理页面时 127.0.0.1/管理员/...
1)进入系统-->缓存管理
2)点击按钮刷新 Magento 缓存和
3)再次尝试 no_127.0.0.1 url