RkBlog

Hardware, programming and astronomy tutorials and reviews.

Zintegrowane instalacje LDU

Opis modyfikacji CMSa LDU do uruchomienia częściowo niezależnych instalacji skryptu.

Wiemy że jeżeli nagramy pliki LDU na Serwer a mamy już jeden portal na nim to drugie ldu będzie korzystało z tej samej bazy co pierwsze pokazując jednocześnie tą samą zawartość strony. Jak zrobić żeby wszystko było ok. ? nie jest to takie trudne jak może się wydawać.
Edytujemy plik docs/ldu-createnew-xxx.sql (xxx oznacza wersję waszego ldu). Następnie zmieniamy nazwy tworzenia tabel np na:
CREATE TABLE ldu_banlist ( -> CREATE TABLE ldu2_banlist (
CREATE TABLE ldu_buddies ( -> CREATE TABLE ldu2_buddies (
I tak z każdą tabelą, najlepiej gdy dodajemy tylko jakiś 1 znam do nazwy tabeli gdyż lepiej jest nam prowadzić dalsze zmiany.
Następnie edytujemy plik data/config.php i szukamy:
$db_banlist = 'ldu_banlist';
$db_buddies = 'ldu_buddies';
$db_cache = 'ldu_cache';
$db_com = 'ldu_com';
$db_config = 'ldu_config';
$db_events = 'ldu_events';
$db_eventp = 'ldu_eventp';
$db_forum_sections = 'ldu_forum_sections';
$db_forum_topics = 'ldu_forum_topics';
$db_forum_posts = 'ldu_forum_posts';
$db_journals = 'ldu_journals';
$db_levels = 'ldu_levels';
$db_links = 'ldu_links';
$db_logger = 'ldu_logger';
$db_news = 'ldu_news';
$db_online = 'ldu_online';
$db_pages = 'ldu_pages';
$db_pfs = 'ldu_pfs';
$db_pfs_folders = 'ldu_pfs_folders';
$db_pm = 'ldu_pm';
$db_polls = 'ldu_polls';
$db_polls_options = 'ldu_polls_options';
$db_polls_voters = 'ldu_polls_voters';
$db_rated = 'ldu_rated';
$db_ratings = 'ldu_ratings';
$db_referers = 'ldu_referers';
$db_smilies = 'ldu_smilies';
$db_stats = 'ldu_stats';
$db_structure = 'ldu_structure';
$db_users = 'ldu_users';

Jeżeli tak jak ja dodaliście liczbę 2 do nazwy tabeli powinniście zamienić to na:
$db_banlist = 'ldu2_banlist';
$db_buddies = 'ldu2_buddies';
$db_cache = 'ldu2_cache';
$db_com = 'ldu2_com';
$db_config = 'ldu2_config';
$db_events = 'ldu2_events';
$db_eventp = 'ldu2_eventp';
$db_forum_sections = 'ldu2_forum_sections';
$db_forum_topics = 'ldu2_forum_topics';
$db_forum_posts = 'ldu2_forum_posts';
$db_journals = 'ldu2_journals';
$db_levels = 'ldu2_levels';
$db_links = 'ldu2_links';
$db_logger = 'ldu2_logger';
$db_news = 'ldu2_news';
$db_online = 'ldu2_online';
$db_pages = 'ldu2_pages';
$db_pfs = 'ldu2_pfs';
$db_pfs_folders = 'ldu2_pfs_folders';
$db_pm = 'ldu2_pm';
$db_polls = 'ldu2_polls';
$db_polls_options = 'ldu2_polls_options';
$db_polls_voters = 'ldu2_polls_voters';
$db_rated = 'ldu2_rated';
$db_ratings = 'ldu2_ratings';
$db_referers = 'ldu2_referers';
$db_smilies = 'ldu2_smilies';
$db_stats = 'ldu2_stats';
$db_structure = 'ldu2_structure';
$db_users = 'ldu2_users';

I koniec już macie 2 oddzielne ldu na jednym serwerze . Ale... mamy teraz dwa całkowicie niezależne LDU. A gdybyśmy chcieli mieć np. wspólne forum? Wystarczy zmienić w pliku data/config.php naszego drugiego LDU:
$db_forum_sections = 'ldu2_forum_sections';
$db_forum_topics = 'ldu2_forum_topics';
$db_forum_posts = 'ldu2_forum_posts';
na:
$db_forum_sections = 'ldu_forum_sections';
$db_forum_topics = 'ldu_forum_topics';
$db_forum_posts = 'ldu_forum_posts';
Następnie możemy usunąć tabele forum z prefiksem ldu2 :) Podobnie z innymi opcjami. Co do wspólnych użytkowników to radziłbym uwspólnić wszystkie tabele z nimi związanymi. Od admina po "buddies" itp.

LDU Multisite inaczej - opcja oszczędna

W przykładzie powyżej wrzuciliśmy dodatkowy zestaw cms'a na nasze konto. A gdybyśmy chcieli mieć np. 4 serwisy? Musielibyśmy wrzucić aż 4 zestawy... mało oszczędny sposób czyż nie? :) Jeżeli masz możliwość uzyskania kilku domen/subdomen skierowanych na twoje konto to możesz skorzystać z tego sposobu. Stwórz tyle instalek LDU ile chcesz mieć serwisów (tzn. zainstaluj 1 a następnie powrzucaj bazy danych o odpowiednich prefiksach np. mamy zainstalowany LDU o prefiksie ldu i dorzucamy zrzut bazy mający prefiks ldu2 :) edytuj data/config.php twojego istniejącego LDU, przed $db_banlist = 'ldu_banlist'; napisz:
If ($SERVER_NAME=="domena1.pl") {



.... po $db_users = 'ldu2_users'; daj
} else {

....

}
Następnie skopiuj wszystkie $db... i wstaw po else, między {}. Domena1.pl to nazwa domeny/subdomeny która ma uruchamiać serwis pierwszy. Jeżeli internauta wejdzie z tej domeny to zobaczy 1 serwis, jeżeli z innej to zobaczy 2 serwis. Możliwe jest też "podpięcie" większej ilości LDU:
If ($SERVER_NAME=="domena.pl") {



} elseif ($SERVER_NAME=="domena2.pl") {


} else {


}
Między nawiasy wrzucasz zestaw $db
RkBlog

11 July 2008;

Comment article