本教程将显示在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
安装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设置。