Kis kihagyás után folytatnám egy újabb villám Drupal tippel:
Tegyük fel, hogy készítünk egy új oldalt, legyen: example.com. Ha megfelelőek a web és dns szerver beállítások, akkor új oldalunk elérhető lesz mind a www előtaggal, mind anélkül, tehát ezeken a címeken: http://example.com és http://www.example.com. Ez eddig jó hír, de ha meglátogatjuk az oldalt az egyik formában, bejelentkezünk, majd átváltunk a másik verzióra, ott bizony nem leszünk belépve. Ez viszont zavaró, mert a később ránk mutató külső linkek valószínüleg mindkét verziót használni fogják. A felhasználók akik meg ezekről a külső oldalakról jönnek, nem fogják érteni, hogy miért vannak néha belépve, néha meg nem.
Belepillantva a .htaccess fájlba, azonnal láthatjuk a megoldást: a látogatókat át kell irányítani, úgy hogy mindig csak az egyik verziót használják. Ez mindössz két sor roppant egyszerű átírást jelenti a .htaccess fájlban, a művelethez pedig bőséges információ található megjegyzés formájában, erre nem is térnék ki.
De van egy másik lehetőség is, amelyet a settings.php rejt. Ebben a fájlban van elrejtve a $cookie_domain beállítás, amelyet ha nem állítunk be a drupal automatikusan kitalál. És pont itt jön be a gond: néha example.com -nak néha www.example.com-nak fogja kitalálni. Viszont ha mi fixen beállítjuk így:
<?php
$cookie_domain = '.example.com';
?>
akkor mindkét esetre érvényes sütit állít elő majd a kód. A lényeg a pont az emaple.com előtt, amely annyit jelent hogy minden .example.com végű un. hostra érvényes a süti.
Egy átlagos weboldalnál ez a módszer nem jobb a .htaccess-es megoldásnál. De ha például egy oldalcsoportot készítünk, ahol különböző aldomaineken (a.exmaple.com; b.example.com, ...) különböző drupal telepítések szolgálnak ki más-más tartalmat, de közös felhasználó adatbázissal, akkor ezzel a megoldással már meg is valósítottuk az un. Single Sign On-t, amikoris egyszer kell belépni, és a felhasználó minden aloldalon belépve marad.
Most látom, nem is lett ez annyira rövid tipp, de remélem hasznos lesz néhány olvasónak.
20 hozzászólás
Köszi szépen, erre már
Beküldte Désiré -
Köszi szépen, erre már kerestem megoldást régebben is, csak lusta voltam eléggé utána nézni :D, de most szembejött a megoldás.
Kis módosítás, nagy eredmény
Beküldte CSÉCSY László -
Kis módosítás, nagy eredmény - végeredményben ez a Drupal előnye. Ha kicsit nagyobb hangsúlyt adsz az SSO-nak, talán többen ugranak majd rá. ;)
Kár, hogy ez nem old meg
Beküldte EdgarPE -
Kár, hogy ez nem old meg minden SSO problémát. Érdemes megnézni, milyen sok modul foglalkozik csak az SSO megoldással:
http://drupal.org/search/node/sso+%22single+sign+on%22+type%3Aproject_pr...
Egyszerű, hatásos. Köszi!
Beküldte thamas -
Egyszerű, hatásos.
Köszi!
Szia! A kérdésem az lenne,
Beküldte CHi -
Szia!
A kérdésem az lenne, hogy én is ilyen honlapot fejlesztek épp, ahol aldomainon külön drupalok lennének feltelepítve.
Hogy csinálom meg azt, hogy ugyanazt az adatbázist használják. a telepitésnél ugyanazt az adatbázist adom meg?, nem irja felül vagy bármi a már ott más aldomainon telepitett drupal adatbázisát.
pl. valami.hu -n van az alapadatbázis
s azt szeretném, hogy a elso.valami.hu aldomain-on is ezt az adatbázis használja, akkor csak ugyanazt az adatbázis táblaelőtagot kell megadnom a telepitésnél?
Nagyon köszönöm a választ!
Másold át a settings.php
Beküldte EdgarPE -
Másold át a settings.php fájl-t a valami.hu-ról az elso.valami.hu-ra. Így ugyanazt az adatbázist fogják használ, minden tábla közös lesz. Gyakorlatilag az egyik site, a másik másolata lesz. Ezt szeretnéd?
Szia! Nem. Már rátaláltam a
Beküldte CHi -
Szia!
Nem. Már rátaláltam a Multisite beállításra. Ahol többsite-ot tudok külön kezelni. De lehet egyszerűbbet irsz.
Nekem arra van szükségem, hogy van 2 drupal-om.
Van egy fő, ami a főkönyvtárban van, itt regisztrálnak az emberek, ennek van egy felhasználó adatbázisa. Azt még nem tudom, hogy a felhasználói táblák melyikek. Gondolom a users, vagy más táblába is menti a drupal?
Mert most a multisitenál megkell osztani pár táblát.
Tehát a másik site egy közösségi oldal lenne, de ugyanazok a felhasználók használnák mint a főoldalt,
igy a bejelentkező felületen ott is betudjanak lépni, s ha beléptek, akkor minden oldalon belegyenek lépve.
Ha bármiben tudsz segiteni, megköszönöm.
Pontosan azt szeretném
Beküldte CHi -
Pontosan azt szeretném megvalósítani, amit irtál fentebb:
különböző aldomaineken
(a.exmaple.com; b.example.com, ...) különböző drupal telepítések szolgálnak ki más-más tartalmat, de közös felhasználó adatbázissal.
egyszer kell belépni, és a felhasználó minden aloldalon belépve marad.
-- De most mindkét weboldal külön felhasználói adatbázissal rendelkezik.
Ha bármiben tudsz segiteni, nagyon megköszönöm.
üdv: CHi
Tehát két site van különböző
Beküldte EdgarPE -
Tehát két site van különböző tartalommal, de közös felhasználkkal. Ez a multisite telepítés, úgy hogy megosztasz néhány táblát. Nézz bele a settings.php-be, pont azt a példát hozza fel ott is. Ezeket a táblákat kell megosztani: users, sessions, role, authpath.
Ha pedig különböző domain-en is vannak a siteok, akkor javaslom ezt:
http://drupal.org/project/singlesignon
köszönöm. Máris nézem.
Beküldte CHi -
köszönöm. Máris nézem. Ugyanazon domain alatt vannak.
Beállítottam az aldomain
Beküldte CHi -
Beállítottam az aldomain mappájának a multisite mappát, s a következő hibaüzenetet kaptam:
Erre valaki azt mondta, hogy kommentezzem ki az egész .htaccess fájlt. De biztos jó megoldás ez erre?
Beállítottam a $cookies session-nak a .domain.hu-t de a multisite-nál a könyvtárnév ugye www.-vel kezdődik, s ezért nem jelenitheti meg. Te hogyan oldottad ezt meg az aldomain-os verziódnál?
Előre is köszönöm:
Access forbidden!
You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.
If you think this is a server error, please contact the webmaster.
Error 403
Átirtam a multisite mappában
Beküldte CHi -
Átirtam a multisite mappában lévő settings.php-ben,
$db_prefix = array(
'default' => 'alapsite_',
'users' => 'kozosseg_',
'sessions' => 'kozosseg_',
'role' => 'kozosseg_',
'authmap' => 'kozosseg_',
);
De még mindig, a közösségi oldalon is a kozosseg_users táblába irja a felhasználót. S nem az alapsite-ba. Tehát nem abba a táblába ir.
Valamit nem jól csináltam?
Előre is köszi.
JUHIIII! Sikerült.. Nem
Beküldte Ch -
JUHIIII!
Sikerült..
Nem vettem ki az alatta lévő $db_prefix = kozosseg_
sort!
Annak irom aki ugyanebbe a kérdésben keres:
1. Tehát feltelepitettem a 2 drupalt.
Az elsőt a főkönyvtárban, aztán a másodikat a mutisite könyvtárban, úgy hogy a setting.php-ban először az új
táblanévvel installoztam: $db_prefix = kozosseg_;
majd miután feltelepitette a drupalt a közösségi oldalt, átirtam a settings.phpnál a $db_prefix = array(
'default' => 'kozosseg_', // az új tábla név
// amelyik táblákat megosztod
'users' => 'alapsite_',
'sessions' => 'alapsite_',
'role' => 'alapsite_',
'authmap' => 'alapsite_',
);
köszönöm az eddigi segitségedet!
Szia! A kérdés a következő.
Beküldte Ch -
Szia!
A kérdés a következő. amikor megcsinálom a multisite beállítást, s az aldomainnak beállítottam a multisite könyvtárát. www.alapsite.hu/kozosseg
Ez esetben, ha megnyitom az aldomaint:
http://kozosseg.alapsite.hu
akkor ez a hibaüzenet fogad:
Mit tudok, csinálni hogy elérjem az aldomain cimről az oldalt.
Mert eddig úgy csináltam, hogy az aldomain mappájában lévő .htaccess összes sorát kikommenteztem. S úgy behivta. Tudsz segiteni ebben?
Access forbidden!
You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.
If you think this is a server error, please contact the webmaster.
Error 403
Az apache-ban a két host jól
Beküldte EdgarPE -
Az apache-ban a két host jól van beállítva? Ha csak egy-egy idnex.php fájl van ott print "hello"-val, az működik?
Szia! Hát a drupal
Beküldte Chi -
Szia!
Hát a drupal Multisite-ot csináltam.
Ott csak egy settings.php-m van a Multisite könyvtárban, s egy files könyvtár.
Csak egy index.php van a fődrupal könyvtárban.
S úgymint az install php-t, gondolom a symlink ezt hivja meg, s a settings.php alapján hozzalétre az oldalt, az ott megadott adatbázis szerint.
Másoljak be a multisite mappába is egy index.php-t?
Nem pontosan értem, de
Beküldte EdgarPE -
Nem pontosan értem, de index.php-t nem kell másolnod, az bíztos! :)
Drupal nélkül érd ek ezt:
x.host.hu és y.host.hu cím a szerveren ugyanarra a könyvtárra mutasson, ha oda beteszel egy index.php-t, akkor mindkét esetben fusson le. Ha ez megvan, akkor lehet drupal-t telepíteni és multisite beállításokkal játszani.
Köszönöm, nagyon jól jött ez
Beküldte István -
Köszönöm, nagyon jól jött ez az aprócska beállítás :)
Sziasztok! Egy oldalamnak 2
Beküldte Anonymous -
Sziasztok!
Egy oldalamnak 2 domain neve van, mert 2 nyelvű, és url prefix helyett domain név alapján szelektáljuk a nyelvet.
Azt szeretném, hogy ha az egyik nyelven bejelentkezek, és a másik nyelvre váltok (másik domainre ugrik az oldal) akkor ne kelljen újra bejelentkeznem. A fenti post alapján a $cookie_domain = nek kéne több domain megadnom. Lehet ilyet? Ha igen, hogyan? Nem találtam infót ilyesmiről. Vagy más megoldás járja?
Egy cookie nem lehet érvényes
Beküldte EdgarPE -
Egy cookie nem lehet érvényes több domain-re, biztonsági megfontolásokból, így a $cookie_domain önmagában nem lesz elég. Neked egy Single Sign On megoldás kell, keress egy megfelelő modult, több is van.