Köszöntjük a Drupal telepítőt

Hojtsy Gábor képe

Tegnap kerültek be a forrásba azok a változások, amelyek minden egyes alap modult külön mappába helyeztek. Ennek azért van nagy jelentősége a jövőre nézve, mert a Drupal szakítani kezd az "egy modulhoz tartozó minden kód kerüljön egy fájlba" filozófiával, és így megvan a hely a modulok kódjának felbontására.

A mai napon ennek első gyakorlati alkalmazása is megérkezett, a telepítő alrendszer. Sokan mondták már, hogy telepítőt programozni nem olyan bonyolult, miért is nincs még a Drupal rendszernek ilyen eszköze. Valóban, telepítőt írni nem nagy feladat, egy egész telepítő keretrendszert azonban már keményebb dió.

A Drupal 4.7-ben már megjelent az automatikus telepítés és frissíthetőség minden kiegészítő modul számára, és egyre több modul él is ezzel a lehetőséggel. Amely kiegészítő modulokban a korábban szokásos .mysql és .pgsql fájlok helyett .install fájlt találunk, az bekapcsolásakor automatikusan telepíti magát, később pedig szükség szerint felajánlja a frissítési lehetőségét az update.php futtatásakor.

A mai napon ez érte el a Drupal alapcsomagját is. Minden kötelezően bekapcsolt modul a system.install fájlból települ, az opcionális modulok pedig saját .install fájlokat kaptak. Így a Drupal telepítés most már nem igényel kezdeti adatbázis importálást, és mindig csak olyan modulok táblái vannak az adatbázisunkban, amiket korábban bekapcsoltunk.

Ez még természetesen nem lenne olyan nagy eredmény. A telepítő alrendszer igazi célja, hogy telepítési profilokat támogasson. A Drupal ugyanis egy sokoldalú rendszer, a különböző felhasználásainak (blog, webbolt, brossúra webhely, újság stb.) eltérő alap és kiegészítő modulok és ezek eltérő beállításai tartozhatnak. A Drupal mappájában letöltésekor megtalálható profiles könyvtár alapvetően csak az alapértelmezett profilt tartalmazza, mely az eddig megszokott modul összeállítást nyújtja. A profil készítés szabadságának köszönhetően viszont bárki készíthet most már újabb profilokat, melyek saját varázslókkal, ezek segítségével pedig speciálisan beállított modulokkal vértezik fel a Drupal rendszert.

A telepítés módja tehát ma estétől:

  1. Töltsünk le egy aktuális Drupal csomagot.
  2. Csomagoljuk ki a webszerverünkön.
  3. Biztosítsuk, hogy van egy MySQL vagy PostgreSQL adatbázis és egy felhasználó, amivel ehhez csatlakozhatunk.
  4. Böngészőből látogassuk meg az install.php fájlt a Drupal gyökerében, mely figyelmeztetni fog, ha a sites/default/settings.php nem írható.
  5. Webes felületen adjuk meg az adatbázis kapcsolati adatokat.
  6. A telepítés során automatikusan beállítódik a settings.php, és a megfelelő adatbázis táblák létrejönnek.
  7. A telepítés végeztével tegyük újra csak olvashatóvá a settings.php fájlunkat.
  8. Kész.

Hozzászólások

Őry Máté képe

kipróbáltam ma reggeli cvsből? mysqlivel szétvarningolta a fejemet. (nem kapnak a mysqli_ függvények $connection paramétert.)

Hojtsy Gábor képe

Ha legközelebb jut időd egy patchet is készíteni a javításokkal, az még jobb lenne. Most készítettem egyet, és beküldtem. Különben a fenti képernyőképet mysql alapú telepítés után készítettem, azt megint jobban tesztelték a fiúk.

Őry Máté képe

figyelmetlen voltam. belenéztem a kódba és csak azt láttam, h a $connection változó elveszik a függvény végén. azt már nem néztem, h csak ott is kell. szal azt hittem, bonyolultabb. thx

Tuccsi képe

Rendben van, hogy a telepítőre van patch, de a futáskor is Warning jön:
Warning: Couldn't fetch mysqli in C:\drupal\includes\database.mysqli.inc on line 351
Ez pedig:
349 function db_escape_string($text) {
350 global $active_db;
351 return mysqli_real_escape_string($active_db, $text);
352 }

valamint:
Warning: Couldn't fetch mysqli in C:\drupal\includes\database.mysqli.inc on line 102
Ez pedig:
$result = mysqli_query($active_db, $query);

valamint:
Warning: Couldn't fetch mysqli in C:\drupal\includes\database.mysqli.inc on line 117
Ez pedig:
117 if (!mysqli_errno($active_db)) {
118 return $result;
119 }
120 else {
121 trigger_error(check_plain(mysqli_error($active_db) ."\nquery: ". $query), E_USER_WARNING);
122 return FALSE;
123 }

Próbáltam betenni a $connection-t, de nem lett jó.

Mit lehetne tenni?

Hojtsy Gábor képe

