азы мультисайтинга

944 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
944
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Что такое мультисайтинг и зачем он нужен. Друпал не проектировался для мультисайтинга с общими пользователями и/или контентом — причины и последствия использования мультисайтинга.
  • filters и filter_formats — форматы ввода. Можно делать общими. Если на одном из сайтов будет использоваться специфичный формат ввода, которого не должно быть на других сайтах - не делать общими. locales_* — переводы. Таблицы обычно имеют большой размер. Делать общими можно при условии, что для всех сайтов используется одинаковый перевод. role — роли на сайте (анонимный, зарегистрированный, модератор, админ). Можно делать общими. permission — права ролей на хуки, предоставляемые модулями. Можно делать общими. users — пользователи сайта. users_roles — роли пользователей сайта.
  • access — блокировка по IP, имени пользователя, e-mail. Если блокировка не используется, то можно смело делать общей. Для крупных сайтов можно разделить. authmap — таблица для внешних аутентификаций (LDAP, OpenID). Если не используется внешняя аутентификация — можно смело делать общей (пустая таблица). Если же используется, то делать общими если нужно сделать объединение пользователей. flood — таблица используется для ограничения количества запусков определеных участков кода в основном для предотврацения спама - N запусков в час. Используется для этих целей многими модулями, которые, например, которые делают рассылку (email, feedback, ass_contact, forward), а также модулем Contact. system — инфа о установленных модулях и темах. Объединяю, предварительно закинув нужные файлы в /sites/all/modules и /sites/all/themes. sessions — сеансы пользователей.Делать общими нужно, чтобы пользователи могли быть залогинеными на нескольких сайтах одновременно. См. Общая база пользователей в мультисайтинге In my opinion, the 'sessions' table should not be shared! Otherwise users logged in at one site are shown at all sites as logged in. Moreover, a certain user logged in at two sites is shown twice at all sites. Keeping the sessions table individual prevents this. Are there other arguments to share the table?
  • comments — комментарии. files и file_revisions — файлы. node и node_* — контент сайта. term_* — термины таксономии. view_* — виды. vocabulary и vocabulary_node_types — словари таксономии.
  • blocks — таблица блоков у сайта. Название блока, где отображается, вес, и т.п. blocks_roles — доступ ролей к блокам. boxes — текст (код) самого блока. cache и cache_* — кэши. history — используется для форумов, последние непрочитанные сообщения. Если на сайтах не будет форумов — можно объединить. См. Общий контент в мультисайтинге. menu — меню сайта. sequences — информация о количестве нод, комментариев, пользователей. В Drupal 6 отсутствует, так как в таблицах введен автоинкремент для id. См. Общий контент в мультисайтинге и Общая база пользователей в мультисайтинге. Лучше разделить. url_alias и url_alias_extra — алиасы, ЧПУ, чистые ссылки. См. Общий контент в мультисайтинге и Общая база пользователей в мультисайтинге. Для себя выбрал вариант — не совмещать. variable — переменные сайта. Из-за присутствия специфичных переменных, вроде site_name (имя сайта), site_slogan, theme_default, pathauto_* совместить не получится. watchdog — журнал ошибок сайта. Совместить можно, но крайне нежелательно, ибо при большом количестве сайтов в админке сложно смотреть такие журналы — всё валится в одну кучу. В PhpMyAdmin можно будет задать фильтр по столбцу location, но это не удобно.
  • blocks — таблица блоков у сайта. Название блока, где отображается, вес, и т.п. blocks_roles — доступ ролей к блокам. boxes — текст (код) самого блока. cache и cache_* — кэши. history — используется для форумов, последние непрочитанные сообщения. Если на сайтах не будет форумов — можно объединить. См. Общий контент в мультисайтинге. menu — меню сайта. sequences — информация о количестве нод, комментариев, пользователей. В Drupal 6 отсутствует, так как в таблицах введен автоинкремент для id. См. Общий контент в мультисайтинге и Общая база пользователей в мультисайтинге. Лучше разделить. url_alias и url_alias_extra — алиасы, ЧПУ, чистые ссылки. См. Общий контент в мультисайтинге и Общая база пользователей в мультисайтинге. Для себя выбрал вариант — не совмещать. variable — переменные сайта. Из-за присутствия специфичных переменных, вроде site_name (имя сайта), site_slogan, theme_default, pathauto_* совместить не получится. watchdog — журнал ошибок сайта. Совместить можно, но крайне нежелательно, ибо при большом количестве сайтов в админке сложно смотреть такие журналы — всё валится в одну кучу. В PhpMyAdmin можно будет задать фильтр по столбцу location, но это не удобно.
  • При объединении пользователей и сеансов блок "Сейчас на сайте" будет показывать одного и того же пользователя на всех сайтах мультисайтинга, поэтому использовать его будет нельзя.
  • При объединении пользователей и сеансов блок "Сейчас на сайте" будет показывать одного и того же пользователя на всех сайтах мультисайтинга, поэтому использовать его будет нельзя.
  • Модуль Shared Sign-On не обновлялся уже почти год и в данный момент считается заброшенным: http://drupal.org/node/463408 «Mark singlesignon as abandoned».
  • Обратите внимание: если делать контент общим и показывать его на всех сайтах, то будет дублированный контент на разных сайтах. Это не любят ни люди, ни поисковики. Решение проблемы дублированного контента при общем контенте в мультисайтинге: Разделить контент по типам материалов и на каждом сайте выводить определенный тип материала модулем Views или сниппетом.
  • http://drupal.org/node/132361#comment-222070 «Pretty much what you had» - комментарий Cloudy о том, какие таблицы нужно делать общими для общей базы пользователей.
  • азы мультисайтинга

    1. 1. Азы мультисайтинга
    2. 2. План доклада <ul><li>Принципы мультисайтинга
    3. 3. Отдельный robots.txt для каждого сайта
    4. 4. Перевод </li></ul>
    5. 5. Обзор таблиц базы данных <ul><li>Таблицы, которые можно смело делать общими
    6. 6. Таблицы, которые можно делать общими при необходимости и осторожно
    7. 7. Таблицы, которые делать общими опасно
    8. 8. Таблицы, которые НЕЛЬЗЯ делать общими </li></ul>
    9. 9. Таблицы, которые можно смело делать общими <ul><li>filters и filter_formats — форматы ввода.
    10. 10. locales_* — строки переводов.
    11. 11. role — роли на сайте.
    12. 12. permission — права ролей на хуки, предоставляемые модулями.
    13. 13. users — пользователи сайта.
    14. 14. users_roles — роли пользователей сайта. </li></ul>
    15. 15. Таблицы, которые можно делать общими при необходимости <ul><li>access — блокировка по IP, имени пользователя, e-mail.
    16. 16. authmap — таблица для внешних аутентификаций (LDAP, OpenID).
    17. 17. flood — ограничение количества запусков определеных участков кода.
    18. 18. system — данные про установленные модули и темы.
    19. 19. sessions — сеансы пользователей. </li></ul>
    20. 20. Таблицы, которые делать общими опасно <ul><li>comments — комментарии.
    21. 21. files и file_revisions — файлы.
    22. 22. node и node_* — контент сайта.
    23. 23. term_* — термины таксономии.
    24. 24. view_* — виды.
    25. 25. vocabulary и vocabulary_node_types — словари таксономии. </li></ul>
    26. 26. Таблицы, которые НЕЛЬЗЯ делать общими (1) <ul><li>blocks — таблица блоков сайта.
    27. 27. blocks_roles — доступ ролей к блокам.
    28. 28. boxes — текст (код) блоков.
    29. 29. cache и cache_* — кэши.
    30. 30. history — последние непрочитанные сообщения (Drupal 5).
    31. 31. menu — меню сайта (Drupal 5). </li></ul>
    32. 32. Таблицы, которые НЕЛЬЗЯ делать общими (2) <ul><li>sequences — внутренний счетчик нод, комментариев, пользователей.
    33. 33. url_alias и url_alias_extra — алиасы, ЧПУ, чистые ссылки.
    34. 34. variable — переменные сайта.
    35. 35. watchdog — журнал ошибок сайта. </li></ul>
    36. 36. План доклада <ul><li>Обзор таблиц базы данных
    37. 37. Методы объединения таблиц сайтов
    38. 38. Мультисайтинг с общими пользователями
    39. 39. Общий логин (аутентификация)
    40. 40. Мультисайтинг с общим контентом </li></ul>
    41. 41. Методы объединения таблиц сайтов <ul><li>Использовать префиксы таблиц
    42. 42. Использовать разные базы данных </li></ul>
    43. 43. Использование префиксов таблиц (1) <ul><li>Для таблиц отдельного сайта задаётся свой префикс таблиц:
    44. 44. Для общих таблиц используется общий префикс: </li></ul>site1_system shared_users
    45. 45. Использование префиксов таблиц (2) Префикс задаётся в файле settings.php: $db_prefix = array( 'default' => 'site1_', 'users' => 'shared_', 'sessions' => 'shared_', // Перечислить все общие таблицы... 'role' => 'shared_', );
    46. 46. Использование разных баз данных (1) Подключение к базе обычно задаётся в файле settings.php так: $db_url = 'mysqli://user:password@localhost/site1'; $db_prefix = '';
    47. 47. Использование разных баз данных (2) Вместо префикса указываем имя базы данных: $db_url = 'mysqli://user:password@localhost/site1'; $db_prefix = array( 'default' => '', 'authmap' => 'shared.', // Перечислить все общие таблицы... 'users' => 'shared.', );
    48. 48. План доклада <ul><li>Обзор таблиц базы данных
    49. 49. Методы объединения таблиц сайтов
    50. 50. Мультисайтинг с общими пользователями
    51. 51. Общий логин (аутентификация)
    52. 52. Мультисайтинг с общим контентом </li></ul>
    53. 53. Мультисайтинг с общими пользователями (1) Нужно сделать общими таблицы: <ul><li>users
    54. 54. sessions
    55. 55. authmap </li></ul>Если используется модуль profile - нужно сделать общими: <ul><li>profile_fields
    56. 56. profile_values </li></ul>
    57. 57. Мультисайтинг с общими пользователями (2) Общие пользователи, роли и права доступа: <ul><li>users
    58. 58. users_roles
    59. 59. role
    60. 60. permission
    61. 61. sessions
    62. 62. url_alias
    63. 63. url_alias_extra </li></ul>
    64. 64. План доклада <ul><li>Обзор таблиц базы данных
    65. 65. Методы объединения таблиц сайтов
    66. 66. Мультисайтинг с общими пользователями
    67. 67. Общий логин (аутентификация)
    68. 68. Мультисайтинг с общим контентом </li></ul>
    69. 69. Общий логин (аутентификация) <ul><li>Модуль Shared Sign-On (http://drupal.org/project/singlesignon)
    70. 70. В settings.php указать: </li></ul>ini_set('session.name', 'mysite_PHPSESSID');
    71. 71. План доклада <ul><li>Обзор таблиц базы данных
    72. 72. Методы объединения таблиц сайтов
    73. 73. Мультисайтинг с общими пользователями
    74. 74. Общий логин (аутентификация)
    75. 75. Мультисайтинг с общим контентом </li></ul>
    76. 76. Мультисайтинг с общим контентом Делаем общими таблицы: <ul><li>comments
    77. 77. files
    78. 78. file_revisions
    79. 79. history
    80. 80. node
    81. 81. node_* </li></ul><ul><li>term_*
    82. 82. view_*
    83. 83. vocabulary
    84. 84. vocabulary_node_types </li></ul>
    85. 85. План доклада <ul><li>Обзор таблиц базы данных
    86. 86. Методы объединения таблиц сайтов
    87. 87. Мультисайтинг с общими пользователями
    88. 88. Общий логин (аутентификация)
    89. 89. Мультисайтинг с общим контентом </li></ul>Спасибо за внимание!
    90. 90. Полезные ссылки (1) <ul><li>http://www.razgonka.ru/multisiting «Мультисайтинг — это просто»
    91. 91. http://drupal.ru/node/6226 «Мультисайтинг на Друпале — это круто!»
    92. 92. http://drupalcookbook.ru/node/335 «Установка мультисайтинга с общими таблицами»
    93. 93. http://webdevgeeks.com/schemaspy/index.html «Схема БД Drupal 5» </li></ul>
    94. 94. Полезные ссылки (2) <ul><li>http://drupal.org/node/132361#comment-222070 «Pretty much what you had»
    95. 95. http://groups.drupal.org/node/11795 «D5 Shared database - sharing all but theming/layout/navigation»
    96. 96. http://devbee.com/user_sequence_gotcha «user sequence gotcha»
    97. 97. http://drupal.org/node/291373 «Multi-site with single codebase, different content databases, shared user database, shared sign-on» </li></ul>

    ×