Jawaban bagus slarek. Kami melakukan sesuatu yang sangat mirip. Alih-alih mengedit index.php, kami membuat folder terpisah di luar basis kode magento, dan memasukkan mage.php dari folder itu, dan kemudian mengedit etc_dir (dan direktori lainnya) seperti pada metode Anda di atas.
struktur folder:
/ www / client1
/ www / client2
/ www / client3
/ www / clientX
/ www / magento
Di dalam masing-masing folder klien adalah:
- /www/clientx/etc/local.xml (dengan basis data unik yang ditentukan, dan redis db unik)
- / www / clientx / etc / modules (ini adalah tautan sym ke / www / magento / app / etc / modules)
- /www/clientx/index.php
di /www/clientx/index.php
define('MAGENTO_ROOT', '/www/magento');
... (sisa index.php adalah bisnis seperti biasa) ...
$client = isset($_SERVER['CLIENT_ID']) ? $_SERVER['CLIENT_ID'] : '';]
Mage::run($mageRunCode, $mageRunType, array('etc_dir'=>'../'.$client));
Kami mengatur
$_SERVER['CLIENT_ID'] in Nginx with
`fastcgi_param CLIENT_ID clientx; `