하나의 설치가 가능하며이 설치에서 다른 데이터베이스를 가진 여러 상점을 만들 수 있습니까?
나는 같은 뭔가 하나 개 설치하게됩니다 domain.1를 데이터베이스로, 그리고 관리자에서 나는 상자 새로운 웹 사이트 및 일부 새 데이터베이스에 저장합니다 domain.2을 .
하나의 데이터베이스로 여러 상점을 얻을 수 있다는 것을 알고 있습니다. 그러나 다른 데이터베이스에서도 동일 할 수 있습니다.
하나의 설치가 가능하며이 설치에서 다른 데이터베이스를 가진 여러 상점을 만들 수 있습니까?
나는 같은 뭔가 하나 개 설치하게됩니다 domain.1를 데이터베이스로, 그리고 관리자에서 나는 상자 새로운 웹 사이트 및 일부 새 데이터베이스에 저장합니다 domain.2을 .
하나의 데이터베이스로 여러 상점을 얻을 수 있다는 것을 알고 있습니다. 그러나 다른 데이터베이스에서도 동일 할 수 있습니다.
답변:
좋은 답변 slarek. 우리는 매우 비슷한 일을했습니다. index.php를 편집하는 대신 magento의 코드베이스 외부에 별도의 폴더를 설정하고 해당 폴더에서 mage.php를 포함시킨 다음 위의 방법과 같이 etc_dir (및 기타 디렉토리)을 편집합니다.
폴더 구조 :
/ www / client1
/ www
/ client2
/ www / client3 / www / clientX
/ www / magento
각 클라이언트 폴더 안에는 다음이 있습니다.
/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; `
단일 코드베이스를 사용하여 자체 데이터베이스가있는 여러 개의 개별 상점을 갖고 싶으십니까?
간단하고 권장되는 방법은 없습니다. 우리가 할 수있는 일을 볼 수 있다고합니다.
데이터베이스 정보는 단일 xml 파일에서 가져옵니다. app / etc / local.xml이 파일은 app / Mage.php에서로드되므로 해당 파일을 변경하면 이론적으로로드 할 구성 파일을 결정할 수 있습니다 (원하는 내용에 따라) 도메인 이름과 같은 조건). Voila, 다른 도메인, 다른 데이터베이스. 이제 나쁜 소식 부분 (tm)이 나옵니다.
방금이 확장을 찾았습니다 :
https://github.com/steverobbins/Magento-Multi_Client
Magento Multi Client
동일한 Magento 코드베이스에서 여러 클라이언트를 호스팅합니다.각 클라이언트에는 자체 local.xml 및 etc / modules.xml이 있습니다. 이를 통해 클라이언트마다 별도의 데이터베이스 및 캐싱 서비스를 지정하고 요청에 따라 모듈을 활성화 / 비활성화 할 수 있습니다.
각 클라이언트는 독립성을 유지하지만 코드 기반은 공유합니다.
이것은 Magento 웹 사이트를 호스팅하는 Magento Go-esque 방식으로 간주 될 수 있습니다.
구성 파일을 포함 할 새 폴더를 만들고 index.php에서 Mage :: Run ()에 옵션 배열을 추가하면됩니다.
해당 폴더에는 모듈 폴더를 포함하여 app / etc /와 동일한 내용이 있습니다.
첫 번째 도메인 :
Mage::run($mageRunCode, $mageRunType, array('etc_dir'=>'app/domain1'));
두 번째 도메인 :
Mage::run($mageRunCode, $mageRunType, array('etc_dir'=>'app/domain2'));
이것은 도메인의 설정 파일이있는 곳을 Magento에게 알려줍니다.