Drupal frissítés helyi tesztszerveren

A minap részben kíváncsiságból, részben azért, mert idővel mindenképpen túl kell rajta esni a Pertu Jazz Group honlapjának is, frissítettem a honlapomat a Drupal 5-ös változatáról a 6-os verzióra. Óvatosságból, a hosztolt tárhely szolgáltatásainak felületes ismerete miatt először a saját gépemen (Ubuntu 8.04 LTS) beüzemeltem a weblapom rendszerének másolatát. Ezen végeztem el a verzióugrást, majd az új smink és a modulok kívánt kialakítása után a - már 6-os - helyi cms-t töltöttem vissza a szolgáltatómhoz, a MySQL adatbázissal együtt, szőröstől-bőröstől. A művelet lépéseit az alábbiakban részletezve végeztem el.

  1. Első lépés a helyi HTTP kiszolgáló és a szükséges szolgáltatások telepítése. Valószínűleg rengeteg "készen kapható" *amp szoftver megfelelő a célra, amely a tárhelyszolgáltatónknál futó PHP, MySQL megfelelő verzióját szállítja. Én az Apache2, MySQL, PHP és PHPMyAdmin hagyományos beüzemelése mellett döntöttem. Nem futhat az ember megoldhatatlan problémákba, az internet tele van ilyen útmutatásokkal.
    A biztonság kedvéért ellenőrizzük a végén, hogy a szolgáltatásaink megfelelően futnak-e (It works!; phpinfo; MySQL; stb.)
  2. Hozzuk létre a Drupal MySQL adatbázisának szánt felhasználót, illetve magát az adatbázist:
      hza@hza-laptop:~$ sudo mysql --password
      Enter password:

    Írjuk be a MySQL szerver root felhasználójának (telepítéskor megadott) jelszavát, majd ezután bebocsátást nyerünk:

      Welcome to the MySQL monitor. Commands end with ; or \g.
      Your MySQL connection id is 12
      Server version: 5.0.51a-3ubuntu5.4 (Ubuntu)
      Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
      mysql>

    A MySQL felhasználó létrehozásának szintaxisa jelen MySQL verzió esetében a következőképpen néz ki:

      mysql> CREATE USER 'drupal_felhasznalo'@'localhost' IDENTIFIED BY 'drupal_felhasznalo_jelszava';

    Létrehozzuk az adatbázist, a MySQL felhasználónknak megadjuk az összes jogosultságot erre az adatbázisra, majd dolgunk végeztével kilépünk.

      mysql> CREATE DATABASE drupal_adatbazis;
      mysql> GRANT ALL PRIVILEGES ON drupal_adatbazis.* TO 'drupal_felhasznalo'@'localhost';
      mysql> quit
  3. Mentsük le az online Drupal fájljait és az adatbázisát (dump file formában - a PHPMyAdmin Export fülénél).
  4. Töltsük fel a dump fájlunkat a helyi MySQL szerver adatbázisába! A dump előkészítéseként ellenőrizzük, hogy ékezeteink egészségesek-e a dump fájlban. Ha nem, csináljunk új exportot lehetőleg már utf-8 kódolással; ha minden ok, a dump elejére illesszük be ezt a sort:
      SET NAMES utf-8;

    Mentsünk, majd töltsük fel a fájlt helyi adatbázisunkba a következő paranccsal:

      hza@hza-laptop:~$ mysql -u drupal_felhasznalo -p drupal_adatbazis < drupal_adatbazis_dumpfile.sql
      Enter password:

    Beírjuk a MySQL felhasználó jelszavát, és kész is az importálás. (Az import lefutása eltart egy ideig; 800 MHz-es órajelen nálam ~14 másodpercbe telt egy 4 Mbyte-os dumpfile esetében.)

  5. Másoljuk az imént szintén lementett Drupal fájljait a helyükre (GNU/Linuxon a /var/www/ az alapértelmezett könyvtár). Tegyük mindenki által írhatóvá a Drupal sites/default/files könyvtárát.
  6. Az akadálytalan működés érdekében a /sites/default/settings.php-ben módosítsuk a MySQL szerverrel való kapcsolódási paramétereket a helyi működés érdekében (ne a "neten" lévő adatbázishoz kapcsolódjon a helyi Drupalunk). Például a szerver címét biztosan át kell javítani localhost-ra:).
  7. Jelentkezzünk be adminisztrátorként a helyi Drupalba, állítsuk a sminket az egyik core változatra (Garland vagy Bluemarine), majd kapcsoljuk ki az összes nem core modult (nálam: PoormansCron, CAPTCHA, Tagadelic).
  8. A sites könyvtár kivételével elpusztítjuk az összes állományt, majd felmásoljuk a helyükre az új Drupal fájljait.
  9. Futtasuk az update.php-t a böngészőnkbe írt http://localhost/update.php linkkel. Töltsük le a használni kívánt nem-core modulok megfelelő verzióját, másoljuk őket a Drupal modules/ könyvtárába, majd futtassuk ismét az update.php-t.
  10. CSS-újoncoknak: keressünk egy 6-os sminket, vagy (haladók) kapcsoljuk vissza megszokott sminkünket, pofozzuk ki a hiányosságait.
  11. Én átnevezgettem a frissített SQL adatbázisom táblanevei prefixumát "5_"-ről "6_"-ra. Ebben az esetben a feljebb már említett settings.php-ben is változtassuk a megfelelő értékre a prefixet. (95. sor)
  12. A lehető legkényelmesebb táblavisszatöltéshez én a bigdump.php-t használom (thanks to Alexey Ozerov!), mivel a HTTP feltöltéseim szeretnek megszakadni. A módszer lépései a Drupal hivatalos oldalán megtalálhatóak. Figyelni kell arra, hogy a feltölteni kívánt SQL dump exportjakor ne használjunk a PHPMyAdminben EXTENDED INSERT-eket.
  13. Módosítsuk az eredetire a /sites/default/settings.php-ben a MySQL kapcsolat adatait. Ezután másoljuk fel a teljesen kitakarított (online) public_html könyvtárunkba a frissített Drupal helyi változatát.
  14. Elkészültünk! Ha minden jól működik, bontsunk egy sört...