Hi!
Nálam a leírások alapján a multisite install nem működik.
"Drupal ajánlás" szerint:
* Normál drupal install 2 site-ra, majd
* settings.php editálás:
$db_prefix = array(
'default' => 'multi_',
'users' => 'shared_',
'sessions' => 'shared_',
'role' => 'shared_',
'authmap' => 'shared_',
);
* Végén a install.php futtatása.
Ez szerintem semmi mást nem csinál, mint shared_ előtaggal látja el a táblaneveket (pl. shared_users, shared_role). Ettől a drupal nem fogja tudni, hogy a 2. site-nak pl. a default site DB-jéből kellene autentikálni. Én a 2. site-nak ezt állítottam be utólag:
$db_prefix = array(
'default' => '',
'users' => 'drupal.',
'sessions' => 'drupal.',
'role' => 'drupal.',
'authmap' => 'drupal.',
);
Azaz a users-t a drupal.users táblából vette (drupal DB users táblája). Nálam így működik. :)
Ez jó megoldás?
Ill. ezek nem kellenek?
'users_role' => 'drupal.',
'permission' => 'drupal.',
G.
Ha a másik site külön
Ha a másik site külön adatbázist használ, akkor drupal.shared_ a prefix. Vagy az egyikben nem adsz prefixet, a másikban meg drupal. -ot. Vagy egy adatbázist használsz, két különböző default prefixet adsz nekik, a közöseknek meg shared_ -et. Stb. A lényeg, hogy a prefix + adatbázisnév mindkét esetben ugyanoda mutasson (figyelembevéve, hogy esetleg nem ugyanaz az alapértelmezett adatbázis).
Szerintem működik külön users_role adatbázisokkal is, ha ugyanazokat a felhasználókat és szerepeket akarod a két oldalon, de nem feltétlenül ugyanazok a felhasználók kapják a privilégiumokat a két oldalon (más kérdés, hogy ezt akarod-e). permission-nél utána kellene nézni, pontosan mikor frissíti a hook alapján; el tudom képzelni, hogy ha nem ugyanazokat a modulokat használod a két oldalon, akkor összeakadhat valahogy.
különböző adatbázisok, csak az autentikáció közös
Ha ezek vannak beállítva, akkor csak az autentikáció megy a drupal DB-ből, a többit a saját DB-ből:
'default' => '',
'users' => 'drupal.',
'sessions' => 'drupal.',
'role' => 'drupal.',
'authmap' => 'drupal.',
A lényeg, hogy a 2 site 2 külön adatbázis, de az azonosítás közös, a drupal nevű (default, azaz fősite) DB-ből történne. Akkor jó amit irtam/gondoltam. :)
Kösz!
G.
Nem jó, amit írtál, mert
Nem jó, amit írtál, mert pl.:
[drupal.] + shared_ + users = drupal.shared_users
[masikdrupal.] + drupal. + users = drupal.users
nem ugyanarra a táblára hivatkoznak.
A közös autentikációhoz csak a users és a sessions kell, hogy közös legyen. (Az authmapban nem vagyok biztos, az ránézésre csak akkor kell, ha valami spéci autentikációs modult használsz.) A role csak akkor kell, ha azt akarod, hogy a szerepek (csoportok) is ugyanazok legyenek; a permissions akkor, ha azt akarod, hogy az egyes szerepek jogai is megegyezzenek a két oldalon; a users_role akkor, ha azt akarod, hogy aki az egyik oldalon teszem azt moderátor, az a másikon is az legyen.
mégis működik
Én ezt irtam és a drupal "default.settings.php"-je is ezt írja, gondolom nem véletlen.
Az én esetemben a default site:
$db_url['default'] = mysql://user:pass@localhost/drupal;
$db_prefix = '';
A multisite installkor:
$db_url['default'] = mysql://user:pass@host/multi1;
$db_prefix = '';
majd telepítés után a multisite:
$db_prefix = array(
'default' => '',
'users' => 'drupal.',
'sessions' => 'drupal.',
'role' => 'drupal.',
'authmap' => 'drupal.',
);
A 2. esetben (multisite) csak a 4db tábla hivatkozik a "drupal."-ra.
Nálam éles rendszerben is működik, tökéletesen látszódnak a default site-ban felvitt userek és be is lehet lépni velük. :)
Finomítani kell esetleg (permission, users_role) - ha kell.
G.
központi azonosítás
Miért nem valami központi azonosítást használsz? Mit fogsz csinálni akkor, ha kijön a hetes? Megváltozik a táblaszerkezet akkor hogyan fogsz eljárni? Fel vagy készülve arra, hogy akkor neked külön erre a rendszerre kell írnod majd egy egyedi update szkriptet? Minden verzió, még alverzió frissítésnél is sokkal óvatosabban kell eljárnod, mert lehet, hogy a megosztott adattáblákat fogja érinteni a változás. Fel vagy készülve mindenre? Biztos vagy benne, hogy csak ezek a táblák érintettek?
Szóval lehet, hogy most "műxik", de hosszú távon nem lesz karbantartható ez biztos.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
ldap lenne a legjobb
Igen, egy központi azonosítás lenne a legjobb, pl. ldap.
Egyelőre a tárhelyen nincs ilyen lehetőség.
G.
openID?
Van openID is a drupalban. Nem kell egyből az ágyút előszedni...
--
IE doesn't support internet
openid
pontosan mi is az openid?
G.
Bocs, nem olvastam
Bocs, nem olvastam figyelmesen. Ha így csinálod, akkor tényleg működik.