Roundcube 1.6 + Nginx + Debian 11 + PHP 8.2

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ů.

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.

ICTIS.CZ