Debian 8上的RoundCube webmail安装(Jessie)

本教程显示在Debian 8上安装最新的RoundCube webmail。Roundcube是一个易于使用的webmail客户端与IMAP和SMTP支持

本教程将显示在Debian 8上安装最新的RoundCube Webmail。Roundcube是一款易于使用的IMAP和SMTP支持的webmail客户端,可以通过插件进行扩展。 在Debian 7上,RoundCube可以作为.deb包,它不是最新的版本,但至少它很容易安装apt。 对于当前的Debian发行版,没有可用的RoundCube软件包,所以我将在这里介绍源代码的安装。 本教程包含一个可选章节,介绍将RoundCube与ISPConfig 3主机控制面板连接的步骤。

先决条件

  • Debian 8操作系统。
  • 安装了mod_php的Apache Web服务器。 如果没有安装apache,请查看我们的LAMP指南或P 服务器设置,以安装合适的环境。
  • 一个电子邮件服务器(SMTP + IMAP)是Roundcube应连接到的。 这可以是本地服务器(例如,当您使用完美的服务器设置之一)或远程服务器时。
  • 本教程中将使用的服务器主机名为server1.example.com,IP地址为192.168.1.100。 请用您的服务器的IP和主机名替换。

RoundCube安装

我将将RoundCube安装到目录/ opt / roundcube中,以确保此安装不会与任何Debian系统软件包相冲突。 第一步是安装wget,创建目录/ opt / roundcube,并将最新的具有wget的RoundCube版本下载到此目录中。 当前我在撰写本教程的时候,RoundCube版本是1.1.3,看一下RoundCube网站 ,检查是否有可以使用的更高版本。

以root用户身份登录到服务器的shell上,然后安装wget和nano编辑器:

apt-get install wget nano

创建目录并使用“cd”命令输入:

mkdir /opt/roundcube
cd /opt/roundcube

下载RoundCube tar.gz文件并解压缩:

wget https://downloads.sourceforge.net/project/roundcubemail/roundcubemail/1.1.3/roundcubemail-1.1.3-complete.tar.gz
tar xfz roundcubemail-1.1.3-complete.tar.gz

RoundCube文件现在位于/ opt / roundcube / roundcubemail-1.1.3文件夹中 下一步是将一个目录移动到/ opt / roundcube。

