Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

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

 

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

Надіслати
Поділитися на інших сайтах

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

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

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

Змінено користувачем juri79
Надіслати
Поділитися на інших сайтах


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

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

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

Спасибо.

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

Надіслати
Поділитися на інших сайтах

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

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

 

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

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

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

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

Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах


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

У меня, нампример:
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 тоже должны быть 

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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.