Fogadjunk, hogy PHP 5.0.5 vagy újabb verziót használsz! Úgy tűnik valamiért változott az egyedi session kezelőket működtető mechanizmus a PHP-ben...

Write and Close handlers are called after destructing objects since PHP 5.0.5. Thus destructors can use sessions but session handler can't use objects. In prior versions, they were called in the opposite order. It is possible to call session_write_close() from the destructor to solve this chicken and egg problem.

Alkotni kellene ebből egy foltot a Drupalhoz, és beküldeni.

york képe

Szia

Modul eltavolitasa utan lesz lehetoseg, az adatbazisba feleslegesse valt tablak torlesere?

York
---
http://openproject.hu

Hojtsy Gábor képe

Hát ha igény van rá, akkor bárki megírhatja és beküldheti. Én nem tudok róla, hogy ez terv lenne per pillanat.

nevergone képe

Úgy gondolom, hasznos lehetne, hasonlóan a "remove" és a "purge" közti különbséghez. Csökkentené az adatbázis működését, ez pedig adott esetben gyorsabb működést eredményezhetne.
Persze, az már egy másik kérdés, milyen módon biztosítható ilyenkor az adatbázis integritása...

york képe

Nekem az lenne, nagyon kellemes az ha nem nekem kell 100 tablabol kimazsolazni mi az ami kell es mi az ami nem kell a mukodeshez.

York.
---
http://openproject.hu

vete képe

Bocsi, Lehet, hogy nagyon kezdő vagyok de egyik letöltött csomagban sem találtam install.php-t!
Ez az első drupalos próbálkozásom, ennél fogva ha lehet el szeretném kerülni a kézi telepítést...:)
Előre is kösz a segítséget...

nevergone képe

A kézikönyvet végigolvastad? Sok kérdésedre választ találhatsz benne.

Hojtsy Gábor képe

Olyan csomag nincs, amiből most webhelyet készíthetsz. Ez az újítás a Drupal 4.8-ban fog megjelenni. Addig is a CVS verziók letöltésével (lásd magyar kézikönyv) tudod ezt kipróbálni, de éles weboldalt ne építs erre, mert meg fogod bánni (sokminden változik még a 4.8 megjelenéséig).

Anonymous képe

A installer miatt érdeklődöm: előreláthatólag mikorra várható a 4.8-as (hetek, hónapok ...)?

Csak azért kérdem, hogy várjak rá ... vagy inkább fogjak neki egy kicsit komolyabban foglalkozni a parancssorokkal (sajnos olyan tárhelyem van, ahol nincs phpMyAdmin, s az eddigi kézi próbálkozásaim nem vezettek sikerre)

nevergone képe

Úgy gondolom, hogy ne várj rá, még sok fejlesztés áll elötte.
Nem tudom, miért idegenkedsz attól a tényleg pár parancstól, ami részletesen és közérthetően le van írva mindkét (magyar és angol) kézikönyvben.
Komolyan, nagyobb vajúdást csinálsz belőle, mint egy gyerekszülésből... :)

Anonymous képe

Azt hiszem, hogy többen vagyunk, akik "vajúdunk" ;-) ... s mind névtelenül (persze ha bejeletkeztem volna, akkor egyszerűbb lett volna a helyzet).

Az én bajom, hogy:
- a tárhelyet csak ftp-vel érhetem el (habár az adatbázist a rendszergazdi létrehozta nekem)
- a tárhelyen nincs phpMyAdmin (annak segítségével - természetesen a kézikönyv leírását követve - az uw-re simán "felgyakoroltam" a Drupalt)
- programozói tudásom gyakorlatilag 0 a köbön

- s ezek eredményeképpen nem igazán tudom, hogy mit is kezdjek a kézikönyv köv. soraival: "Amennyiben parancssorból kívánjuk betölteni az adatbázis sémát, a következő parancsot használhatjuk: $ mysql -udrupal -pdrupal drupal < database.4.x.mysql ahol az első három adat a fent létrehozott felhasználó neve, jelszava, és az adatbázis neve, az x pedig értelemszerűen a használt verziónak megfelelő."

Ugyanis nem tudom, hogy hol kellene használjam a fenti parancsot (az adatokat talán még ki tudnám tölteni ;-))

nevergone képe

> vagy inkább fogjak neki egy kicsit komolyabban foglalkozni a parancssorokkal

Ez alapján úgy értelmeztem, hogy van konzolos hozzáférésed a tárhelyet üzemeltető szerverhez.
Amúgy pedig egyszerűen alkalmazhatod azt a megoldást, amit én ilyenkor szoktam: megkéred rendszergazdát, hogy az alaprendszer adatbázisát importálja már be Neked a rendszerbe, ha már létrehozta az adatbázist.
Működni szokott, és úgy sem tartalmaz semmilyen "érzékeny" adatot, amiből valamilyen probléma származhatna.

Jah, és a programozói tudást szerintem felejtsd el, ez messze nem erről szól.
És érdemes lenne regisztrálnod erre az oldalra, szerintem.

