Magento 2.4.2-将新安装安装到子目录中-不起作用



目前似乎无法在子目录中安装最新的Magento Community Edition(或者需要一些步骤,这些步骤不在我能找到的文档中?)。

在过去的两天里,我已经测试了3-4次了。如果你将它安装到根目录中,它会像预期的那样工作,如果你将其安装在子目录中——安装程序说它已经工作了,但index.php丢失了,.htaccess文件仍然是composer项目设置中附带的默认文件。

这适用于根文件夹:

--base-url="http://www.fieldhockey.co"

这不适用于子目录:

base-url="http://www.fieldhockey.co/store"

所有其他setup:install参数在两次尝试中都是相同的。

我发现这个问题很少,所以这就是我创建这个的原因——也许有人可以在不同于我的设置上尝试这个:

Cent OS 7.9 (v92.0.10)
PHP 7.3.27
Apache 2.4.46

我的问题

因此,我在这个问题背后的问题是——如何将安装移到子目录中?即使安装在根目录中并且站点显示,也没有index.php,这是正确的吗?

更新数据库中的base_url以包含它,并将所有文件移动到该目录中,然后清除缓存&重新索引不起作用?

只是出于好奇——我在11月的2.4.1上从一个网站上获得了默认的index.php脚本和.htaccess。。。现在,我的存储在从根目录移动文件后的子目录中工作(但管理员无法加载任何CSS等或2FA,因此我无法登录)。

更新-2021年2月19日-下午13:24(GMT)

我认为问题是安装本身,而不是子目录——为了测试这一理论,我将安装2.4.1,看看是否能得到更好的结果。

更新-2021年2月19日-下午15:10(GMT)

2.4.1成功安装在根目录中,前端和后端都在工作。我现在将尝试手动将站点移动到存储目录中。如果失败,我将尝试直接将其安装到子目录中。

更新-2021年2月19日下午15:52(GMT)

移动工作你遇到了一个我以前从未见过的问题,关于重新定位到新目录时JS/CSS中断。/pub/static/目录中有一个.htaccess文件,当生成新的静态文件夹时,它似乎不会被创建,因此您可能不应该重命名/pub/sttatic/目录来强制重新生成它。Magento 2.4.1-移动网站到一个子目录-CSS&JS Broken-清除缓存仍然损坏[SOLVED]

有人有什么想法吗

在这个阶段,我不明白为什么2.4.1有效,而2.4.2无效——我在发布说明中看不到任何关于非可选模块或任何重要版本(PHP、Apache、ElasticSearch、Composer等)的提及

我可以把它保持在2.4.1,但这并不是真正的重点,我应该能够使用2.4.2。我想并且有办法这样做吗?

我希望这能帮助其他尝试这样做的人,我将使用2.4.1几周,然后再次尝试升级。

我设法让它工作起来,不过有点麻烦。

我举一个我想做的例子:example.com/nl.

我创建了一个文件夹";nl";在根文件夹中。我在里面添加了一个.htaccess,内容是:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/pub/
RewriteCond %{REQUEST_URI} !^/setup/
RewriteCond %{REQUEST_URI} !^/update/
RewriteCond %{REQUEST_URI} !^/dev/
RewriteRule .* /pub/nl/$0 [L]
DirectoryIndex index.php

然后我创建了一个";nl";文件夹中的";pub";文件夹
此文件夹包含两个文件:.htaccess、index.php。
.htaccess是";pub";一个,我刚刚补充道:

SetEnv MAGE_RUN_CODE "nl_nl"

这不是强制性的,你可以通过index.php设置你的商店,Magento在其中解释了这一点。

index.php是";pub";一
我刚刚添加了另一个"/"在需求中。

require __DIR__ . '/../../app/bootstrap.php';

在管理员:

  • Url库:example.com/
  • Url基链接:example.com/nl/

我的vhost指向根:
ServerName example.comServerAlias example.com

我在那里的主要问题是,该网站是可以访问的,但Magento很难重写,每个页面都在404中。黑客来了。

在";pub/index.php";在Magento实例化所有内容之前,我添加了以下行:

$_SERVER['REQUEST_URI'] = str_replace('/nl/', '/', $_SERVER['REQUEST_URI']);

看起来效果不错,但我没有进一步测试。

2.4.2中,出于安全目的,Magento将index.php移到/pub/文件夹中。我正在像你一样尝试创建一个子目录:example.com/nl

我把我的";nl";文件夹,并从更改了要求

require __DIR__ . '/../app/bootstrap.php';

require __DIR__ . '/../../app/bootstrap.php';

在管理中,安全和非安全的URL:

  • 基本Url为https://example.com/nl/
  • 基本链接Url为https://example.com/nl/

当我去https://example.com/nl/网站显示404即使它显示正确的主题设计,正确的翻译等

明天我会再试一次,如果我成功了,我会让你了解最新情况。也许这已经给了你一个暗示。。。

安装magento 2.4版本后,您的localhost支持/pub目录,如{localhostname}/pub/index.php

我们可以访问没有pub目录遵循以下步骤

1.从pub文件夹复制.htaccess文件,并将其覆盖到root.htacccess文件

2.将pub/index.php文件上传到根目录magento

3.在app/etc/env.php文件中添加以下代码

'system' => [
'default' => [
'web' => [
'unsecure' => [
'base_media_url' => '{{secure_base_url}}pub/media/',
'base_static_url' => '{{secure_base_url}}pub/static/'
],
'secure' => [
'base_media_url' => '{{secure_base_url}}pub/media/',
'base_static_url' => '{{secure_base_url}}pub/static/'
]
]
]
],