在Ubuntu 16.04上安装Roundcube

2018-09-20 14:25:15 浏览数 (1)

什么是Roundcube?

Roundcube是一个基于网络的IMAP电子邮件客户端,提供类似于谷歌Gmail的用户界面。它是用PHP编写的服务器端应用程序,旨在访问电子邮件服务器或服务。电子邮件用户使用Web浏览器与Roundcube进行交互。

开始之前

  1. 熟悉我们的入门指南并完成设置Linode主机名和时区的步骤。
  2. 完成“ 保护您的服务器 ”部分以创建标准用户帐户,加强SSH访问并删除不必要的网络服务。
  3. 本指南旨在与我们的安装Postfix,Dovecot和MySQL教程一起使用,但您可以使用其他邮件服务器。
  4. 配置A HOSTCNAME DNS记录(子域)以指向您的Linode。对于本指南,webmail将使用子域。如果您在创建此记录时需要帮助,请参阅我们的DNS记录简介指南。
  5. 更新服务器的软件包: sudo apt-get update && sudo apt-get upgrade

注意本指南是为非root用户编写的。需要提升权限的命令带有前缀sudo。如果您不熟悉该sudo命令,可以查看我们的“ 用户和组”指南。

Linux,Apache,MySQL和PHP(LAMP)Stack

本节将介绍如何从头开始在您的Linode上安装Apache,MySQL,PHP和SSL。如果您已经有一个正常运行的LAMP堆栈,请跳至使用SSL创建Apache虚拟主机一节。

安装LAMP堆栈包

  1. 安装lamp-server^包,它将Apache,MySQL和PHP作为依赖项安装: sudo apt-get install lamp-server^
  2. 在安装过程中,系统会要求您为 MySQL用户选择密码。
  3. 保护您的新MySQL安装: sudo mysql_secure_installation
  4. /etc/php/7.0/apache2/php.iniPHP配置文件中指定您的Linode的时区。如果您的服务器未使用UTC,请将其替换为PHP.net上列出的本地时区: sudo sed -i -e "s/^;date.timezone =.*$/date.timezone = 'UTC'/" /etc/php/7.0/apache2/php.ini

使用SSL 创建Apache虚拟主机

