Roundcube telepítése (Wheezy)

Innen: AdminWiki

Ebben a leírásban a Roundcube webmail kliens alkalmazást telepítjük házirend szerint konfigurált Debian Wheezy (Apache 2.5.12, wsm2 2.4+, PHP 5.4, MySQL 5.5) webkiszolgálóra.

Jelen leírásban nemcsak önálló webszolgáltatásként, hanem az ownCloud fájlszinkronizáló és felhőszolgáltatás beépülő moduljaként, illetve VExim alapú levelező kiszolgáló webmail klienseként is szeretnénk használni a Roundcube-ot.

Házirend

A Roundcube-ot úgy tervezték, hogy önálló webszolgáltatásként, a belépő képernyőn ad-hoc megadott IMAP(s) szerver URL, felhasználónév és jelszó adatokkal gyakorlatilag bármilyen IMAP(s) szerverhez webes kliensként képes legyen kapcsolódni. Az authentikációt a megadott IMAP szolgáltatás végzi, sikeres belépés esetén a Roundcube alapértelmezésben automatikusan létrehoz egy Roundcube-on belüli felhasználói profilt (login name és mail host együttesen azonosítják), de ebben nem tárol authentikációs adatokat, csak napló adatokat és a levelező kliens beállításait (opcionálisan email cache is lehetséges). Ezzel a viselkedéssel akár nyilvános kioszkban, univerzális levelező kliensként is üzemelhetne, de talán jellemzőbb felhasználása, amikor egy konkrét levelező megoldáshoz vagy felhőszolgáltatáshoz nyújt webmail funkcionalitást. Ilyenkor érdemes az IMAP(s) és SMTP(s) szervereket konfigurációban rögzíteni, ezzel azokra a felhasználókra korlátozva a Roundcube példány használatát, akiknek a felsorolt szervereken érvényes postafiókjuk van.

A Roundcube funkcionalitása pluginokkal sokféleképpen bővíthető. Az asztali kliensekkel szemben talán a leglényegesebb megszorítás, hogy a Roundcube egy bejelentkezéssel csak egy IMAP(s) postafiókhoz képes csatlakozni.

Önálló webalkalmazás házirendje

TODO!

OwnCloud integráció házirendje

Az OwnCloud - Roundcube integráció jelen leírásban azt jelenti, hogy azonos virtualhoston belül szeretnénk egy OwnCloud és egy Roundcube webszolgáltatást is nyújtani (a webfelületek összekapcsolásáról az OwnCloud Roundcube Mail modulja gondoskodik). Illeszkedve az OwnCloud házirendjéhez, a Roundcube-ot úgy szeretnénk telepíteni, hogy:

  • minden OwnCloud példányhoz egy-egy külön, önálló Roundcube példány tartozzék;
  • minden példány adatterülete a hozzá kapcsolódó OwnCloud virtualhost területén belül egy írható könyvtár legyen (ez a Roundcube Mail modul kikötése);
  • a példányok egy közös, frissíthető kódkészletet használjanak, amely csak olvasható tárterületen (/usr/local/share) helyezkedjen el;
  • a Roundcube saját adatainak tárolására minden példány önálló, dedikált MySQL adatbázist használjon, amely névkonvencióval is kapcsolódjék az OwnCloud példányhoz.

VExim integráció házirendje

TODO!

Előfeltételek

Telepítés

A Roundcube szerepel ugyan a Debian terjesztésben, de a csomagolt verzió jelentősen (akár több nagy verziószámmal is) elmarad az aktuálistól, valamint a .deb telepítés nem igazán támogatja a szervergépen több párhuzamos példány használatát, így a házirendünk kívánalmainak kevéssé felel meg. Ezért a Roundcube-ot tarball-ból telepítjük. Töltsük le a legfrissebb stabil verziót, és a /usr írhatóan újracsatolása után csomagoljuk ki a /usr/local/share/roundcube-versions/roundcube-X.Y.Z könyvtárba a házirend szerinti jogosultságok beállításával:

mount -o remount,rw /usr  # Írni kell ide
RC_VERSION="X.Y.Z"        # Töltsük ki az aktuális verzióval!

# Közös kódkészlet könyvtárának elkészítése
mkdir /usr/local/share/roundcube-versions; chown root:staff /usr/local/share/roundcube-versions
mkdir /usr/local/share/roundcube-versions/roundcube-$RC_VERSION

