Как правильно настроить Magento + Apache при запуске нескольких магазинов на нескольких доменах? - PullRequest
3 голосов
/ 14 февраля 2012

Этот вопрос был задан достаточно широко по всему Интернету и в 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 следующим образом:

/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, в котором написано «нет, где».

Ситуация, которую я вижу, такова:

  • Перейдите на www.site1.com -> Magento перенаправляет в представление хранилища по умолчанию (на IP-адрес)
  • Перейдите на www.site2.com -> Magento перенаправляет в представление хранилища по умолчанию (на IP-адрес)
  • Перейдите к IP-адресу моего сервера -> Magento отобразит представление магазина по умолчанию

Базовый URL-адрес представления магазина по умолчанию: http://my.ip.add.ress

Вот мои вопросы:

  1. Что мы должны поместить в MAGE_RUN_CODE и MAGE_RUN_TYPE? Некоторые сайты говорят «сайт», некоторые говорят «магазин». Что должно быть там?
  2. Почему я никогда не попадаю на мой нигде сайт?
  3. Почему www.site1.com продолжает перенаправлять в представление магазина по умолчанию?

В некоторых документах говорится о создании выделенной папки или копировании в index.php или .htaccess. Или сделать наш собственный .htaccess. В этой статье я выбрал конфигурационный файл Apache.

Почему это не сработает?

1 Ответ

0 голосов
/ 14 февраля 2012

Почему www.site1.com продолжает перенаправлять в представление магазина по умолчанию?

Перейти к

System->Configuration->General->Web

Там выдолжен найти Base Secure и Base незащищенный URL для вашего магазина.Кроме того, в верхнем левом углу вы должны увидеть объем ваших настроек.Таким образом, для каждого представления магазина вы должны изменить (если возможно) URL своего представления магазина.

Что мы должны поместить в MAGE_RUN_CODE и MAGE_RUN_TYPE?Некоторые сайты говорят «сайт», некоторые говорят «магазин».Что должно быть там?

Если я не ошибаюсь в коде, вы указываете код «объекта», который хотите запустить, а в типе указываете тип этого объекта -магазин или сайт. Но это не 100% информация.

...