网站搜索

如何在 CentOS/RHEL 8/7 上安装 Roundcube Webmail


Roundcube 是一款免费、开源、功能齐全的基于网络的多语言 IMAP 网络邮件软件,具有类似应用程序的用户界面,功能齐全、可定制,并使用最新的网络标准。它使用 PHP 构建,并提供您可以从现代电子邮件客户端获得的完整功能。

圆立方特点:

  • 它是多语言的,支持 70 多种语言。
  • 支持“键入即查找”地址簿。
  • 支持多个发件人身份。
  • 提供完善的隐私保护。
  • 拥有带有组和 LDAP 连接器的全功能地址簿。
  • 提供富文本/HTML 消息撰写。
  • 支持搜索消息和联系人。
  • 支持国际。域名 (IDNA)。
  • 支持文件夹操作、共享文件夹和 ACL。
  • 可使用插件 API 进行扩展。
  • 提供拼写检查功能。
  • 提供导入/导出功能。
  • 拥有用于灵活扩展的插件 API 等等。

推荐系统要求:

  1. 具有最小安装的 CentOS 8/RHEL 8 或 CentOS 7/RHEL 7 服务器。
  2. Apache 或 Nginx 网络服务器
  3. PHP 和 MySQL/MariaDB 数据库
  4. 支持 IMAP4 rev1 的 SMTP 和 IMAP 服务器

对于本文的范围,我们假设您已经有一个正在运行的带有虚拟用户的 Postfix 电子邮件服务器,否则,请按照我们的指南设置:

  1. 使用 MariaDB 设置 Postfix 邮件服务器和 Dovecot – 第 1 部分
  2. 配置 Postfix 和 Dovecot 虚拟域用户 – 第 2 部分
  3. 安装 ClamAV 和 SpamAssassin 并将其集成到 Postfix 邮件服务器 - 第 3 部分

测试环境:

就本文而言,我将在 Linode CentOS VPS 上安装 Roundcube Webmail,并使用 Nginx Web 服务器、静态 IP 地址 192.168.0.100 和主机名 mail.howtoing.com

步骤1:在CentOS 8/7中安装Nginx、PHP-FPM和MariaDB

1. 首先启用 EPELREMI 存储库并安装 NginxPHP CentOS 系统上的 PHP-FPM MariaDB 服务器。

yum install epel-release
yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm    [CentOS/RHEL 8]
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm    [CentOS/RHEL 7]
yum install yum-utils 
yum-config-manager --enable remi-php72
yum install nginx php php-fpm php-mcrypt php-cli php-gd php-curl php-xml php-mysql php-mbstring php-pspell php-imagick mariadb-server   

2. 成功安装所有软件包后,启动 Nginx Web 服务器,使其在启动时自动启动并检查其是否启动并运行。

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3.接下来,如果您启用了系统防火墙,则需要为外部请求打开端口80

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload 

4.接下来,您需要配置PHP-FPM才能正常工作。使用命令行测试编辑器打开文件 /etc/php.ini

vim /etc/php.ini

查找指令 ;cgi.fix_pathinfo=1,取消注释并将其值设置为 0

cgi.fix_pathinfo=0

另外,取消注释指令 ;date.timezone 并将其值设置为您的时区

date.timezone = "Africa/Kampala"

完成后,保存文件并退出。

5.然后启动PHP-FPM服务,使其开机自动启动,并检查其是否启动并运行,如下所示。

systemctl start php-fpm 
systemctl enable php-fpm 
systemctl status php-fpm 

第 2 步:保护 MariaDB 服务器并创建 Roundecube 数据库

6. 现在使用以下命令启动 MariaDB 服务。

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. 默认的 MariaDB 安装是不安全的。您需要运行二进制包附带的安全脚本来保护它。系统将要求您设置 root 密码、删除匿名用户、禁用 root 远程登录以及删除测试数据库。

mysql_secure_installation

8.现在登录到MariaDB数据库,为Roundecube创建一个数据库,并授予用户对数据库的适当权限(记住在密码中设置强/安全密码)生产环境)。

mysql -u root -p
MariaDB [(none)]> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
MariaDB [(none)]> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY '=213@!#webL';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

9. 接下来,将 Roundcube 表布局导入到新创建的数据库中。

cd /var/www/html/roundcubemail/
mysql -u root -p roundcubemail < SQL/mysql.initial.sql

第三步:下载Roundcube包

