在多个域上运行多个商店时,配置Magento + Apache的正确方法是什么?

时间:2012-02-14 04:44:49

标签: php apache magento

这个问题已经在互联网和SO上得到了充分的问题 - 有关每个人特定安装的具体细节都掩盖了可用的答案。希望这个问题能帮助包括我在内的每个人更好地理解这一点。

我的问题是“我们应该如何配置Apache .conf文件来处理多个域?”

(我知道答案“取决于”。希望80%的人一开始会有一个基本的设置然后让它变得更复杂。)我希望这是一个很好的假设。

我正在将Magento的安装与Wordpress进行比较。在Wordpress下,安装它的“最佳方式”似乎是将整个核心放入名为/ wordpress的文件夹中。然后,使用Apache重写规则和永久链接,隐藏/ wordpress文件夹。在多域的情况下,Wordpress核心智能地为您处理整个过程,而无需对.htaccess文件进行太多修改。此外,无论需要做什么修改,Wordpress都可以为您完成 - 或者插件可以。天哪,我希望Magento像Wordpress一样容易安装。但事实并非如此。 (还!)

在Magento下,当我们考虑URL时,术语“商店”是非常误导的。所以我们暂时忽略它,只关心最低级别 - “商店视图”。就我而言,我有以下内容:

Main Web Site -> Main Web Site Store -> Default Store View    
www.site1.com -> Main Store -> site1_english
www.site2.com -> Main Store -> site2_english
  • 第一列是域名。
  • 第二栏是商店 - 这个讨论的误导性标题。
  • 最后一列是“商店视图”。

关于物理放置文件的位置。包括我在内的大多数人都希望单独留下Magento核心。完全没有变化。所以我们把它放到htdocs root中,如下所示:

/var/www/html/magento

我认为这是每个人都感到困惑的地方。 Linux发行版与此位置的位置不一致。更糟糕的是,很多人都试图在一个经济的托管帐户上这样做。我自己在使用EC2。忽略所有...在文档根目录中粘贴/ magento。您可能添加的下一件事是/ wordpress文件夹。好极了。以后再做。

在我的apache配置中,我设置如下:

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/html/magento

        <Directory /var/www/html/magento/>
                AllowOverride All
        </Directory>

# Other directives here
SetEnv MAGE_RUN_CODE "site1"
SetEnv MAGE_RUN_TYPE "website"

</VirtualHost>

<VirtualHost *:80>
ServerName site2.com
ServerAlias www.site2.com
DocumentRoot /var/www/html/magento

        <Directory /var/www/html/magento/>
                AllowOverride All
        </Directory>

# Other directives here
SetEnv MAGE_RUN_CODE "base"
SetEnv MAGE_RUN_TYPE "site2_en"

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/html/nowhere
</VirtualHost>

/ nowhere文件夹的index.html上写着“no where”。

我所看到的情况就是这样:

  • 导航至www.site1.com - &gt; Magento重定向到默认存储视图(在IP地址上)
  • 导航至www.site2.com - &gt; Magento重定向到默认存储视图(在IP地址上)
  • 导航到我服务器的IP地址 - &gt; Magento显示默认商店视图

默认商店视图的BASE URL为http://my.ip.add.ress

以下是我的问题:

  1. 我们应该在MAGE_RUN_CODE和MAGE_RUN_TYPE中放入什么?有些网站说“网站”,有人说“网店”。本应该去哪里?
  2. 为什么我没有到达我的无处网站?
  3. 为什么www.site1.com会继续重定向到默认商店视图?
  4. 有些文档谈到了创建专用文件夹或复制index.php或.htaccess。或者制作我们自己的.htaccess。在本文中,我选择了Apache配置文件。

    为什么不能正常工作?

1 个答案:

答案 0 :(得分:0)

  

为什么www.site1.com会继续重定向到默认商店视图?

转到

System->Configuration->General->Web

在那里你应该找到Base secure和Base不安全URL。此外,在左上角,您应该看到设置的范围。因此,对于每个商店视图,您应该更改(如果可能)商店视图的URL。

  

我们应该在MAGE_RUN_CODE和MAGE_RUN_TYPE中添加什么?有些网站说“网站”,有人说“网店”。本应该去哪里?

如果我没有在代码中出错,则指定要启动的“对象”的代码,并在类型中指定此对象的类型 - 商店或网站。 但这不是100%信息。