Чудова відповідь сларек. Ми зробили щось дуже схоже. Замість редагування index.php ми встановлюємо окремі папки поза кодовою базою магенто і включаємо mage.php з цих папок, а потім редагуємо etc_dir (та інші dirs), як у вашому методі вище.
структура папки:
/ www / client1
/ www / client2
/ www / client3
/ www / clientX
/ www / magento
Всередині кожної з папок клієнта є:
- /www/clientx/etc/local.xml (з визначеною унікальною базою даних та унікальним redis db)
- / www / clientx / etc / модулі (це символьне посилання на / www / magento / app / тощо / модулі)
- /www/clientx/index.php
в /www/clientx/index.php
define('MAGENTO_ROOT', '/www/magento');
... (решта index.php - це звичайний бізнес) ...
$client = isset($_SERVER['CLIENT_ID']) ? $_SERVER['CLIENT_ID'] : '';]
Mage::run($mageRunCode, $mageRunType, array('etc_dir'=>'../'.$client));
Ми встановлюємо
$_SERVER['CLIENT_ID'] in Nginx with
`fastcgi_param CLIENT_ID clientx; `