前言

Roundcube 是最著名的开源解决方案之一,可通过 Web 服务管理可靠且可定制的电子邮件服务。

在本教程中,提供了在 CentOS 7 上使用 Roundcube 安装和管理 Web 邮件服务的所有信息。由于它基于 PHPRoundcube 需要安装 Web 服务器,例如 NGINXApache,并依赖于类似 MySQL 的数据库,例如作为 MariaDB

首先,通过 SSH 连接连接到您的服务器。如果您还没有这样做,建议按照我们的指南使用 SSH 安全连接。如果是本地服务器,请转到下一步并打开服务器的终端。

NGINX 和 PHP 的安装

首先安装支持 PHPMySQLNGINX 实例:

$ sudo yum install nginx php php-fpm php-mcrypt php-cli php-gd php-curl php-xml php-mysql php-mbstring php-pspell php-imagick

在所有软件包安装结束时,启动 NGINX 并在系统上启用其自动启动:

$ sudo systemctl start nginx$ sudo systemctl enable nginx

Roundcube 的使用需要更改 /etc/php.ini 中的 PHP 配置文件中的两个参数:

# Impostazione della nostra timezonedate.timezone = "Europe/Rome"
cgi.fix_pathinfo=0

保存刚刚修改的文件,启动并启用PHP-FPM服务:

$ sudo systemctl start php-fpm$ sudo systemctl enable php-fpm

MariaDB的安装

为了正常运行 Roundcube 需要 MariaDB 数据库,可以使用以下命令安装:

$ sudo yum install mariadb-server

安装完成后,启动服务:

$ sudo systemctl start mariadb$ sudo systemctl enable mariadb

通过运行 MariaDB 中包含的脚本来提高 MariaDB 的安全性并限制对数据库的访问:

启动 MariaDb "mysql_secure_installation" 提供的实用程序脚本并回答所有问题:

$ sudo mysql_secure_installation

首先,系统会询问您是否要启用密码验证系统。如果您启用此系统,当您为用户设置密码时,它将被评估。如果密码不符合最低安全要求,则会被拒绝并显示错误消息。

然后,系统将询问您是否要将根密码更改为您的偏好之一。如果启用密码验证系统,则必须输入符合安全标准的密码。

建议遵循一些创建安全密码的最佳做法。包括:

  • 大小写同时使用

  • 字母和数字的使用

  • 使用非字母数字字符,如@# $% ^ &!

  • 使用以前使用过的密码以外的密码

最后,选择是否删除匿名用户、测试数据库以及是否禁用 root 用户远程登录。为了获得足够的安全级别,建议确认所有这些更改。

此时,确认更新显示的表格以应用新的安全标准。

Enter current password for root (enter for none):OK, successfully used password, moving on...Setting the root password ensures that nobody can log into MariaDBroot user without the proper authorisation.Set root password? [Y/n] YNew password:Re-enter new password:Password updated successfully!Reloading privilege tables..... Success!Remove anonymous users? [Y/n] Y... Success!Normally, root should only be allowed to connect from 'localhost'.  Thisensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n] Y... Success!Remove test database and access to it? [Y/n] Y- Dropping test database...... Success!- Removing privileges on test database...... Success!Reload privilege tables now? [Y/n] Y... Success!Cleaning up...All done!  If you've completed all of the above steps, your MariaDBinstallation should now be secure.Thanks for using MariaDB!

重新启动服务后,可以创建 Roundcube 的数据库和新用户(通过更改密码):

$ 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 'mf0c3mhx';MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';MariaDB [(none)]> FLUSH PRIVILEGES;MariaDB [(none)]> exit

Roundcube的安装

为了下载最新版本的 Roundcube,您需要 wget。如果您的系统上未安装,请使用以下命令执行此操作:

$ sudo yum install wget

否则,继续从 github 下载并解压缩包:

$ wget -c https://github.com/roundcube/roundcubemail/releases/download/1.3.7/roundcubemail-1.3.7-complete.tar.gz$ tar xzf roundcubemail-1.3.7-complete.tar.gz