# Letöltés, kicsomagolás
cd /root/tmp
wget 'http://sourceforge.net/projects/roundcubemail/files/latest/download' -O roundcubemail-$RC_VERSION.tar.gz
tar xzvf roundcubemail-$RC_VERSION.tar.gz -C /usr/local/share/roundcube-versions/roundcube-$RC_VERSION --strip-components=1

# Jogosultságok beállítása
chown -R root:www-data /usr/local/share/roundcube-versions/
find /usr/local/share/roundcube-versions/ -type d -exec chmod 750 {} \;
find /usr/local/share/roundcube-versions/ -type f -exec chmod 640 {} \;

# Symlink az aktuális verzióra
ln -s roundcube-versions/roundcube-$RC_VERSION /usr/local/share/roundcube
chown -h root:www-data /usr/local/share/roundcube

A roundcube-addons telepítése

Bár a core kódkészlet megváltoztatásától általában jobb tartózkodni, a Roundcube jelenlegi állapotában a házirendünkkel nem teljesen kompatibilis és ezt csak a core foltozásával tudjuk áthidalni (TODO!).

Core patchelése

Töltsük le és a /usr partíció átmenetileg írhatóra csatolása után könyvtárhelyesen csomagoljuk ki roundcube-addons tarball legfrissebb változatát! Ez tartalmaz néhány patch állományt a /usr/local/share/roundcube-addons/patch könyvtárban. Válasszuk ki a telepített Roundcube verziószámának megfelelőt(!), és alkalmazzuk:

patch -p0 -d /usr/local/share/roundcube </usr/local/share/roundcube-addons/patch/roundcube_X.Y.Z-roundcube-addons-YYYYMMDD.patch

Siker esetén állítsuk helyre az esetleg elromlott jogosultságokat:

chown -R root:www-data /usr/local/share/roundcube/
find /usr/local/share/roundcube/ -type d -exec chmod 750 {} \;
find /usr/local/share/roundcube/ -type f -exec chmod 640 {} \;

3rd party pluginok

A Roundcube-hoz az alábbi 3rd party pluginokat fogunk használni:

Opcionálisan:

  • VExim Account Admin - saját felhasználói adatok kezelése helyi vagy távoli VExim alapú levélkiszolgálón.

A fenti modul(oka)t a /usr/local/share/roundcube-addons/plugins könyvtár tartalmazza, az esetleg szükséges módosításokkal együtt (ezeket tehát nem kell patchelni!). Ha a csomagban érkező példányokat használjuk, a pluginokkal most nincs több teendő; a virtualhostok kialakításakor a szóban forgó modul(oka)t nem a core könyvtárából, hanem innen fogjuk linkelni.

Ha a roundcube-addons csomagban nem szereplő, vagy az abban szereplőknél frissebb pluginokat szeretnénk, azokat töltsük le a fenti webhelyekről vagy a Roundcube Plugin Reporitory-ból és csomagoljuk ki a /usr/local/share/roundcube-addons/plugins/ könyvtárba. Néhány pluginhoz patch szükséges, amelyet a /usr/local/share/roundcube-addons/patch könyvtár tartalmaz. A patchelést a core módosításához hasonlóan végezhetjük el:

patch -p0 -d  /usr/local/share/roundcube-addons/plugins/PLUGIN </usr/local/share/roundcube-addons/patch/PLUGIN_X.Y.Z-roundcube-addons-YYYYMMDD.patch

Állítsuk be a saját modulok jogosultságait a core modulokéval azonosan (a tarballban lévőknek eleve így kell szerepelniük, de biztos, ami biztos):

chown -R root:www-data /usr/local/share/roundcube-addons/plugins/
find /usr/local/share/roundcube-addons/plugins/ -type d -exec chmod 750 {} \;
find /usr/local/share/roundcube-addons/plugins/ -type f -exec chmod 640 {} \;

A telepítés befejezéseként csatoljuk újra csak olvashatóan a /usr partíciót:

mount -o remount /usr

Ezzel a Roundcube közös kódkészletét (a core-t) telepítettük. Amennyiben nem önálló webalkalmazásként, hanem integráció előfeltételeként telepítettük a Roundcube-ot, a telepítést itt hagyjuk abba, és folytassuk azt az integráció félbehagyott komponensénél.

