当前位置:   article > 正文

Postfix+Dovecot+Roundcube开源邮件系统搭建系列5:Roundcube安装配置(含Nginx+PHP部署配置)

Postfix+Dovecot+Roundcube开源邮件系统搭建系列5:Roundcube安装配置(含Nginx+PHP部署配置)

1. PHP安装配置

参考wordpress 6.5.2版本安装记录 中关于PHP安装方法,此处不再详述。

修改php-fpm的启动用户和组为vmail,这一步是和nginx配置相呼应。配置文件/etc/opt/remi/php83/php-fpm.d/www.conf 下面几个配置:

  1. user vmail
  2. group vmail
  3. listen.acl_users = vmail
  4. #access.log = /var/opt/remi/php83/log/php-fpm/$pool.access.log #可选配置
  5. listen = /var/opt/remi/php83/run/php-fpm/www.sock # 这个配置需要记录一下,下面nginx的配置需要用到

配置启动php-fpm:

  1. systemctl enable php83-php-fpm
  2. systemctl start php83-php-fpm

2. Nginx安装配置

2.1 安装nginx

yum install nginx

2.2 /etc/nginx/nginx.conf 配置文件

  1. user vmail; #以vmail身份运行,下面会涉及相关的配置
  2. worker_processes auto;
  3. error_log /var/log/nginx/error.log notice;
  4. pid /var/run/nginx.pid;
  5. events {
  6. worker_connections 1024;
  7. }
  8. http {
  9. include /etc/nginx/mime.types;
  10. default_type application/octet-stream;
  11. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  12. '$status $body_bytes_sent "$http_referer" '
  13. '"$http_user_agent" "$http_x_forwarded_for"';
  14. # 日志文件位置
  15. access_log /var/log/nginx/access.log main;
  16. sendfile on;
  17. #tcp_nopush on;
  18. keepalive_timeout 65;
  19. #gzip on;
  20. include /etc/nginx/conf.d/*.conf;
  21. }

2.3 /etc/nginx/conf.d/roundcube.conf 配置文件

在/etc/nginx/conf.d目录创建roundcube.conf配置文件,配置相关参数(下面参数仅供参考,里面很多是跟安全有关的配置):

  1. send_timeout 60;
  2. client_body_timeout 60;
  3. client_header_timeout 60;
  4. client_max_body_size 50m;
  5. client_body_buffer_size 1m;
  6. client_header_buffer_size 1k;
  7. large_client_header_buffers 4 8k;
  8. proxy_read_timeout 180;
  9. server_tokens off; # default on
  10. server_names_hash_bucket_size 512;
  11. map_hash_max_size 13107200;
  12. gzip on;
  13. gzip_disable "msie6";
  14. gzip_vary on;
  15. gzip_proxied any;
  16. gzip_comp_level 2;
  17. gzip_http_version 1.1;
  18. gzip_min_length 256;
  19. gzip_types text/plain text/css text/xml text/javascript text/x-json application/json application/x-javascript application/javascript application/xml
  20. application/xml+rss;
  21. ssl_session_timeout 5m;
  22. ssl_session_cache shared:SSL:10m;
  23. ssl_session_tickets off;
  24. ssl_protocols TLSv1.2 TLSv1.3;
  25. ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-S
  26. HA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES256-SHA:HIGH:!MEDIUM:!LOW:!aNUL
  27. L:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:@STRENGTH";
  28. ssl_prefer_server_ciphers on;
  29. proxy_ssl_verify off;
  30. server {
  31. listen 80;
  32. server_name www.mailabc.cn;
  33. rewrite ^(.*)$ https://$host$1 permanent;
  34. }
  35. server {
  36. listen 443 ssl http2;
  37. # server_name @web_name
  38. server_name www.mailabc.cn;
  39. # 这里配SSL证书
  40. ssl_certificate /var/sslcert/www.mailabc.cn.pem;
  41. ssl_certificate_key /var/sslcert/www.mailabc.cn.key;
  42. ssl_dhparam /etc/nginx/dhparam.pem;
  43. ssl_stapling on;
  44. ssl_stapling_verify on;
  45. # 配置roundcube的数据目录,需要提前创建
  46. root /var/www/roundcube;
  47. index index.php;
  48. # 配置fastcgi相关内容
  49. location ~ \.php$ {
  50. fastcgi_pass unix:/var/opt/remi/php83/run/php-fpm/www.sock; #该配置对应上述php-fpm的设置
  51. fastcgi_index index.php;
  52. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  53. include fastcgi_params;
  54. }
  55. }

2.4 创建 /var/www/roundcube 目录

  1. mkdir /var/www/roundcube
  2. chown vmail:vmail /var/www/roundcube

2.5 启动服务

  1. systemctl start nginx
  2. systemctl enable nginx

3. Roundcube配置

3.1 下载程序

下载链接单击此处

3.2 部署Roundcube

3.2.1 解压程序:
  1. tar -zxvf roundcubemail-1.6.7-complete.tar.gz -C /var/www/
  2. cd /var/www/ && mv roundcubemail-1.6.7/* roundcube/
  3. # 设置目录权限为vmail:vmail
  4. chown vmail:vmail -R /var/www/roundcube
3.2.2 初始化数据库:
  1. /* 创建数据库,名称可以自定义 */
  2. CREATE DATABASE roundcube;
  3. /* 初始化数据库 */
  4. USE roundcube;
  5. source /var/www/roundcube/SQL/mysql.initial.sql
  6. /* 授权用户roundcube对roundcube数据库操作权限,可以自行定义账户名和密码 */
  7. grant all on roundcube.* to roundcube@localhost identified by 'admin123';
  8. FLUSH PRIVILEGES;
3.2.3 config.inc.php 配置文件:

创建配置文件:

cp /var/www/roundcube/config/config.inc.php.sample /var/www/roundcube/config/config.inc.php

修改配置文件内容:

  1. # 配置数据库连接方式,见上面数据库初始化内容
  2. $config['db_dsnw'] = 'mysql://roundcube:admin123@localhost/roundcube';
  3. # smtp采用tls方式连接587端口
  4. $config['smtp_host'] = 'tls://localhost:587';
  5. # 启用installer进行图形界面初始化测试,测试完毕需要删除。我不打算用该配置
  6. #$config['enable_installer'] = true;
  7. # 忽略检查ssl证书有效性,方便测试用。生产环境不建议启用
  8. $config['smtp_conn_options'] = [
  9. 'ssl' => [
  10. 'verify_peer' => false,
  11. 'verify_peer_name' => false,
  12. ],
  13. ];
3.2.4 安全起见,删除installer目录:
rm -rf /var/www/roundcube/installer/

4. 测试

4.1 登录测试

通过域名或者ip访问roundcube界面,显示如下:

Roundcube登录界面

Roundcube登录界面

登录之后,界面如下:

roundcube主界面

Roundcube主界面

4.2 信件收发测试

写信:

Roundcube写信界面

Roundcube写信界面

读信:

Roundcube读信界面

Roundcube读信界面

至此,本系列文章结束。但是,实际上我们的工作刚开始,还有大量功能等着我们去探索,例如如何修改附件大小、别名邮箱如何处理、自动转发如何配置等等。后续我们将针对相关主题更新文档进行讨论。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/846282
推荐阅读
相关标签
  

闽ICP备14008679号