Kiedy powinienem użyć konfiguracji wielu witryn?


13

Mam 4 strony Drupal, które nie mają ze sobą nic wspólnego, oprócz tego, że wszystkie działają na Drupal i wszystkie są zarządzane przeze mnie.

Moduły, których potrzebuje każda witryna, będą się różnić, ale prawdopodobnie mają one niewielki podzbiór modułów.

Czy ta sytuacja jest dobrym kandydatem do korzystania z konfiguracji obejmującej wiele witryn?

Co jeśli chcę dodać piątą stronę? Jak mam przesłać nowy lub jak to zadziała?

Odpowiedzi:


11

Konfiguracja wielu witryn jest nieco trudna ze względu na poleganie na tej samej bazie kodu. W tym scenariuszu możesz użyć konfiguracji obejmującej wiele witryn, ale pamiętaj, że uaktualnienie modułu sites/all/moduleswpłynie na wszystkie witryny (chyba że zostanie zastąpione sites/$SITENAME/modules).

Prowadzi to do potencjalnych problemów, gdy jedna z twoich witryn polega na wersji N modułu, ale chcesz użyć N + 1 w innej witrynie. Moduł, o którym mowa, może nie mieć ścieżki aktualizacji lub może radykalnie zmienić swoją funkcjonalność między wersjami (nie tak rzadkie, jak mogłoby się wydawać, biorąc pod uwagę kulturę Drupala w kierunku głównych wersji).

Ponadto, jeśli podczas aktualizacji modułu potrzebne są krytyczne zmiany bazy danych, okaże się, że musisz usunąć wiele witryn jednocześnie, aby mieć pewność, że działasz update.php.

W przypadku większości przypadków użycia wiele witryn nie jest dobrym rozwiązaniem. O ile nie masz naprawdę ograniczonej przestrzeni lub masz jakieś dziwne ograniczenia hostingu, które uniemożliwiają mapowanie domeny każdej witryny do osobnego folderu, prawdopodobnie lepiej jest utrzymywać osobne podstawy kodu i używać narzędzi takich jak Drush i kontrola wersji, aby przyspieszyć kod rozlokowanie.

Prototypowy przypadek użycia dla wielu witryn, poza jego wykorzystaniem jako obejścia dla restrykcyjnych hostów, ma miejsce, gdy wdrażasz mnóstwo witryn, które są bardzo podobne. Być może prowadzisz usługę hostingową lub budujesz kilka mikrostron dla firmy lub tego, co masz. W takich przypadkach możesz wdrożyć własną konfigurację dla wielu witryn, ale powinieneś również rozważyć użycie Aegir , który automatyzuje i abstraktuje wiele problemów związanych z uruchomieniem takiej konfiguracji.

Dodawanie nowych witryn do konfiguracji obejmującej wiele witryn jest dość proste: utwórz nowy folder pod sites, edytuj sites/sites.php(tylko Drupal 7), skopiuj sites/default/default.settings.phpdo settings.phptego nowego folderu i odwiedź witrynę w przeglądarce. Drupal powinien rozpocząć proces instalacji i użyć nowego folderu. Twoja nowa strona będzie miała dostęp do wszystkich modułów, sites/all/modulestak jak twoje opuszczające strony.


To fajnie. Jest to właściwie związane z moim innym pytaniem dotyczącym dowiązań symbolicznych i folderu modułów. Mam dość powtarzania tej samej procedury za każdym razem, gdy uruchamiam nową stronę testową w moim środowisku programistycznym, a także mam dość kopiowania modułów (zwłaszcza modułów niestandardowych) do wielu projektów (utrudnia to aktualizację). Myślę, że mógłbym zastosować podejście oparte na wielu witrynach, przynajmniej podczas programowania.
sameold

@sameold to, czego używam do rozwoju Drupala, to repozytorium git, które zawiera moduły, których muszę używać jako submoduły. Następnie wystarczy uruchomić, git clone git@my.repository.com:/base.git newsiteaby uzyskać czyste środowisko.

4
Alternatywą byłby plik drush make dla podstawowej instalacji. Kolejna drobna uwaga, edycja witryn / witryn.php jest opcjonalna i konieczna tylko wtedy, gdy domyślne wyszukiwanie, tak jak było w D6, nie działa (np. Wiele witryn z wieloma domenami dla jednej witryny).
Berdir

2

Korzystałbym z witryny Multi, w której masz powiązaną ofertę treści, ale dla różnych odbiorców.

Na przykład używamy go w naszym intranecie, który obsługuje wiele marek. Pozwala to na zarządzanie każdą marką indywidualnie z opcją udostępniania treści / użytkowników (ogromna oszczędność czasu na zmniejszeniu duplikacji).

Posiadanie unikalnego interfejsu (menu / bloki / tematyka) znacznie ułatwia zapewnienie różnym działom dostępu do tego, co jest dla nich najważniejsze.

Dostęp do domeny zapewnia wiele funkcji, takich jak umożliwienie użytkownikowi ustawienia domyślnej witryny, różnych witryn według subdomeny (więc możesz mieć marketing.intranet.local lub engineering.intranet.local itp.), Wyszukiwanie między witrynami, kontrolę dostępu itp. .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.