Megjegyzés: a telepített Roundcube-ot itt még nem tudjuk kipróbálni, csak ha a lentiek szerint legalább egy konkrét példányt is telepítünk.

Roundcube példány készítése

Ez a szakasz az önálló webalkalmazásként működő Roundcube példány készítését és beállítását tárgyalja. Integrációban telepített Roundcube esetén ld. az alábbi oldalakat:

Karbantartás

Roundcube core frissítése

A verziófrissítésekről legegyszerűbben a Roundcube bejelentések hírleveléből értesülhetünk. Jelenleg nincs a Roundcube-ban automatikus verziófigyelés, így erre a hírlevélre mindenképpen ajánlatos feliratkozni.

A frissítést forgalommentes időszakban végezzük, és mindenképpen legyen mentésünk! Frissítéshez töltsük le a legfrissebb stabil verziót, és a /usr írhatóan újracsatolása után csomagoljuk ki a /usr/local/share/roundcube-versions/roundcube-X.Y.Z könyvtárba a házirend szerinti jogosultságok beállításával:

mount -o remount,rw /usr  # Írni kell ide
RC_VERSION="X.Y.Z"        # Töltsük ki az aktuális verzióval!

# Kódkészlet verzió könyvtárának elkészítése
mkdir /usr/local/share/roundcube-versions/roundcube-$RC_VERSION

# Letöltés, kicsomagolás
cd /root/tmp
wget 'http://sourceforge.net/projects/roundcubemail/files/latest/download' -O roundcubemail-$RC_VERSION.tar.gz
tar xzvf roundcubemail-$RC_VERSION.tar.gz -C /usr/local/share/roundcube-versions/roundcube-$RC_VERSION --strip-components=1

# Jogosultságok beállítása
chown -R root:www-data /usr/local/share/roundcube-versions/roundcube-$RC_VERSION
find /usr/local/share/roundcube-versions/roundcube-$RC_VERSION -type d -exec chmod 750 {} \;
find /usr/local/share/roundcube-versions/roundcube-$RC_VERSION -type f -exec chmod 640 {} \;

Core patch frissítése

A core patcheléséhez szükséges lehet a roundcube-addons tarball legfrissebb változata, amelyet innen töltsünk le, és (továbbra is írható /usr partíció mellett) könyvtárhelyesen csomagoljunk ki (ezzel egyben frissítjük a saját terjesztésű pluginokat is!). Lehetséges, hogy nem minden Roundcube kiadáshoz tartozik külön roundcube-addons kiadás, ez esetben a meglévő legfrissebb patchet alkalmazhatjuk (de mindenképpen kell foltoznunk!).

A /usr/local/share/roundcube-addons/patch könyvtárból válasszuk ki a telepített Roundcube verziószámának megfelelő (ennek hiányában a legfrissebb) foltot, és alkalmazzuk:

patch -p0 -d /usr/local/share/roundcube-versions/roundcube-$RC_VERSION </usr/local/share/roundcube-addons/patch/roundcube_X.Y.Z-roundcube-addons-YYYYMMDD.patch

Siker esetén állítsuk helyre az esetleg elromlott jogosultságokat:

chown -R root:www-data /usr/local/share/roundcube-versions/roundcube-$RC_VERSION
find /usr/local/share/roundcube-versions/roundcube-$RC_VERSION -type d -exec chmod 750 {} \;
find /usr/local/share/roundcube-versions/roundcube-$RC_VERSION -type f -exec chmod 640 {} \;

Ezzel a frissített közös kódkészletet aktiválásra előkészítettük.

Aktiválás

A frissítést az aktuális kódverzióra mutató symlink átírásával érvényesíthetjük:

if [ -L /usr/local/share/roundcube ]; then rm /usr/local/share/roundcube; fi
ln -s roundcube-versions/roundcube-$RC_VERSION /usr/local/share/roundcube
chown -h root:www-data /usr/local/share/roundcube

A frissítés befejezéseként csatoljuk újra csak olvashatóan a /usr partíciót:

mount -o remount /usr  # Már nem kell írni

Az esetleges adatbázis-frissítéseket Roundcube példányonként külön-külön kell elvégezni, ld. az UPGRADING állományban - TODO!

Irodalom