Bạn có nhiêu drupal site khác nhau, nhưng muốn người dùng của website này cũng có thể sử dụng cùng thông tin đăng nhập ở các website khác, thông tin thay đổi ở site này, kéo theo thông tin ở các site khác cũng thay đổi, ... Tôi có một kinh nghiệm nhỏ của tôi ở project gần đây để xử lý việc này khá đơn giản.
Giả sử
i. Các webstie chạy chung trên một server.
ii. Các website sử dụng chung một mã nguồn (chỉ một thực thể).
iii. Mỗi website chạy một database khác nhau.
iv. Các website đó, thí dụ là:
iv.i. http://website-1.com/
iv.ii. http://website-2.net/
Cấu trúc thư mục của drupal lúc này:
/sites/
/all/
/modules/
/singlesignon
/website-1.com/
/files/
/...
/settings.php
/website-1.net/
/files/
/...
/settings.php
Các databases
* drupal_website1: sử dụng cho website-1.com
* drupal_website2: sử dụng cho website-2.net
* drupal_share: sử dụng cho các thông tin về người dùng ở 2 website trên
Cấu hình kết nối CSDL
* cho website-1.com (sites/website-1.com/settings.php)
<?php
// ...
$db_url = 'mysql://username:password@localhost/drupal_website1';
$db_prefix = array(
'default' => 'w1_',
'users' => 'drupal_share.',
'users_roles' => 'drupal_share.',
'sessions' => 'drupal_share.',
'role' => 'drupal_share.',
'authmap' => 'drupal_share.',
);
// ...
?>
* cho website-2.net (sites/website-2.net/settings.php)
<?php
// ...
$db_url = 'mysql://username:password@localhost/drupal_website2';
$db_prefix = array(
'default' => 'w2_',
'users' => 'drupal_share.',
'users_roles' => 'drupal_share.',
'sessions' => 'drupal_share.',
'role' => 'drupal_share.',
'authmap' => 'drupal_share.',
);
// ...
?>
Với cấu hình thế này, thông tin người dùng ở (mạng lưới) các site của chúng ta sẽ tự động đồng bộ với nhau.
Thế Hồng
Comments
Cảm ơn anh
Hay quá, em đang cần cái này. Suy nghĩ mãi. Cám ơn anh nhiều!
help
hhu mik la nguoi moi va bay jo dau tien mik pai lam j .mik mun hoc ta thuong mai
help
Rất tuyệt!
Rất tuyệt vời. mới nghe qua có vẻ rất khó thực hiện nhưng thao tác lại đơn giản ko ngờ...
---
V.My
mình muốn hỏi
liệu cách này có sử dụng chung cookie được ko :D
Được, thử vọc trong
Được, thử vọc trong settings.php của từng site xem nhé -- Thế Hồng
thank you
mình mới tập tành Drupal nên còn nhiều thứ bỡ ngỡ. Hi vọng sẽ học được nhiều từ blog bạn !
Cám ơn
Có cách nào dùng chung khi đặt 2 site trên 2 host không ?
chà
chà...bác này dùng drupal, bữa chuyển từ blogspot em cũng được giới thiệu drupal...nhưng rồi quyết định dùng wp
ki lạ
sao không thấy hiện comment lên bác nhỉ?
Cho mình hỏi về views và module
Mình làm với view và module thì gặp vấn đề sau bạn chỉ cho mình nhé:
* Tạo module có form nhập thông tin, mình create table lưu thông tin đó. Làm cách nào để các thông tin này mình có thể lấy được khi tạo views?
* Mình tạo một view lấy thông tin từ một content type trong đó có trường "tên người dùng đăng nhập" mình muốn khi người dùng đăng nhập thì view hiển thị các bản ghi của người dùng đó thì làm thế nào?
* Mình muốn tạo 3 content type là trường, ngành, lớp: trong content type ngành có field lấy từ content type trường, tương tự ở lớp thì có fiedl ngành lấy từ conten type ngành thì làm thế nào? tạo một views lấy danh sách lớp thuộc trường xyz thì làm thế nào?
Cám ơn!
Post new comment