Szergio képe

- Regisztráció megtörtént ;-)

- A szerverhez csak annyi hozzáférésem van, hogy ftp-vel fel tudok tölteni anyagot.

- A rendszergazda többszörös próbálkozásomra annyit tett, hogy létrehozta az adatbázist (a többit csináld magad jelszó ...)

nevergone képe

> A rendszergazda többszörös próbálkozásomra annyit tett, hogy létrehozta az adatbázist (a többit csináld magad jelszó ...)

Hidd el, érdemes megpróbálni, esetleg többször is, és segíteni fog. Esetleg egy üveg sör még vethet valamit a latba, sőt ennyiért talán phpmyadmin -t is kapsz... :)
Nem akarásnak nyögés a vége, tudod jól. :)

Hojtsy Gábor képe

A kézi telepítés problémáink semmi köze nincs a Drupal leendő telepítőjéhez. Nem ide kellene belerondítani a kapcsolódó hozzászólások kellős közepébe.

Anonymous képe

Na még egyszer: (biztos valami kód volt, ami megszakította ... bocs' a bénaságért!)

" .... database.4.x.mysql ahol az első három adat a fent létrehozott felhasználó neve, jelszava, és az adatbázis neve, az x pedig értelemszerűen a használt verziónak megfelelő."

Ugyanis nem tudom, hogy hol kellene használjam a fenti parancsot (az adatokat talán még ki tudnám tölteni ;-))

nevergone képe

> Ugyanis nem tudom, hogy hol kellene használjam a fenti parancsot

Attól tartok, akkor elöbb más irányultságú, adatbázisokkal, és felhasználói rendszerekkel kapcsolatos ismereteidet kellene tovább erősíteni.

Szergio képe

Én is ettől tartottam ... (persze azért titokban reméltem, hogy csak ki tudom ezt "cselezni"). Na de fejlődőképesnak tartom magam ... úgyhogy csak találok valami megoldást (pl. kivárom a 4.8-at ;-))

nevergone képe

> pl. kivárom a 4.8-at

Nem hinném, hogy ettől megszünne az alap-probléma, és amit most nem tudsz, késöbb sem fogod tudni, ha szükéged lesz rá. Nem fognak minden megoldást a kezedbe adni, ha önállóan nem tudsz elöbbre lépni.
Szóval, hajrá.

Szergio képe

Kösz' a biztatást!!

A probléma csak annyi, hogy egy weblapot szeretnék üzemeltetni (s voltam olyan "szerencsétlen", hogy ráakadtam a Drupalra, volt egy kis időm, s kipróbáltam az uw-n, s ... beleszerettem). Tehát a "fő csapás" nem a webszerkesztés ... ennek megfelelően erre elég kevés idő jut.

De előbb/utóbb megoldom!

S akkor majd azt is megtudom, hogy hol is kell azt a fránya parancssort elindítani ;-)

(persze tudom, hogy az majd újabb próblémákat fog felvetni ... de így szép az élet)

vete képe

Igen átolvastam a kézikönyvet, sőt az ATW-re részben fel is küzdöttem a Drupalt, de most egy olyan tárhelyet kaptam amihez nincs sql segédprogi telepítve, ergo kézzel kellene az adattáblákat stb beállítgatni.... ezért örültem az istallernek....amit nem találok...
Szg

nevergone képe

A kézikönyvben (vagy a Drupal Handbooks -ban) elég jól le van írva, hogy milyen parancsokkal kell kézzel telepíteni az adatbázist az alaprendszerhez, utána pedig a moduloknál már nem kell parancsokkal állítgatni.

Az a változat, amiről beszélünk a installernél még erősen fejlesztés alatt álló verzió, személyes véleményem szerint nem célszerű még éles oldalt kialakítani vele.

Messze nem olyan nagy varázslat az a pár parancs (persze, ha van valamilyen shell-hozzáférés), általában én is azt alkalmazom.

U.i.: Ha reagálsz egy hozzászólásra, légyszives a szálban tedd meg azt, hogy ne sérüljön párbeszéd integritása.

nevergone képe

Kipróbáltam tegnap a Drupal fejlesztői ágának legfrissebb CVS változatát.
A telepítő nagyon innovatív, eddig sem volt nehéz a Drupal telepítése, de ezután még annyi nehézséget sem okoz. Nagyon jó, hogy ha szükség van rá, mindezektől függetlenül alkalmazható az eddig megszokott módszer.

Érdekes változtatások történtek, a "settings" menűpontot alaposan átdolgozták, talán túl aprólékosan is, egy alap-rendszerrel is számtalan menűpont jelent meg benne. Az apróságok (pl. kommentek listázási stílusa), melyek eddig nem szerepeltek az alaprendszerben, kissé megnövelik a lehetőségeket, de igazi újdonságként én is a telepítési profilokat tartom. :)

Eddig is jól használható CMS rendszer volt a Drupal, és jó irányba is fejlődik.
Köszönet érte mindenkinek, aki részt vesz a fejlesztésében és a jobbátételében... :)