(Majdnem) Karácsonyi időtöltés gyanánt frissítenem kellett a szerveremen levő Roundcube Webmail ,,böngésző-alapú többnyelvű IMAP klienst''.
Ennek oka a Klaci által írt e-mail, amiből csak néhány sort idéznék:
,,Hatodik erzekem azt sugja, hogy lassan ideje lenne centauron roundcube-t frissiteni.
...
http://secunia.com/advisories/33169/
...
Amugy kellemes karacsonyt, es boldog uj evet mindenkinek! :)
"
Hát kellemest. Valójában már költözéskor meg kellett volna ejtenem a dolgot, de hajnali 3-kor már nem volt kedvem hozzákezdeni.
Előkészületek
Először gyártottam egy "Karbantartás alatt" lapot, amit szépen betettem a webmail-ek helyére. Így nézett ki a dolog:
Ezután készítettem backup-ot mindenről. Ez egy nagyon fontos lépés, hasznát is vettem a későbbiekben.
Nekem két változata volt a webmailnek. Volt egy "stable" a /var/roundcube könyvtárban, és egy "testing" a /var/www/vhost/roundcube könyvtárban. Ezeket letaroltam:
tar cvzf roundcube.20081224.tar.gz /var/roundcube/
tar cvzf roundcube.20081224.tar.gz /var/www/vhost/roundcube/
Majd a MySQL adatbázisokból is készítettem egy dump-ot:
mysqldump --user=root -p --opt roundcubemail | gzip -c -9 > /root/backup_roundcube_20081224/roundcube_20081224.sql.gz
mysqldump --user=root -p --opt rcwmtestingdb | gzip -c -9 > /root/backup_roundcube_20081224/roundcube_test_20081224.sql.gz
A Roundcube telepítése
A telepítés előtt ellenőrizni kell néhány előkövetelmény meglétét. Szükségünk van egy Apache webszerverre (jó esetben ilyennel már rendelkezünk :) ), a PHP 4.3.1-es verziójára (minimum, nekem 5.2.0-ás van) és PCRE-re (Perl Compatibile Regular Expression). Adatbázisnak MySQL, de más adatbázismotor is támogatott (pl. PostgreSQL).
A PHP beállításait nem árt ellenőrizni. A php.ini (/etc/php5/apache/php.ini) fájlban keressük meg a következő sorokat:
hibalog:
error_reporting = E_ALL & ~E_NOTICE
fájl feltöltés engedélyezése (levélmellékletek miatt):
file_uploads = On
fájl feltöltési limit (a mellékleteknek megfelelően, a levelező szerverhez szinkronizálva)
upload_max_filesize = 10M
Ha ezek megvannak, akkor kezdődhet a telepítés:
Szerezzük be a legújabb Roundcube verziót innen! (A post írásakor ez a 0.2-beta.)
Csomagoljuk ki a cél könyvtárba a fájlt! (Nekem ez most a /var/www/vhost/roundcube lesz.)
Ellenőrizzük le, hogy a roundcube könyvtár /temp és /logs alkönyvtáraihoz hozzá fér-e a webszerverünk! Ha nem, akkor
chown -R www-data roundcube_konyvtar/temp
chmod +w roundcube_konyvtar/temp
chown -R www-data roundcube_konyvtar/logs
chmod +w roundcube_konyvtar/logsHozzunk létre az adatbázist! Ehhez a következő lépéseket hajtsuk végre:
Indítsuk el a MySQL adatbázis kezelőt adminisztrációs jogokkal! (root-ként mysql -p, majd adjuk meg a jelszót!)
Hozzunk létre egy új adatbázist!
CREATE DATABASE roundcube_testing DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;Adjunk hozzá egy felhasználót, és jelszót az új adatbázisunkhoz!
GRANT ALL PRIVILEGES ON roundcube_testing.* TO roundcube_tester@localhost IDENTIFIED BY 'jelszó';
A 'jelszót' értelem szerűen cseréljük le ki!
Az esetleges hazárdok elkerülése végett adjuk ki a következő parancsot is:
FLUSH PRIVILEGES;
Hozzuk létre az adatbázis tábláit! Ehhez a következő parancsot adjuk ki:
mysql -p -D roundcube_testing < /roundcube_mappa/SQL/mysql5.initial.sql
, ahol a mysql5 helyett a saját adatbázis-kezelőnknek megfelelő változatot használjuk!
Nevezzük át a
/roundcube_mappa/config/*.inc.php.dist
fájlokat
/roundcube_mappa/config/*.inc.php-reSzerkesszük meg a /roundcube mappa/config/main.inc.php fájl tartalmát:
$rcmail_config['default_host'] = 'ssl://imap.sch.bme.hu:993'; //IMAP SSL támogatással
$rcmail_config['default_port'] = 993;
$rcmail_config['mail_domain'] = 'sch.bme.hu';
$rcmail_config['smtp_server'] = 'ssl://mail.sch.bme.hu';
$rcmail_config['smtp_port'] = 465; //SMTP SSL
$rcmail_config['session_lifetime'] = 10;
A szerverek elérési útját értelemszerűen cseréljük ki a nekünk megfelelőre!Adjuk meg a /roundcube_mappa/config/db.inc.php beállításait:
$rcmail_config['db_dnsw'] = 'mysql://roundcube_tester:jelszó@localhost/roundcube_testing';Kezdjünk el őrülni! Az új webes levelezőkliensünk elvileg működik. :)
A Roundcube frissítése
A Roundcube frissítése hasonló a telepítéshez, ám itt nem kell új adatbázist létrehozni, csak az adatbázist tábláit kell frissíteni a következő módon:
mysql -p -D roundcubemail < /var/roundcube/SQL/mysql.update.sql
Ezután a main.inc.php és db.inc.php fájlokat kell kicsit átalakítani, ahogy az már a telepítésnél is le van írva.
Személyes gondok :)
Miután frissítettem a webmail-t a következő error-ral találtam magam szemben. A bejelentkező felület szépen megjelent, ahol megadtam a szükséges sztringeket, ám a „Belépés” gombra kattintás után ezt kaptam:
SERVICE CURRENTLY NOT AVAILABLE!
Error No. [0x01F4]
Hosszas kutakodás, adatbázis törlés, újrapakolás, tesztelgetés, hazárdok észlelése, káromkodás után a következő megoldást találtam:
A main.inc.php fájlban a
$rcmail_config['enable_caching'] = TRUE;
sor értéket FALSE-ra állítottam!
Ezután a hiba megszűnt. Sikeresen frissítettük a kliensünket. :)
Az eredmények itt láthatóak (kipróbálni csak SCHAccount-tal rendelkezők tudják ;)):
https://webmail.sch.bme.hu
https://roundcube.sch.bme.hu