Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Мультимагазин


 Поделиться

Рекомендованные сообщения

Всем доброго дня.

Кто-то знает, как в мультимагазине не OCstore 1.5.5.1.2, можно сделать так, чтобы путь к картинкам, изо всех магазинов, вел в одну папку, например той копии скриптов, где лежит админка мультимагазина ? Чтобы не плодить одни и теже картинки для разных витрин ?

 

Пробовал просто путь переписать в конфиге витрины, не помогает. 

Ссылка на комментарий
Поделиться на других сайтах

Все таки конфигами должно делаться.

Есть еще способ более кардинальный (у меня так)

Симлинки на уровне ФС сервера из плюсов что дает - папки не пухнут и при сбросе кэша картинок нет траблов.

Изменено пользователем juri79
Ссылка на комментарий
Поделиться на других сайтах


Все таки конфигами должно делаться.

Есть еще способ более кардинальный (у меня так)

Симлинки на уровне ФС сервера из плюсов что дает - папки не пухнут и при сбросе кэша картинок нет траблов.

Спасибо.

А более подробной инструкции по симилинкам нет ?

Ссылка на комментарий
Поделиться на других сайтах

К сожалению инструкции нет.

Обратитесь к хостеру

 

/site1/image/data/ на /site2/image/data/

/site1//image/cache/ на /site2/image/cache/

В папке site1 будут картинки и их кэш

site2 будет думать что картинки лежат у него, а по факту будут у site1

Ссылка на комментарий
Поделиться на других сайтах


Если в настройках Apache указать другие домены как зеркала основного, то все папки также будут доступны с любого домена ;)

Ссылка на комментарий
Поделиться на других сайтах

Апач просто зазеркалит сайт - особого смысла в этом нет, а вот симлинки помогают с картинками.

У меня картинок несколько гигов и для каждого магазина их иметь кажется оч жирно.

Ссылка на комментарий
Поделиться на других сайтах


Простите, ЧТО? Что есть зазеркалит сайт?

У меня, нампример:
mysite.ru

мойсайт.рф
mysecondsite.ru

Это все зеркала в Апаче. Только в настройках ОС стоят мультимагазины: mysite.ru и mysecondsite.ru и это РАЗНЫЕ магазины, разные шаблоны, товары и т.д. А вот мойсайт.рф точная копия mysite.ru

 

Так что эффект абсолютно тот же.

Ссылка на комментарий
Поделиться на других сайтах

У вас получатся одинаковые сайты - вносишь изменения в одном (имеются ввиду правка файлов) - изменяется и в остальных.

Да как понимаю закубленые модули будут работать только на одном из них 

Ссылка на комментарий
Поделиться на других сайтах


У вас получатся одинаковые сайты - вносишь изменения в одном (имеются ввиду правка файлов) - изменяется и в остальных.

Да как понимаю закубленые модули будут работать только на одном из них 

Какие файлы? Картинки? При симлинке - аналогично. Файлы шаблонов? Так надо разные использовать шаблоны, а лучше не менять их код напрямую, а обойтись настройками.

А Вы точно используете мультимагазин? Ибо Ваше решение НИКАК не изменяет ситуации. Как были все файлы одни, так и остаются. В этом и есть суть мультимагазина.

 

Под кубом обычно прячут админ.часть, а она на все домены одна ;) проблем не испытываю.

Ссылка на комментарий
Поделиться на других сайтах

подкубом не всегда прячут только админ часть.
Я и не говорю что решение не рабочее, но оно у меня, так как мне нужно было - не заработало, а может что то не так делал.я
Как с конфигами решили ? они же завязаны на 1 из магазинов ?

при обычных конфигах - понятно не работает

при универсальном

// HTTP
define('HTTP_SERVER', 'http://'.$_SERVER['HTTP_HOST'].'/');

// HTTPS
define('HTTPS_SERVER', 'http://'.$_SERVER['HTTP_HOST'].'/');

