Dùng chung thông tin người dùng cho nhiều Drupal site

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:

  1. /sites/
  2. /all/
  3. /modules/
  4. /singlesignon
  5. /website-1.com/
  6. /files/
  7. /...
  8. /settings.php
  9. /website-1.net/
  10. /files/
  11. /...
  12. /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!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <sup> <br> <p> <h3>
  • Lines and paragraphs break automatically.
  • Link to content with [[some text]], where "some text" is the title of existing content or the title of a new piece of content to create. You can also link text to a different title by using [[link to this title|show this text]]. Link to outside URLs with [[http://www.example.com|some text]], or even [[http://www.example.com]].
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo]. PHP source code can also be enclosed in <?php ... ?> or <% ... %>.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.