10. 在此步骤中,从下载页面下载 Roundcube 的最新稳定版本(在撰写本文时为 1.4.9)或使用 wget 命令行下载器获取它,解压 TAR 文件,然后将文件上传到您的 Web 服务器文档根目录。

wget -c https://github.com/roundcube/roundcubemail/releases/download/1.4.9/roundcubemail-1.4.9-complete.tar.gz
tar xzf roundcubemail-1.4.9-complete.tar.gz 
mv roundcubemail-1.4.9 /var/www/html/roundcubemail

11. 接下来,对 Roundcube Webroot 文件设置适当的权限。

chown -R nginx:nginx /var/www/html/roundcubemail

步骤 4:为 Roundcube Web 安装程序配置 Nginx 服务器块

12. 现在在 /etc/nginx/conf.d/ 下为 Roundcube 创建一个 Nginx 服务器块(您可以按照您想要的方式命名该文件,但它应该有一个.conf 扩展名)。

vim /etc/nginx/conf.d/mail.example.com.conf

在文件中添加以下配置。

server {
        listen 80;
        server_name mail.example.com;

        root /var/www/html/roundcubemail;
        index  index.php index.html;

        #i# Logging
        access_log /var/log/nginx/mail.example.com_access_log;
        error_log   /var/log/nginx/mail.example.com_error_log;

        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
                deny all;
        }

        location ~ ^/(config|temp|logs)/ {
                deny all;
        }

        location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
        }

        location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                #fastcgi_pass 127.0.0.1:9000;
                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

保存文件并关闭它。

13. 接下来,打开文件 /etc/php-fpm.d/www.confPHP-FPM web 进行一些更改指示。

vim /etc/php-fpm.d/www.conf

在以下变量中将用户 apache 更改为 nginx

user = nginx
group = nginx

然后注释掉 listen=127.0.0.1:9000 行,并设置监听变量以监听 nginx 服务器块文件中设置的 Unix 套接字:

listen = /var/run/php-fpm/php-fpm.sock

另外,设置 UNIX 套接字的权限,取消注释并将行更改为:

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

完成后,保存文件并关闭它。

14.然后重新启动NginxPHP-FPM服务以应用最近的更改,如下所示。

systemctl restart nginx php-fpm

第 5 步:访问 Roundcube Web UI

15. 在启动安装向导之前,为避免任何会话错误,请在目录 /var/lib/php/session/ 上设置适当的权限。默认组所有者是apache,将其更改为nginx,如图所示。

ls -ld /var/lib/php/session/
chown :nginx /var/lib/php/session/
ls -ld /var/lib/php/session/

16.现在打开浏览器并使用地址http://mail.example.com/installer(将域替换为您在创建 Nginx 服务器块时设置的服务器名称)对于 Roundcube)来访问 Web 安装程序。如果所有 PHP 版本、扩展和 php.ini/.htaccess 设置正确,您将看到以下屏幕截图,点击下一步进入配置页面。

http://mail.example.com/installer
OR
http://IP-address/installer

17. 配置页面允许您设置 Roundcube 实例。我们将仅解释本指南范围内的重要选项。

常规配置下,设置产品名称,例如Example.com Webmail

转到数据库设置,输入数据库主机名称用户密码 连接到 MySQL 服务器。

然后向下滚动到 IMAPSMTP 设置,并输入您的 IMAPSMTP 服务器的 IP 地址(如果是)运行 Roundcube 的同一服务器,将其保留为“localhost”,并指定其他必要的参数。

您可以根据需要指定其他设置,完成后,单击创建配置

18. 您现在应该看到一条消息,显示“配置文件已成功保存到 Roundcube 安装的 /var/www/html/roundcubemail/config 目录中。”,单击继续

19.您可以从测试配置页面查看您的配置,如以下屏幕截图所示。

20. 接下来,从 Roundcube 根目录中删除整个安装程序文件夹(其中包含可能向公众公开服务器密码和加密密钥等敏感配置数据的文件)(或确保 config.inc.php中的enable_installer选项被禁用)。

rm -rf /var/www/html/roundcubemail/installer

21. 最后,使用 URL http://mail.example.com 访问 Roundcube 登录页面。输入您的用户名和密码以查看您的邮件。

概括

Roundcube 是一款广泛使用、功能齐全的基于网络的多语言邮件客户端。在本文中,我们展示了如何使用 Nginx Web 服务器在 CentOS/RHEL 8/7 上安装最新稳定版本的 Roundcube Webmail。如果您有任何疑问,请使用下面的反馈表联系我们。