// DIR
define('DIR_APPLICATION', $_SERVER['DOCUMENT_ROOT']. '/catalog/');
define('DIR_SYSTEM', $_SERVER['DOCUMENT_ROOT']. '/system/');
define('DIR_DATABASE', $_SERVER['DOCUMENT_ROOT']. '/system/database/');
define('DIR_LANGUAGE', $_SERVER['DOCUMENT_ROOT']. '/catalog/language/');
define('DIR_TEMPLATE', $_SERVER['DOCUMENT_ROOT']. '/catalog/view/theme/');
define('DIR_CONFIG', $_SERVER['DOCUMENT_ROOT']. '/system/config/');
define('DIR_IMAGE', $_SERVER['DOCUMENT_ROOT']. '/image/');
define('DIR_CACHE', $_SERVER['DOCUMENT_ROOT']. '/system/cache/');
define('DIR_DOWNLOAD', $_SERVER['DOCUMENT_ROOT']. '/download/');
define('DIR_LOGS', $_SERVER['DOCUMENT_ROOT']. '/system/logs/');

 

 

В апаче поменял пути второстепенного магазина на пути к главному.

ребут апача

второстепенный магазин ерр 500

чищу кэши систем и вкумода, а дальше происходит интересное

кэшатся страницы того сайта в котором эту страницу первой открыли.

и также открываются.

 

то-есть  сайт 1 открывает страницу 1, а сайт 2 открывает страницу 2

при открытии сайтом 1 страницы 2 - открывается сайт 2+ страница 2

и аналогично наоборот

при открытии сайтом 2 страницы 1 - открывается сайт 1+ страница 1

 

жуть чего понаписал )

Возможно все связано с настройкой кэширования хз.

Изменено пользователем juri79
Ссылка на комментарий
Поделиться на других сайтах


А Вы точно используете мультимагазин? Ибо Ваше решение НИКАК не изменяет ситуации. Как были все файлы одни, так и остаются. В этом и есть суть мультимагазина.

1. Да использую и уже очень долго

2. Был вопрос - был дан ответ конкретно по картинкам - причем способ 100% рабочий.

3. Способ с апачем  возможно бы устроил (даже больше чем - специально стал пробовать, чтобы вспомнить почему отказался) , но как и писал выше  - на моем магазине почему-то ) не работает.

Изменено пользователем juri79
Ссылка на комментарий
Поделиться на других сайтах


Что-то Вы перемудрили ;)

 

 

<?php
$host = $_SERVER['HTTP_HOST'];
// HTTP
define('HTTP_SERVER', 'http://'.$host.'/admin/');
define('HTTP_CATALOG', 'http://site.ru/');

// HTTPS
define('HTTPS_SERVER', 'http://'.$host.'/admin/');
define('HTTPS_CATALOG', 'http://site.ru/');

// DIR
define('DIR_APPLICATION', '/home/site/public_html/admin/');
define('DIR_SYSTEM', '/home/site/public_html/system/');
define('DIR_LANGUAGE', '/home/site/public_html/admin/language/');
define('DIR_TEMPLATE', '/home/site/public_html/admin/view/template/');
define('DIR_CONFIG', '/home/site/public_html/system/config/');
define('DIR_IMAGE', '/home/site/public_html/image/');
define('DIR_CACHE', '/home/site/public_html/system/storage/cache/');
define('DIR_DOWNLOAD', '/home/site/public_html/system/storage/download/');
define('DIR_LOGS', '/home/site/public_html/system/storage/logs/');
define('DIR_MODIFICATION', '/home/site/public_html/system/storage/modification/');
define('DIR_UPLOAD', '/home/site/public_html/system/storage/upload/');
define('DIR_CATALOG', '/home/site/public_html/catalog/');

Все работает, более того скажу, что $host вводить не надо было, это я модифицировал для совсем иных целей: https://opencartforum.com/files/file/3229-multistore-admin-fix/

 

Вы путаете, весь смысл мультимагазина и сводится к тому, чтобы использовать одни и те же файлы/каталоги (это же ФИЗИЧЕСКИЙ ПУТЬ К ФАЙЛАМ НА СЕРВЕРЕ). Все разруливается через админку ;)

 

Более того скажу, у меня связка Nginx + Apache, и в обоих все домены прописаны как зеркала. Все работает (ссылки могу скинуть в ЛС, если интересует)

Изменено пользователем 1nSane
Ссылка на комментарий
Поделиться на других сайтах

С этим конфигом не пошло - 500 ерр, но очисткой кэшей уже не лечится.

Будет время- по одной строчке подергаю - может найду в чем причина