我们将在本节中为Roundcube创建一个新的虚拟主机。这为Roundcube创建了一个新的webroot,将它与您的Linode上的任何其他webroot分开。

  1. 将Linode的shell提示符放在/etc/apache2/sites-available目录中: cd /etc/apache2/sites-available
  2. 下载我们的apache2-roundcube.sample.conf虚拟主机配置文件的副本。将实例替换为webmail.example.com安装所需的域或子域。 sudo wget https://linode.com/docs/assets/roundcube/apache2-roundcube.sample.conf
  3. 将文件的所有权转移到root: sudo chown root:root apache2-roundcube.sample.conf
  4. 接下来,更改文件的访问权限: sudo chmod 644 apache2-roundcube.sample.conf
  5. 确定哪种类型的安全套接字层(SSL)加密证书最适合您的Roundcube部署。一个自签名的SSL证书是容易的,免费的,但会触发大部分现代浏览器报告的连线不是私人的错误。我们的加密提供浏览器可信赖的免费SSL证书,但不支持扩展验证(EV)或多域(通配符)证书。要获得这些功能,必须使用商业SSL证书。
  6. 获得SSL证书后,请编辑以下选项apache2-roundcube.sample.conf以匹配所需的配置:
    • ServerAdmin:您的Linode的管理电子邮件地址(例如admin@example.comwebmaster@example.com
    • ServerName:虚拟主机的完整域名(例如webmail.example.com
    • ErrorLog(可选):自定义错误日志文件的路径(例如/var/log/apache2/webmail.example.com/error.log;通过删除取消注释#
    • CustomLog(可选):自定义访问日志文件的路径(例如/var/log/apache2/webmail.example.com/access.log;再次,通过删除取消注释#
    • SSLCertificateFile: SSL证书信息(.crt)文件的路径
    • SSLCertificateKeyFile: SSL证书私钥(.key)文件的路径

    警告在虚拟主机配置中指定自定义目录和所需.log文件之前,请确保它们存在。如果不这样做将阻止Apache启动。这些文件应由www-data具有644权限的用户拥有。

  7. 重命名配置文件以匹配其完整域名: sudo mv apache2-roundcube.sample.conf webmail.example.com.conf
  8. 最后,禁用默认的Apache虚拟主机,除非您打算使用它。 sudo a2dissite 000-default.conf default-ssl.conf

创建MySQL数据库和用户

  1. root用户身份登录MySQL命令提示符: mysql -u root -p
  2. 登录并显示mysql>提示后,创建一个名为的新MySQL数据库roundcubemail: CREATE DATABASE roundcubemail;
  3. 创建一个新的MySQL用户,roundcube并为其分配一个强密码: CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'example_password';
  4. 授予新roundcube用户对Roundcube数据库的完全访问权限roundcubemail: GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
  5. 刷新MySQL权限表以重新加载它们: FLUSH PRIVILEGES;
  6. 注销MySQL命令提示符并返回常规Linux shell提示符: exit

Roundcube 最终准备工作

  1. 安装并启用所需的PHP包: sudo apt-get install php-pear php7.0-intl php7.0-mcrypt php7.0-mbstring && sudo phpenmod intl mcrypt mbstring
  2. 启用Apache模块deflateexpiresheadersrewrite,和ssl: sudo a2enmod deflate expires headers rewrite ssl
  3. 此外,安装PHP PEAR包Auth_SASLNet_SMTPNet_IDNA2-0.1.1Mail_mime,和Mail_mimeDecode: sudo pear install Auth_SASL2 Net_SMTP Net_IDNA2-0.1.1 Mail_mime Mail_mimeDecode 注意PEAR是“PHP扩展和应用程序库”的首字母缩写。可以使用该pear命令轻松安装和引用由官方或第三方编写的常见PHP代码库。 PEAR将为其成功安装的每个包打印安装确认消息。在这种情况下,完整安装将类似于: install ok: channel://pear.php.net/Auth_SASL-1.1.0 install ok: channel://pear.php.net/Net_IDNA2-0.1.1 install ok: channel://pear.php.net/Mail_Mime-1.10.2 install ok: channel://pear.php.net/Net_Socket-1.2.2 install ok: channel://pear.php.net/Net_SMTP-1.8.0 install ok: channel://pear.php.net/Mail_mimeDecode-1.5.6

下载并安装Roundcube

  1. 确保您的Linode的shell提示符在用户的主目录中运行。该~/Downloads文件夹是可取的,但~/也可以接受。 cd ~/Downloads
  2. 下载Roundcube。在撰写本文时,当前的稳定版本是1.3.3,因此它将用于本指南的其余部分。 wget https://github.com/roundcube/roundcubemail/releases/download/1.3.3/roundcubemail-1.3.3-complete.tar.gz
  3. 将Roundcube解压缩并复制到/var/www目录。同样,1.3.3如有必要,用更新的版本号替换文件名中出现的任何内容: sudo tar -zxvf roundcubemail-1.3.3-complete.tar.gz -C /var/www
  4. 从Roundcube的目录名中删除版本号。这将使以后的更新更容易: sudo mv /var/www/roundcubemail-1.3.3 /var/www/roundcube
  5. /var/www/roundcube目录的所有权转移给www-data用户。这将允许Roundcube保存自己的配置文件,而不必下载它,然后手动将其上传到您的Linode: sudo chown -R www-data:www-data /var/www/roundcube
  6. 最后,您应该启用Roundcube的自动缓存清理shell脚本: echo '0 0 * * * root bash /var/www/roundcube/bin/cleandb.sh >> /dev/null' | sudo tee --append /etc/crontab 这利用了一个cron脚本,cleandb.sh每天午夜运行一次Roundcube附带的shell脚本。阅读我们的计划任务与Cron指南,了解Cron。

启用Roundcube的Apache虚拟主机

  1. webmail.example.com在“ 使用SSL创建Apache虚拟主机”部分中启用您刚刚编写的虚拟主机: sudo a2ensite webmail.example.com.conf
  2. 重新启动Apache以应用所有配置更改并启用新的虚拟主机: sudo service apache2 restart 输出应该是* Restarting web server apache2 ... [ OK ]。如果出现错误,请使用错误消息对配置进行故障排除。缺少文件,不正确的权限和拼写错误是Apache无法正常重新启动的常见原因。

配置Roundcube

  1. 导航到https://webmail.example.com/installerWeb浏览器。同样,请确保替换webmail.example.com为您选择的域名。
  2. 开始配置Roundcube。Roundcube图形配置的第一步是环境检查。单击页面底部的“ 下一步”按钮继续。

注意由于Roundcube支持六种不同的SQL引擎,因此“ 检查可用数据库”部分下将显示五条“ 不可用”警告。MySQL早先作为LAMP堆栈的一部分安装,因此您可以忽略这些警告。

1. 指定Roundcube配置选项。下面的选项列表将为您提供正确的工作配置,但您可以根据需要调整任何未提及的选项。

  • 常规配置> product_name:电子邮件服务的名称。
  • 常规配置> support_url:如果用户需要帮助,他们应该去哪里?应使用基于Web的联系表单或电子邮件地址的URL。(例如http://example.com/supportmailto:support@example.com
  • 常规配置> skin_logo:使用您选择的图像替换默认的Roundcube徽标。图像必须位于/var/www/roundcube目录中并相对链接(例如skins/larry/logo.png)。推荐图像分辨率是177px通过49px
  • 数据库设置> db_dsnw>数据库密码:密码为roundcube前面创建MySQL用户。
  • IMAP设置> default_host: IMAP服务器的主机名。将此设置为ssl://加上电子邮件服务器的域(例如ssl://webmail.example.com)。
  • IMAP设置> username_domain: Roundcube假设所有用户都属于哪个域名?这允许用户只需输入他们的电子邮件用户名(例如某人)而不是他们的完整电子邮件地址(例如somebody@example.com)。
  • SMTP设置> smtp_server: SMTP服务器的主机名。将其设置为您的电子邮件服务器域,前缀为ssl://
  • SMTP设置> smtp_user / smtp_pass:单击并选中“ 使用当前IMAP用户名和密码进行SMTP身份验证”复选框,以便用户无需重新键入其用户凭据即可发送邮件。
  • 显示设置和用户首选项>语言:允许您选择一个默认的RFC1766为Roundcube兼容的语言环境。有关支持的语言代码的完整列表,请cat /usr/share/i18n/SUPPORTED在您的Linode上运行。
  • 显示设置和用户首选项> draft_autosave:大多数用户希望他们的草稿在键入时几乎立即保存。虽然Roundcube不提供即时草稿保存选项,但它可以每分钟保存用户的草稿。选择1 min从下拉菜单中。

2. 单击页面底部的CREATE CONFIG按钮以保存新配置。您应该在相应的页面上看到一条确认消息:配置文件已成功保存到Roundcube安装的RCMAIL_CONFIG_DIR目录中

3. 单击CONTINUE完成配置。

最后,通过单击Initialize database按钮导入Roundcube的MySQL数据库结构。

删除安装程序目录

  1. 删除/var/www/roundcube/installer目录,其中包含刚刚用于配置Roundcube的网页文件: sudo rm -rf /var/www/roundcube/installer 虽然Roundcube在其配置文件中自动禁用了安装程序功能,但删除安装程序目录会为入侵者添加另一层保护。

验证您的Roundcube安装

  1. 导航到https://webmail.example.com并使用您的电子邮件帐户的用户名和密码登录。如果您的配置正常运行,Roundcube将允许您从域名内外接收,阅读和发送电子邮件。

保持Roundcube更新

Complete软件包版本与Linode上当前安装的版本进行比较。

  1. 如果有更新的版本,请1.3.3在下面的命令中替换所有出现的最新版本。这将下载Roundcube到您的~/Downloads目录: cd ~/Downloads && wget https://github.com/roundcube/roundcubemail/releases/download/1.3.3/roundcubemail-1.3.3-complete.tar.gz
  2. 将tarball(.tar.gz文件)解压缩并解压缩到~/Downloads: tar -zxvf roundcubemail-1.3.3.tar.gz
  3. 通过执行/var/www/roundcube/bin/installto.shPHP脚本开始更新Roundcube 。如果您没有在/var/www/roundcube目录中安装Roundcube ,请将尾随目录替换为服务器上Roundcube的目录: cd roundcubemail-1.3.3 sudo php bin/installto.sh /var/www/roundcube
  4. Y然后按ENTER确认更新。成功升级将打印类似于此的内容: Upgrading from 1.3.3. Do you want to continue? (y/N) y Copying files to target location...sending incremental file list ... Running update script at target... Executing database schema update. This instance of Roundcube is up-to-date. Have fun! All done. 完成所有操作意味着更新成功; 如果您看到此消息,请继续执行第6步。
  5. 从以下位置删除Roundcube目录和gzipped tarball ~/Downloads: cd ~/Downloads && rm -rfd roundcubemail-1.3.3 roundcubemail-1.3.3.tar.gz

结论

现在您已经安装了Roundcube,您有一个类似于Google的Gmail的免费的基于Web的电子邮件客户端。用户可以通过导航访问他们的电子邮件https://webmail.example.com

从这里,您可以安装插件以添加其他功能并自定义主题以匹配组织的配色方案。

更多信息

有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。

  • Roundcube主页
ubuntulampapacheubuntulampapache

0 人点赞