Multi-site trong Drupal
Mô hình multi-site trong Drupal
Cơ sở dữ liệu
- db_website1: sử dụng cho website1.com
- db_websiten: sử dụng cho websiten.com
- db_share: cơ sở dữ liệu dùng chung
Kết nối cơ sở dữ liệu
Trong file settings.php của website1.com
<?php
$db_url = 'mysql://username:<a href="mailto:password@localhost">password@localhost</a>/db_website1';
$db_prefix = array(
'default' => 'w1_',
'users' => 'db_share.',
'users_roles' => 'db_share.',
'sessions' => 'db_share.',
'role' => 'db_share.',
'authmap' => 'db_share.',
);
?>Trong file settings.php của websiten.com
<?php
$db_url = 'mysql://username:<a href="mailto:password@localhost">password@localhost</a>/db_websiten';
$db_prefix = array(
'default' => 'wn_',
'users' => 'db_share.',
'users_roles' => 'db_share.',
'sessions' => 'db_share.',
'role' => 'db_share.',
'authmap' => 'db_share.',
);
?>Độ ưu tiên trong multi-site
Ví dụ với một site có đường dẫn như sau: http://www.drupal.org/mysite/test/ thì độ ưu tiên trong thư mục sites sẽ là:
1. sites/www.drupal.org.mysite.test
2. sites/drupal.org.mysite.test
3. sites/org.mysite.test
4. sites/www.drupal.org.mysite
5. sites/drupal.org.mysite
6. sites/org.mysite
7. sites/www.drupal.org
8. sites/drupal.org
9. sites/org
10. sites/defaultĐộ ưu tiên được sắp xếp từ 1 -> 10, nghĩa là khi truy cập vào đường dẫn http://www.drupal.org/mysite/test/ thì hệ thống Drupal sẽ tìm file thông tin cấu hình của site đó theo ưu tiên từ 1 là thư mục sites/www.drupal.org.mysite.test nếu không có thì bỏ qua và tiếp tới các thư mục ưu tiên khác. Nếu có dừng lại đọc thông tin cấu hình trong thư mục đó.
Tags:

12 comments
Thanks anh Sỹ
Đọc được new theme qua twitter của anh vào xem lại gặp được bài tut multisite của anh ^^.
Anh cho em hỏi thêm là một website bình thường mình chỉ cần config được subdomain là thực hiện multisite với drupal phải không anh?
Thử dùng multi-site với sites
Thử dùng multi-site với sites + context + purl chưa, cái đó cũng hay lắm, dù là đang phát triển.
@trunghaily: Cái subdomain
@trunghaily:
- Cái subdomain trỏ về IP chứa hosting.
- Còn trong thư mục site thì đặt tên của site theo thứ tự ưu tiên:
1. sites/www.drupal.org.mysite.test
2. sites/drupal.org.mysite.test
3. sites/org.mysite.test
4. sites/www.drupal.org.mysite
5. sites/drupal.org.mysite
6. sites/org.mysite
7. sites/www.drupal.org
8. sites/drupal.org
9. sites/org
10. sites/default
@Bao:
Để dùng thử xem sao
PS: Hiên tại hai website
PS: Hiên tại hai website www.sanglt.com và www.nguyentiensi.com đang chạy multi-site
Em xin nick Yahoo CHAT của anh nào biết làm vấn đề này ạ
Nick CHAT yahoo của em là hotro_hbco
Anh nào làm được điều này rồi add nick của em vào cho em học hỏi với ạ
Nếu được thì liên hệ hòm thư dangky@bonghongvang.vn cho em thông tin em sẽ gọi hoặc email liên hệ lại. Em đang làm cái này mã làm mãi chưa được. Hiện em quản lý 20 site khác nhau nên cần cái này lắm.
áo cưới
Sắp tới cũng phải làm một dự án multi-site cảm ơn những chia sẽ thật bổ ích. :)
Em hỏi chút ạ
Em chưa rõ câu anh nói là: tùy vào mục đích cài multisite mà có thể dùng chung database hoặc không?
Nếu mình dùng chung thì cách cài đặt data thế nào, và dùng riêng thì làm thế nào anh? Do thấy anh ghi phần CSDL là:
Mong sớm nhận được hồi âm của anh.
Em cảm ơn nhiều @@
Ở trên có 3 Database:
Ở trên có 3 Database:
Nếu bạn muốn dùng chung csdl cho user thì nên khai báo để trỏ tới bảng đó trong db_share, tương tự cho các bảng khác ví dụ: sessions,...
Hi
Thank a em làm được rồi
Anh giúp em với
Anh Nguyentiensi cho em hỏi chút, em thấy anh hướng dẫn tạo 2 files settings.php của 2 trang con là website1.com và websiten.com
Em thấy anh có 2 đoạn code cho 2 files đấy, tức là mình sẽ xóa hết code trong file settings.php của 2 trang này và copy nguyên đoạn code anh post vào đúng không ạ?
Còn phần:
$db_prefix = array(
'default' => 'wn_',
'users' => 'db_share.',
'users_roles' => 'db_share.',
'sessions' => 'db_share.',
'role' => 'db_share.',
'authmap' => 'db_share.',
thì theo em hiểu là lấy thông tin từ database share, nhưng em lại không biết rõ là thông tin đấy nó nằm ở bảng nào, (không biết anh có hiểu ý em không ạ :D), ví dụ như trong joomla em thấy những thông tin này sẽ ở trong file configuration.php ấy ạ.
Em đang học drupal, chưa có nhiều kinh nghiệm, nên có thể anh thấy câu hỏi của em hơi ngây ngô, nhưng thực sự em đang rất mong chờ câu trả lời, góp ý của anh.
Em cám ơn anh rất nhiều!
Không phải xoá hết file
Không phải xoá hết file settings.php bạn ạ, trong file settings.php có chổ Database có phần khai báo Db mặc định bạn chỉ thay đổi chổ đó thôi.
Hello All
Hello All
Mình đang muốn làm quen và hợp tác với các bạn phát Web Developer trên nền Drupal , liên hệ mình mail vnconsultant@gmail.com nhé.
Post new comment