Your SlideShare is downloading. ×
0
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Азы мультисайтинга
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

1,020

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,020
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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 о том, какие таблицы нужно делать общими для общей базы пользователей.
  • Transcript

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

    ×