mv roundcubemail-1.1.3/* .
mv roundcubemail-1.1.3/.htaccess .

两个命令结尾处的点是必需的,并且是命令的一部分,不要错过! 删除空目录和tar.gz文件。

rmdir roundcubemail-1.1.3
rm roundcubemail-1.1.3-complete.tar.gz

并将所有文件的所有者更改为Apache服务器正在运行的用户。

chown -R www-data:www-data /opt/roundcube

安装RoundCube数据库

Roundcube需要一个数据库来存储邮箱设置,联系人等。我将使用MySQL(或MariaDB)作为数据库后端。 现在我们将在MySQL中创建一个名称为“roundcubemail”的数据库和一个名为“roundcube”的用户。

使用以下命令登录到MySQL服务器:

mysql --defaults-file=/etc/mysql/debian.cnf

然后在MySQl数据库shell上执行以下命令来创建数据库和数据库用户。 用您选择的密码替换以下命令中的secretpassword”一词

CREATE DATABASE roundcubemail;
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'secretpassword';
flush privileges;
quit

现在我们将从文件mysql.initial.sql导入RoundCube表到我们的新数据库。

在Linux shell上运行以下命令:

mysql --defaults-file=/etc/mysql/debian.cnf roundcubemail < /opt/roundcube/SQL/mysql.initial.sql

配置RoundCube和Apache

在此步骤中,我们将在RoundCube中配置数据库详细信息,并在Apache中添加一个RoundCube配置文件。

我将从RoundCube中的数据库配置开始。 运行以下命令,根据示例配置文件创建一个新的config.inc.php文件,并在nano编辑器中打开它。

cd /opt/roundcube/config
cp -pf config.inc.php.sample config.inc.php
nano config.inc.php

找到以$ config ['db_dsnw']开头的数据库配置行, 并将其替换为以下行:

$config['db_dsnw'] = 'mysql://roundcube:secretpassword@localhost/roundcubemail';

必须用您为数据库选择的密码替换“secretpassword”一词。

下一步搜索“smtp_server”行,并在此设置SMTP服务器的主机名。 在我的情况下,邮件服务器是本地服务器,所以我将服务器设置为“localhost”。

$config['smtp_server'] = 'localhost';

现在是配置Apache的时候了。 我将在/ etc / apache2 / conf-available /文件夹中创建一个新的配置文件roundcube.conf

nano /etc/apache2/conf-available/roundcube.conf

将以下行添加到该文件并保存。

Alias /roundcube /opt/roundcube
Alias /webmail /opt/roundcube

<Directory /opt/roundcube>
Options +FollowSymLinks
# AddDefaultCharset UTF-8
AddType text/x-component .htc

<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag display_errors Off
php_flag log_errors On
# php_value error_log logs/errors
php_value upload_max_filesize 10M
php_value post_max_size 12M
php_value memory_limit 64M
php_flag zlib.output_compression Off
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag zend.ze1_compatibility_mode Off
php_flag suhosin.session.encrypt Off
#php_value session.cookie_path /
php_flag session.auto_start Off
php_value session.gc_maxlifetime 21600
php_value session.gc_divisor 500
php_value session.gc_probability 1
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^favicon\.ico$ skins/larry/images/favicon.ico
# security rules:
# - deny access to files not containing a dot or starting with a dot
# in all locations except installer directory
RewriteRule ^(?!installer)(\.?[^\.]+)$ - [F]
# - deny access to some locations
RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F]
# - deny access to some documentation files
RewriteRule /?(README\.md|composer\.json-dist|composer\.json|package\.xml)$ - [F]
</IfModule>

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
</IfModule>

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
</IfModule>

FileETag MTime Size

<IfModule mod_autoindex.c>
Options -Indexes
</ifModule>

AllowOverride None
Require all granted
</Directory>

<Directory /opt/roundcube/plugins/enigma/home>
Options -FollowSymLinks
AllowOverride None
Require all denied
</Directory>

<Directory /opt/roundcube/config>
Options -FollowSymLinks
AllowOverride None
Require all denied
</Directory>

<Directory /opt/roundcube/temp>
Options -FollowSymLinks
AllowOverride None
Require all denied
</Directory>

<Directory /opt/roundcube/logs>
Options -FollowSymLinks
AllowOverride None
Require all denied
</Directory>

前两行中的2个别名行使RoundCube在您的服务器上可用作/ roundcube和/ webmail。

启用配置并重新加载apache:

a2enconf roundcube
service apache2 reload

就这样,RoundCube现在完全安装在您的服务器上,您可以通过别名/ roundcube和/ webmail在服务器IP和主机名上访问它。 我的服务器的IP是192.168.1.100; 为此,我可以用http://192.168.1.100/webmail打开RoundCube

RoundCube登录。

圆形立方体 - 第一页。

安装ISPConfig RoundCube插件(可选)

当您的服务器安装了iSPConfig 3时,强烈建议您安装ISPConfig RoundCube插件。 这允许您的电子邮件用户从RoundCube内管理自动回复,电子邮件过滤器和其他邮箱设置。

ISPConfig 3 RoundCube插件使用ISPConfig远程API连接到ISPConfig 3。 要使用这个API,我们需要一个远程用户。

登录到ISPConfig为“admin”用户。

要创建此类用户,请转到 系统>用户管理>远程用户 ,然后单击 添加新用户 按钮:

输入新远程用户的用户名和密码。 我会选择用户名“roundcube”和密码“!fdWEacBOG1d”。

远程用户设置允许进行细粒度的访问控制; 必须启用以下功能:

  • 服务器功能
  • 客户端功能
  • 邮件用户功能
  • 邮件别名功能
  • 邮件垃圾邮件过滤器用户功能
  • 邮件垃圾邮件过滤器策略功能
  • 邮件fetchmail功能
  • 邮件垃圾邮件程序白名单功能
  • 邮件垃圾邮件黑名单功能
  • 邮件用户过滤功能

最后点击保存

接下来的步骤是在您的服务器的shell上执行的。 以root用户身份登录

我们将从Debian中将ISPConfig SSL证书安装到SSL证书存储中。

cp /usr/local/ispconfig/interface/ssl/ispserver.crt /usr/local/share/ca-certificates/
update-ca-certificates

打开/etc/php5/cgi/php.ini文件

nano /etc/php5/apache2/php.ini

向下滚动,直到看到文件的[openssl]部分,然后添加以下行:

openssl.cafile=/etc/ssl/certs/ca-certificates.crt

然后重新启动apache。

service apache2 restart

要下载插件,请首先安装Git客户端。

apt-get install git

获取最新版本的RoundCube ISPConfig插件:

cd /tmp
git clone https://github.com/w2c/ispconfig3_roundcube.git
cd /tmp/ispconfig3_roundcube/

并将插件移动到roundcube插件目录中。

mv ispconfig3_* /opt/roundcube/plugins
cd /opt/roundcube/plugins

根据示例配置为插件创建一个新的config.inc.php文件,并在nano编辑器中打开文件。

mv ispconfig3_account/config/config.inc.php.dist ispconfig3_account/config/config.inc.php
nano ispconfig3_account/config/config.inc.php

填写远程用户的详细信息并保存文件。

<?php
$rcmail_config['identity_limit'] = false;
$rcmail_config['remote_soap_user'] = 'roundcube';
$rcmail_config['remote_soap_pass'] = '!fdWEacBOG1d';
$rcmail_config['soap_url'] = 'https://server1.example.com:8080/remote/';
?>

server1.example.com替换为服务器的主机名。 当SSL(HTTPS)用于远程API连接时,重要的是RoundCube配置中的主机名与ISPConfig接口的SSL证书的主机名相匹配。 您可以使用以下命令检查ISPConfig SSL证书的主机名:

openssl x509 -in /usr/local/share/ca-certificates/ispserver.crt -text -noout | grep Subject:

结果是在我的情况下:

Subject: C=DE, ST=Niedersachsen, L=Lueneburg, O=ISPConfig UG, OU=IT, CN=server1.example.com/emailAddress=webmaster@server1.example.com

因此插件配置文件中的主机名“server1.example.com”与SSL证书中的主机名匹配。

现在我们将激活RoundCube中的新插件。 在编辑器中打开配置文件:

nano /opt/roundcube/config/config.inc.php

并在文件末尾添加以下行:

$rcmail_config['plugins'] = array("jqueryui", "ispconfig3_account", "ispconfig3_autoreply", "ispconfig3_pass", "ispconfig3_spam", "ispconfig3_fetchmail", "ispconfig3_filter");

现在您可以登录到RoundCube,可以在“设置”>“帐户”下找到新的选项。

一般账户。

邮件过滤器设置。

Fetchmail设置。


分享按钮