然后将所有内容移至 NGINX 目录:

$ sudo mv roundcubemail-1.3.7 /var/www/html/roundcubemail$ sudo cd /var/www/html/roundcubemail/

Roundcube 包包含一个 sql 文件,该文件必须以所需的结构导入到新创建的数据库中:

$ mysql -u root -p roundcubemail < SQL/mysql.initial.sql

在导入过程中,系统会要求您输入在安装 MariaDB 时输入的数据库 root 密码。

数据库配置完成后,为域 mail.domain.com 准备 NGINX 虚拟服务器。首先,确保 html 文件夹的所有者是 NGINX

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

现在创建并编辑虚拟主机文件/etc/nginx/conf.d/mail.example.com.conf,如下所示:

server {listen 80;server_name mail.domain.com;root /var/www/html/roundcubemail;index  index.php index.html;#i# Loggingaccess_log /var/log/nginx/mail.domain.com_access_log;error_log   /var/log/nginx/mail.domain.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;}}

在保存所有更改之前,请记住将domain.com域更改为您的域。

如果出现权限错误,请通过更改以下参数来修改 /etc/php-fpm.d/www.conf 中的 PHP-FPM 配置:

user = nginxgroup = nginxlisten = /var/run/php-fpm/php-fpm.socklisten.owner = nginxlisten.group = nginxlisten.mode = 0660

另外,确保 PHP“会话”目录的所有者是 NGINX

$ sudo chown -R nginx:nginx /var/lib/php/session/

此时,Roundcube 已准备好从 Web 界面进行配置。

通过 Web 界面进行 Roundcube 配置

要继续安装,请通过 Web 浏览器访问:http: //mail.domain.com/installer/


在第一阶段,Roundcube 安装程序显示正确操作系统要求的摘要。单击“下一步”按钮继续。

在第二阶段,必须输入一系列操作参数。保持所有内容不变,除了 product_name 输入您的域名或您选择的昵称。

使用在安装阶段输入的数据更改对 sql server 的访问数据很重要。完成后,单击“下一步”继续。

第二阶段完成后,测试服务器的 IMAP / SMTP 参数以验证 Roundcube 是否能够发送/接收邮件。

完成后,通过运行以下命令删除 /var/www/html/roundcubemail/installer 文件夹中安装所需的所有文件:

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

如果要修改或更改在配置阶段输入的参数,始终可以修改 /var/www/html/roundcubemail/config/config.inc.php 目录中的文件。

访问网络邮件

我们的 Roudcube 实例已准备好在 URL http://mail.domain.com/上使用。然后,使用配置了 Dovecot 的邮箱的登录详细信息登录。


结语

到这里我们就完成了RoundCube 的安装,整个安装步骤需要很多的软件支持,所以大家要有耐心保证每一个步骤都是成功的,否者会在后面的使用中遇到各种莫名其妙的问题,祝大家成功,如果安装过程中遇到什么问题,欢迎在下方评论区讨论!

如何在 CentOS 7 上使用 RoundCube 管理邮箱相关推荐

  1. 如何在Centos 7上用Logrotate管理日志文件

    何为Logrotate? Logrotate是一个实用的日志管理工具,旨在简化对系统上生成大量的日志文件进行管理. Logrotate允许自动旋转压缩,删除和邮寄日志文件,从而节省宝贵的磁盘空间. L ...

  2. 如何在CentOS 7上使用uWSGI和Nginx来运行Django应用程序

    @(tigerfive)[tigerfive][linux学习笔记][uwsgi][django][nginx] 前言 先决条件和目标 安装和配置VirtualEnv和VirtualEnvWrappe ...

  3. 如何在 CentOS 7 上安装 Nginx

    本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Nginx 读作 engine x, 是一个免费的.开源的.高性能的 HTTP 和反向代理服务,主要负责负载一些访问量比较大的站点. ...

  4. centos7 安装git_如何在 CentOS 7 上挂载 Amazon EFS 文件系统?

    如何为数千个 Amazon EC2 实例提供大规模并行共享访问模式? 在本周,为大家做的分享是关于如何在 CentOS 7 上挂载 Amazon EFS 文件系统.Amazon EFS 可以让您的应用 ...

  5. 如何在 CentOS 7 上生成 SSL 证书为 Nginx 加密

    本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Let's Encrypt 是由 Internet Security Research Group (ISRG) 开发的一个自由.自动 ...

  6. 2019 年如何在 CentOS 7 上安装最新版 Nginx

    本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Nginx 读作 engine x, 是一个免费的.开源的.高性能的 HTTP 和反向代理服务,主要负责负载一些访问量比较大的站点. ...

  7. centos 使用java_如何在CentOS 8上安装Java

    Java是用于构建不同类型的应用程序和系统的最流行的编程语言之一. Java有两种不同的实现,OpenJDK和Oracle Java,两者之间几乎没有区别,只是Oracle Java具有一些其他的商业 ...

  8. 如何在CentOS 7上安装Kubernetes Docker群集

    如何在CentOS 7上安装Kubernetes Docker群集 Kubernetes是一个开源平台,用于管理由Google开发的容器化应用程序.它允许您在集群环境中管理,扩展和自动部署容器化应用程 ...

  9. 如何在CentOS 7上安装和使用PostgreSQL

    原作者:米切尔·阿尼卡斯 转载来源:https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql ...

  10. 如何在CentOS 7上安装和配置MySQL Cluster

    翻译&转载:https://www.howtoforge.com/tutorial/how-to-install-and-configure-mysql-cluster-on-centos-7 ...

最新文章

  1. 用bitmap实现中位数的算法
  2. 【深度学习】李沐《动手学深度学习》的PyTorch实现已完成
  3. 女朋友竟然提出这种奇怪的要求......
  4. es6关于let和const的总结
  5. 讨论ALL_ROWS模式和FIRST_ROWS模式
  6. 亚特兰大峰会精彩看点:软件吞噬世界,OpenStack是变革核心
  7. 【Qt开发】Qt标准对话框之QMessageBox
  8. Android应用程序与SurfaceFlinger服务的连接过程分析
  9. yaml文件解析:c++篇
  10. java 定义动态接口_使用自定义annotation接口进行aspectj动态缓存
  11. java jdk动态代理 cglib动态代理demo
  12. ES6小实验-复习字符串
  13. C++游戏服务器框架笔记(二)_封装Socket类
  14. 有趣好玩恶搞的C语言程序,有趣搞笑的整人VBS小脚本(整菜鸟专用)
  15. android root 升级失败怎么办,手机root失败怎么办 安卓手机root失败原因分析
  16. 解决File “D:\ProgramData\Anaconda3\lib\site-packages\keras\engine\saving.py“,相关问题
  17. 浏览器goback跨域
  18. linux char大小,Linux基本数据类型大小——int,char,long int,long long int
  19. 做京东运营2年的感悟(转自派代网 乔先生)
  20. 古琴【A1】基本指法

热门文章

  1. 【读书笔记】《向上管理:如何正确汇报工作》
  2. FFMpeg-6、Libavdevice+SDL捕获显示摄像头、录屏
  3. 核心单词Word List 3
  4. 通过css和html构建能耗数据分析树状图
  5. 谈谈自己对做软件开发这一行业的想法
  6. some phrase for oral english
  7. 滑动切换下一个视频,点击暂停视频,再次点击播放视频,很多案列pc预览正常,真机调试就不能用了;此案例我手机是可以用的,废话不多说直接上源码
  8. ISCSI 客户端远程挂载块设备卡住
  9. 计算机的声卡怎么安装教程,图文详解如何安装声卡驱动_给电脑安装声卡驱动的详细教程...
  10. 使用HTML实现图片切换/轮播