Roundcube
Updated 12 Mai 2021
Introduction
Roundcube est un client de messagerie électronique de type Web écrit en PHP et utilisant JavaScript, CSS, HTML et AJAX. Il peut être installé sur quasiment n'importe quel serveur équipé de la version 5.4.0 ou supérieure de PHP, et exploiter des bases de données MySQL, PostgreSQL, SQLite, MSSQL ou Oracle. Il prend en charge les fonctionnalités de messagerie IMAP et SMTP.
Préparer un conteneur LXC
Nous conseillons d'installer Roundcube dans un conteneur dédié, le configurant comme décrit dans le manuel.
Installer et configurer Nginx
Installez et configurez un serveur web Nginx, puis configurez PHP-FPM comme expliqué dans le manuel.
Configurez Nginx pour Roundcube. Indiquez roundcube.example.org comme adresse :
upstream php-handler {
server unix:/run/php-fpm.socket;
}
server {
listen 80;
server_name roundcube.example.org;
root /var/calculate/www/roundcube/roundcubemail-latest;
index index.php index.html index.htm;
error_log /var/log/nginx/roundcube.error;
access_log /var/log/nginx/roundcube.access;
location / {
try_files $uri $uri/ /index.php;
}
location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
deny all;
}
location ~ ^/(bin|SQL)/ {
deny all;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass php-handler;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi.conf;
}
}
Installation et configuration de PostgreSQL
Installez et configurez PostgreSQL comme indiqué dans le manuel, y compris l'authentification par mot de passe. Pour ce faire, vous devez créer l'utilisateur roundcube et la base de données roundcubemail.
Installation et configuration
Configurez l'utilisateur roundcube créé pour PostgreSQL :
mkdir /var/calculate/www
useradd -m -s /sbin/nologin -d /var/calculate/www/roundcube roundcube
Installer Roundcube
Installez Roundcube sur votre serveur web :
su - -s /bin/bash roundcube
mkdir versions
VERSION=$(curl -s https://api.github.com/repos/roundcube/roundcubemail/releases/latest | grep tag_name | cut -d '"' -f 4) && echo "Latest RoundCube version is $VERSION"
wget "https://github.com/roundcube/roundcubemail/releases/download/${VERSION}/roundcubemail-${VERSION}-complete.tar.gz" -P versions
tar xf versions/roundcubemail-${VERSION}-complete.tar.gz -C versions
rm versions/roundcubemail-${VERSION}-complete.tar.gz
ln -s versions/roundcubemail-${VERSION} ./roundcubemail-latest
exit
chown -R nginx. /var/calculate/www/roundcube/roundcubemail-latest/{temp,logs}
Configurer via l'interface Web
Pour configurer via l'interface Web, ouvrez http://roundcube.org/installer~~ dans votre navigateur Web et finalisez la configuration de Roundcube :
Saisissez les paramètres de connexion pour le serveur de messagerie et la base de données :
Sauvegardez le fichier de configuration résultant en cliquant sur Save in /tmp :
Copiez les réglages dans /var/calculate/www/example.org/roundcube/config:
cp /tmp/config.inc.php /var/calculate/www/roundcube/roundcubemail-latest/config/config.inc.php
chown roundcube. /var/calculate/www/roundcube/roundcubemail-latest/config/config.inc.php
Une fois l'installation de Roundcube terminée, dont l'initialisation de la base de données, supprimez le dossier /var/calculate/www/roundcube/roundcubemail-latest/installer/, qui contient des paramètres de serveur confidentiels :
rm -rf /var/calculate/www/roundcube/roundcubemail-latest/installer
Ouvrez http://example.org/roundcube/ dans votre navigateur Web. Pour vous authentifier sur Roundcube, utilisez l'identifiant et le mot de passe de votre serveur de messagerie :
Configuration HTTPS
Getting Let's Encrypt certificate](lets_encrypt#poluchenie_sertifikata_dlia_ngnix)
Procurez-vous le certificat de domaine utilisable par Nginx pour roundcube.example.org, en suivant les instructions du manuel.
Activer la prise en charge de HTTPS sous Nginx
Configurez Nginx pour assurer la prise en charge de HTTPS, comme expliqué dans le manuel.
Configuration HTTPS pour Roundcube
Configurez le service Nginx pour le nom de domaine roundcube.example.org :
upstream php-handler { server unix:/run/php-fpm.socket; } server { listen 80; server_name roundcube.example.org; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live/roundcube.example.org/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/roundcube.example.org/privkey.pem; include ssl.conf; server_name roundcube.example.org; root /var/calculate/www/roundcube/roundcubemail-latest; index index.php index.html index.htm; error_log /var/log/nginx/roundcube.error; access_log /var/log/nginx/roundcube.access; location / { try_files $uri $uri/ /index.php; } location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ { deny all; } location ~ ^/(bin|SQL)/ { deny all; } location ~ \.php$ { try_files $uri =404; fastcgi_pass php-handler; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi.conf; } }
Conclusion
Félicitations, votre Roundcube est opérationnel ! Pour installer et configurer les plug-ins, reportez-vous à la rubrique Travailler avec Roundcube.