Egy kódbázisra több Drupal - nagy változások

chx képe

Eddig is volt erre lehetőség de most már a fejlesztői verzióban sokkal széles körűbbek a lehetőségek: nemcsak saját adattáblákat és/vagy adatbázist használhatunk, hanem saját modulokat és sminkeket is. Rögvest le is fordítottuk az INSTALL.txt vonatkozó részét.

Az alapértelmezett beállításokat a feltelepített Drupal rendszer sites/default/settings.php fájlja tartalmazza. A további webhelyek beállításait alkönyvtárakba kell elhelyezzük. Minden webhely alkönyvtárának tartalmaznia kell egy settings.php fájlt, ezt legegyszerűbben az alapértelmezett settings.php lemásolásával és értelemszerű módosításával állíthatjuk elő. Az alkönyvtár nevét a webhely URL-jéből állítja elő a rendszer.

A valahol.hu, a valami.valami.hu és a valami.valahol.hu/bolt3 külön-külön webhelyek lehetnek. Ehhez a következő alkönyvtárakra és fájlokra van szükség:

  • sites/valahol.hu/settings.php
  • sites/valami.valahol.hu/settings.php
  • sites/valami.valahol.hu.bolt3/settings.php

A Drupal a http://valami.valahol.hu/bolt3 beállításait a következő helyeken keresi a megadott sorrendben, és az első találatot fogja használni:

  • sites/www.valami.valahol.hu.bolt3/settings.php
  • sites/valami.valahol.hu.bolt3/settings.php
  • sites/valahol.hu.bolt3/settings.php
  • sites/www.valami.valahol.hu/settings.php
  • sites/valami.valahol.hu/settings.php
  • sites/valahol.hu/settings.php
  • sites/default/settings.php

Minden webhelynek lehetnek saját moduljai és sminkjei azon felül, amelyeket a normál modules és themes könyvtárakban találhatunk. Ehhez egyszerűen az adott webhelyhez tartozó könyvtárban kell modules és themes alkönyvtárakat létrehoznunk. Például ha a valami.valahol.hu használ egy saját sminket és egy saját modult, akkor a következő alkönyvtárakra és fájlokra lehet szükségünk:

  • sites/valami.valahol.hu/
  • sites/valami.valahol.hu/settings.php
  • sites/valami.valahol.hu/themes/sajat_theme/
  • sites/valami.valahol.hu/modules/sajat_module/

További információkat a kézikönyvben találhatunk (majd).

Hozzászólások

Hojtsy Gábor képe

Nekem az is nagyon tetszik ebben az újításban, hogy a Bryght fejlesztői küldték be, majd hosszabb egyeztetés és alakítás után jutott ide. Ők ezt egy kicsit megspékelik majd továbbértékesítő csomagokkal, és azok specialitásaival. Ez úgy tűnik, hogy az egész bryght hoszting egyetlen Drupal példányon fog futni :)

aries képe

Jelen pillanatban a CVS-ben nincs sites/default/settings.php , de kis gondolkodás után mindenki rájöhetett, hogy a sites/default könyvtárat létrehozva, az eddigi includes/conf.php -t átmásolva settings.php -nek, rögtön működik a rendszer.

Hojtsy Gábor képe

Hát nagyon csodálkoztam volna, ha nem lett volna ilyen fájl. A CVS logok tanulsága szerint Wed Nov 24 22:44:01 2004 UTC az a dátum, amikor a settings.php bekerült, azaz nagyjából másfél nappal azelőtt, hogy a hozzászólásod írtad. Nekem úgy tűnik, hogy a CVS kliensed nincs beállítva, hogy az újonnan létrejövő könyvtárakat is letöltse.

ehran képe

Sziasztok!

Kezdö Drupalos-ként (söt kezdö php-sként :-) ) azt szeretném megkérdezni, hogy milyen egyéb beállítások kellhetnek még, hogy a fenti módszer müködjön? Feltelepítettem a drupalt, rendesen tudom adminisztrátorként is szerkeszteni, és ekkor gondoltam kipróbálom ezt a "több drupalt egy kódon módszert". Az alap drupal müködik mondjuk a www.valami.hu/drupal/ oldalon, én meg szeretnék egy más megjelenésü, más tartalmú oldalt a www.valami.hu/drupal/masik/ oldalon. Ekkor megcsináltam a cikk szerint a szükséges alkönyvtárat, és bele a settings.php-t. De ha beírom a www.valami.hu/drupal/masik/ címet a böngészöbe, akkor egy Not Found-ot kapok, és látszik, hogy az Apache a /drupal/masik alkönyvtárban keresgélne, de mivel ilyen nincs, hibát dob. Mit rontottam el, illetve mit nem állítottam be? Elnézést, ha túl nagy hülyeséget kérdezek, de nézzétek el, még kezdö vagyok.
Elöre is köszönöm!

