RoundCube (RC) je oblíbený webový e-mailový klient IMAP, který využívá technologii AJAX (asynchronní JavaScript a XML). Tento svobodný software s otevřeným zdrojovým kódem funguje podle pravidel GNU GPL (General Public License), s výjimkou zásuvných modulů a skinů. Původní stabilní verze byla vydána na začátku roku 2008 a od té doby si vybudovala širokou uživatelskou základnu. Jaká je použita technologie, zásuvní moduly a funkce?
RC je založen na PHP, který lze využívat společně se stackem LAMP nebo jinými operačními systémy (pokud nabízejí podporu jazyka PHP). Webový server vyžaduje přístup k serveru IMAP, na kterém je umístěna elektronická pošta, a také k serveru SMTP, aby bylo zajištěno, že je schopen doručovat zprávy.
Webmail je vytvořen tak, aby fungoval na běžných webových serverech, jako jsou LiteSpeed, Apache, Lighttpd, Nginx, Cherokee nebo Hiawatha, spolu s relačním databázovým strojem. Podporovány jsou následující databáze: PostgreSQL, SQLite a MySQL.
Uživatelské rozhraní (UI) lze navíc přizpůsobit pomocí různých skinů pro detailní personalizaci. Je vykreslováno v jazycích CSS a XHTML. Pro distribuci je do RC začleněno jQuery ve spojení s řadou alternativních knihoven včetně TinyMCE a GoogieSpell. Od uvedení verze 0.3 využívá RC rozhraní API pro zásuvné moduly, které uživatelům umožňuje zavádět nestandardní funkce, aniž by museli měnit zdrojový kód. Řadu zásuvných modulů najdete v repozitáři zásuvných modulů.
Obsah
Roundcube + Nginx
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.0/roundcubemail-1.6.0-complete.tar.gz tar -xf roundcubemail-1.6.0-complete.tar.gz mv roundcubemail-1.6.0 /var/www/html/mail.lan rm -f roundcubemail-1.6.0-complete.tar.gz nano /etc/nginx/conf.d/mail.lan.conf
server { listen 80; # listen [::]:80; server_name mail.lan; root /var/www/html/mail.lan/; index index.php index.html index.htm; error_log /var/log/nginx/roundcube-error.log; access_log /var/log/nginx/roundcube-access.log; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; # fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /.well-known/acme-challenge { allow all; } location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ { deny all; } location ~ ^/(bin|SQL)/ { deny all; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } }
chown -R www-data:www-data /var/www/html/mail.lan/
MariaDB
Nainstalujeme SQL z připraveného souboru
sudo mysql -u rncbuživatel -prncbheslo rncbdatabaze < /var/www/html/mail.lan/SQL/mysql.initial.sql
PHP 8.2
Zkontrolujeme seznam doporučených, případně požadovaných závislostí a dle uvážení doinstalujeme chybějící software
apt install php-net-ldap2 php-net-ldap3 php-imagick php8.2-mysql php8.2-curl php8.2-bz2
Podpora imagick
Podpora imagick po automatické instalaci nefunguje.. Pokusíme se tuto drobnou chybku vyřešit pomocí pecl
Imagick: NOT AVAILABLE (See https://www.php.net/manual/en/book.imagick.php)
user@panel:~# apt install imagemagick Načítají se seznamy balíků… Hotovo Vytváří se strom závislostí… Hotovo Načítají se stavové informace… Hotovo imagemagick je již nejnovější verze (8:6.9.11.60+dfsg-1.3). 0 aktualizováno, 0 nově instalováno, 0 k odstranění a 0 neaktualizováno. root@nginx:~# pecl install imagick downloading imagick-3.7.0.tgz ... Starting to download imagick-3.7.0.tgz (360,138 bytes) ... Imagick: NOT AVAILABLE (See https://www.php.net/manual/en/book.imagick.php)
pecl install imagick
... checking Testing /usr/bin/MagickWand-config... Doesn't exist checking Testing /usr/sbin/bin/MagickWand-config... Doesn't exist checking Testing /opt/bin/MagickWand-config... Doesn't exist checking Testing /opt/local/bin/MagickWand-config... Doesn't exist checking Testing /opt/homebrew/bin/MagickWand-config... Doesn't exist configure: error: not found. Please provide a path to MagickWand-config or Wand-config program. ERROR: `/tmp/pear/temp/imagick/configure --with-php-config=/usr/bin/php-config --with-imagick' failed
Doinstalujeme potřebné závislosti
apt install libmagickwand-dev libmagickcore-dev
pecl install imagick ... Build process completed successfully Installing '/usr/lib/php/20220829/imagick.so' Installing '/usr/include/php/20220829/ext/imagick/php_imagick_shared.h' install ok: channel://pecl.php.net/imagick-3.7.0 configuration option "php_ini" is not set to php.ini location You should add "extension=imagick.so" to php.ini
Přidání modulu na poslední řádek php.ini souboru
echo 'extension=imagick.so' >> /etc/php/8.2/fpm/php.ini
Přidání modulu na druhý řádek (první řádek obsahuje [PHP]) souboru php.ini
sed -i '2i extension=imagick.so' /etc/php/8.2/fpm/php.ini
Přidání e-mail schránky doveadm
Dovecot lze mimo ISPConfig osluhovat pomocí GUI administrace Webmin i cli Doveadm
doveadm mailbox create -u uživatel INBOX
Užitečné
Aktualizace na Roundcube 1.6 Webmail
Domovská stránka Roundcube.