Вы путаете, весь смысл мультимагазина и сводится к тому, чтобы использовать одни и те же файлы/каталоги (это же ФИЗИЧЕСКИЙ ПУТЬ К ФАЙЛАМ НА СЕРВЕРЕ). Все разруливается через админку ;)

Для меня смысл в мультимагазине был и есть только в том что одна база в одном месте все делается, а вот про файлы как-то и не задумывался. Изменено пользователем juri79
Ссылка на комментарий
Поделиться на других сайтах


Тема стала уже наверное "жевать-не-пережевать" ... но всё же ...

Решил сделать мультимагазин на OpenCart 2.1.0.1 .. начну с самого начала .. всё крутится на своём серваке на Debian Nginx+Apache2

 

В nginx создаю следующего образца конфиги

server {
listen 80;
server_name shop.top www.shop.top;

location / {
proxy_pass http://127.0.0.1:8080/;
include /etc/nginx/proxy.conf;
try_files $uri $uri/ @backend;
}

location @backend {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}

location ~* \.(html|jpeg|jpg|gif|png|css|js|pdf|txt|tar|ico)$ {
root /var/www/www.shop.top/public_html/;
expires 60d;
}

}

 

и создаю конфиг второго магазина

server {
listen 80;
server_name new.shop.top www.new.shop.top;

location / {
proxy_pass http://127.0.0.1:8080/;
include /etc/nginx/proxy.conf;
try_files $uri $uri/ @backend;
}

location @backend {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}

location ~* \.(html|jpeg|jpg|gif|png|css|js|pdf|txt|tar|ico)$ {
root /var/www/www.new.shop.top/public_html/;
expires 60d;
}

}

 

В apache так же создаю 2 конфига


ServerAdmin [email protected]
ServerName shop.top
ServerAlias www.shop.top
DocumentRoot /var/www/www.shop.top/public_html


Options FollowSymLinks
AllowOverride All


AddDefaultCharset utf-8
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

 

Во втором конфиге вместо shop.top везде проставил new.shop.top

В папку /var/www/www.shop.top/public_html ложу файлы сайта и устанавливаю

После создаю симлинк ln -s /var/www/www.shop.top/ /var/www/www.new.shop.top

В DNS прописываю А запись на домене и поддомене белый IP своего сервера

 

стандартный файл конфига меняю на

// HTTP
$host = $_SERVER['HTTP_HOST'];
define('HTTP_SERVER', 'http://'.$host.'/');

// HTTPS
define('HTTPS_SERVER', 'http:/'.$host.'/');

// DIR
$dir = dirname(__FILE__);
define('DIR_APPLICATION', $dir . '/catalog/');
define('DIR_SYSTEM', $dir . '/system/');
define('DIR_LANGUAGE', $dir . '/catalog/language/');
define('DIR_TEMPLATE', $dir . '/catalog/view/theme/');
define('DIR_CONFIG', $dir . '/system/config/');
define('DIR_IMAGE', $dir . '/image/');
define('DIR_CACHE', $dir . '/system/storage/cache/');
define('DIR_DOWNLOAD', $dir . '/system/storage/download/');
define('DIR_LOGS', $dir . '/system/storage/logs/');
define('DIR_MODIFICATION', $dir . '/system/storage/modification/');
define('DIR_UPLOAD', $dir . '/system/storage/upload/');

 

Ну и в конце данные для подключения к БД

 

Всё .. при открытии каждой ссылки открывается сайт .. пол дела сделано

захожу в админку -- настройки -- добавить магазин -- вношу всю нужную информацию ... в URL нового магазина указываю http://www.new.shop.top -- ну как бы всё норм )))

 

Захожу в товар (стандартный) во вкладке "Связи" в графе "Магазины" указываю отображение товара в новом магазине и с основного убираю.

 

проверяю в поиске одного и другого магазину - данный товар не находит.

 

Вопрос или просьба .. подскажите в какую строну копать или подскажите что я делаю не так?

 