ehran

Hojtsy Gábor képe

Virtuális mappát kell létrehozni az Alias parancs segítségével, és akkor tényleg ott lesz az Apache számára.

ehran képe

Köszönöm szépen a segítséget, megoldódott a dolog.

csonti képe

Egy kicsit szégyenkezve:) kérdezek, de nekem nem akar működni ez a többdrupál-dolog. Az első kérdésem az, hogy a fentiek u.úgy működnek localhost tesztelés esetén is? Egy virtual host-ot hoztam létre a drupal könyvtárra és az /etc/hosts -ba hozzáírtam, hogy 192.168.0.1 www.drupalhost.hu drupalhost.hu
majd a drupal könyvtában létrehoztam a proba.drupalhost.hu és a drupalhost.hu.proba könyvtárakat a megfelelő settings-fájl átírással, mégis csak egy "page not found" a jutalmam. Hol a hiba? Ha alias-sal kell megoldani, akkor hogyan? Miért pont ezzel?
A segítséget köszönöm:
Csonti

csonti képe

Már megvan a megoldás, ha valakit majd érdekel, leírom részletesen.

Sweetchuck képe

engem :)
Meg talán mást is, aki legközelebb erre jár.

csonti képe

Kezdjük a virtuálhostokkal (ez most csak tesztelésnél volt tesztelve :):
A httpd.conf végre a következőket írtam:

NameVirtualHost *:80


ServerAdmin root@localhost
DocumentRoot /var/www/drupal
ErrorLog logs/drupalhost-error_log
CustomLog logs/dummy-host.example.com-access_log common


ServerAdmin root@localhost
DocumentRoot /var/www/drupal/
ErrorLog logs/subdrupalhosts-error_log


Az első a "sima" drupalhost.hu kéréseket szolgálja ki,
míg a második a subdomaineket, pl. a proba.drupalhost.hu -t

az /etc/hosts tartalma:
127.0.0.1 localhost localhost.localdomain localhost
192.168.0.1 www.drupalhost.hu drupalhost.hu
192.168.0.1 www.proba.drupalhost.hu proba.drupalhost.hu

Ezeken kívül a settings-ben meg kell adni a tábla prefixet, (ha egy adatbázist használunk minden drupal példányhoz) és egy prefix-szel meghekkelt :) sql fájlt megetetni a mysql-lel (a drupal.org-ról töltöttem le egy fórumból, meg tudom adni itt is, csak hosszú).

talger képe

tudsz linket adni a fórumhoz?

csonti képe

talger képe

Köszönöm szépen!

Sweetchuck képe

Hello

Ezzel én is sokat szenvedtem. Rengeteg manuált olvastam, de nem tudtam apache-ban rendesen virtualhost-ot csinálni.
Aztán azt lett a vége hogy csak ezt a fájlt módosítottam:
c:\WINDOWS\system32\drivers\etc\hosts
127.0.0.1 localhost
127.0.0.1 egy.localhost
127.0.0.1 ketto.localhost
127.0.0.1 harom.localhost

és ilyen mappákat hoztam létre
d:\...\www\drupal\sites\default\
d:\...\www\drupal\sites\egy.localhost\
d:\...\www\drupal\sites\ketto.localhost\
d:\...\www\drupal\sites\harom.localhost\

így érem el:
http://localhost/drupal/?q=
http://egy.localhost/drupal/?q=

WinXP + apache
Nekem csak tesztelésre van. Éles rendszerre kérdezzél olyat aki profi.

yaanno képe

Egy érdekes tippet találtam itt a több adatbázisos megoldásokat igénylő/kedvelő fejlesztőknek. A tipp lényege, hogy az azonos (nevű stb.) adatbázistáblák között nézetekkel kommunikálunk.

Pl. ha a site1 users tábláját akarjuk használni site2 alatt:

DROP VIEW IF EXISTS `site2`.`users`;
 
CREATE VIEW `site2`.`users` 
	AS 
( SELECT * FROM site1.users)

a site2 users táblája törölhető. Az eredeti linken található beágyazott megoldás mysql 5 alatt sem működik (még?), ha jól tévedek, egyelőre ez egy ismert, de nem megoldott probléma.