P.S. так же пробовал разворачивать магазин не создавая симлинка , а просто в папке www.new.shop.top/public_html, ну и соответственно указывая данные БД основного магазина. та же беда (((

 

 

Ссылка на комментарий
Поделиться на других сайтах


в 15512 они  в систем и вкумод , в 2101 тоже должны быть - у меня нет 2101 не могу посмотреть

Изменено пользователем juri79
Ссылка на комментарий
Поделиться на других сайтах


в 15512 они  в систем и вкумод , в 2101 тоже должны быть 

vQmod я не ставил ... система чистая .. без малейших изменений.

в system есть только

config/           engine/           helper/           library/          modification.xml  startup.php       storage/          vendor/

 

где ещё можно посмотреть ?

Ссылка на комментарий
Поделиться на других сайтах


удалил всё с system/storage/cache но к сожалению не помогло!

Так же в виде теста поставил на основной магазин отметку - товар появился, поставил на второй магазин - товар ищез

Ссылка на комментарий
Поделиться на других сайтах


Создал по симлинку третия магазин в z.shop.top ... отмечаю отображение товара в основном мгазине и магазине Z - товар отображается во всех трёх магазинах

 

Снимаю с основного и ставлю на NEW и Z - товар пропадает во всех магазинах

 

P.S. кеш так же очистил

Изменено пользователем swip
Ссылка на комментарий
Поделиться на других сайтах


Попробуй вместо симлинка папку целиком скопируй 

верни стоковый конфиг.пхп в обе папки и настрой его

должно работать , а потом уже дальше копай

Ссылка на комментарий
Поделиться на других сайтах


Nginx

 

upstream backend-podberisebe {
  # Адрес back-end'a
  server 127.0.0.1:81;
}

server {
    listen   80;
    listen   443 ssl;
    server_name site.ru www.site.ru сайт.рф www.сайт.рф site.com.ua www.site.com.ua site2.ru www.site2.ru site3.ru www.site3.ru

    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2; # SSLv3 исключить CVE-2014-3566
    ssl_certificate     /etc/nginx/ssl/site.crt;
    ssl_certificate_key /etc/nginx/ssl/site.key;

    access_log /home/site/logs/nginx_access.log;
    error_log /home/site/logs/nginx_error.log;

    # Перенаправление на back-end
    location / {
        proxy_pass  http://127.0.0.1:81/;
        include     /etc/nginx/proxy.conf;
    }

    # Статическиое наполнение отдает сам nginx
    # back-end этим заниматься не должен
    location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|rtf|swf|js)$ {
        root /home/site/public_html/;
        expires max;
        access_log off;
    }
}
 

Apache2

 

<VirtualHost *:81>
SuexecUserGroup "#1034" "#1035"
ServerName site.ru
ServerAlias www.site.ru
ServerAlias webmail.site.ru
ServerAlias admin.site.ru
ServerAlias сайт.рф
ServerAlias сайт.рф
ServerAlias site2.ru
ServerAlias www.site2.ru
ServerAlias site3.ru
ServerAlias www.site3.ru
DocumentRoot /home/site/public_html
ErrorLog /var/log/virtualmin/site.ru_error_log
CustomLog /var/log/virtualmin/site.ru_access_log combined
ScriptAlias /cgi-bin/ /home/site/cgi-bin/
ScriptAlias /awstats/ /home/site/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory /home/site/public_html>
Options -Indexes +IncludesNOEXEC +FollowSymLinks
allow from all
AllowOverride All
</Directory>
<Directory /home/site/cgi-bin>
allow from all
</Directory>
RewriteEngine on
RewriteCond %{HTTP_HOST} =webmail.site.ru
RewriteRule ^(.*) http://site.ru:20000/ [R]
RewriteCond %{HTTP_HOST} =admin.site.ru
RewriteRule ^(.*) https://site.ru:10000/ [R]
<Files awstats.pl>
AuthName "site.ru statistics"
AuthType Basic
AuthUserFile /home/site/.awstats-htpasswd
require valid-user
</Files>
</VirtualHost>

Все прекрасно вертится!

Ссылка на комментарий
Поделиться на других сайтах

juri79

Конфиг я дал от 2.1.0.2.1, если надо от 1.5.5.1.2 - могу дать, вроде еще не стер.

С ошибкой 500 (пустым экраном) вообще не так страшно, как кажется на первый взгляд. Топаем в логи апача/нгинкса и смотрим последнюю строчку. Обычно там очень доходчиво объясняется, где косяк.

 

juri79, swip

Задавайте вопросы, постараюсь помочь ;)

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.