群辉NAS之mailstation的升级操作(使用docker升级到最新roundcube-webmail)

news/2024/7/10 18:47:03 标签: docker, 容器, 运维, 后端, 开源

@TOC最近使用群辉7.2做企业内部的电子邮件服务器,其他都挺好,到了电话本这里,需要安装globaladdressbook,这个插件,而且也需要用到composer去安装。倒是可以装上,可不起用。后来发现是mail station所使用的roundcube,版本太低,已经无法兼容插件。以下是的群辉7.0平台部署前后端电子邮件的过程:
步骤:

  1. 自然安装好docker,mail server mail station,并且做一些简单测试,如打开smtp iimap pop3,fqnm指定域名。,mailstation 用超级用户登录,默认host,localhost,不用变,然后在ssh中,
sudo docker run -e ROUNDCUBEMAIL_DEFAULT_HOST=mail -e ROUNDCUBEMAIL_SMTP_SERVER=mail -p 8000:80 -d roundcube/roundcubemail

https://hub.docker.com/r/roundcubeorg/roundcubemail

  1. 这样运行会有一个random erorr报错,卡死,原因是appach服务器不支持naslinux内核。所以带标签建立docker,去除apach。标签使用 -d roundcube/roundcubemail:latest-fpm-alpine
    这是我使用的版本,因为只有fpm php的解释器。所以

  2. docker exec -it containIDfirechar bash 修复nginx环境,apk add nginx。 在/etc/nginx/config类似目录修改配置,加入php的9000的解析代理,并指定/var/www/html 这个工作目录。php配置代码按端口来应该是9000.也可用sock文件,我不会,基本复制了nas里面nginx配置的信息。vi /etc/hosts加入邮件服务器的解析。邮件服务器ip和域名。需要/endpoint.sh里加入nginx

  3. DSM 打开docker面板,停止本容器,打开编辑,高级设置,在环境变量中修改使用的端口,SMTP,25.server和host用/etc/hosts指向上条中hosts的名字。只要这三个参数

  4. 这时就能打开映射过来的端口,登录一下新版的邮件系统了。用nas的用户也就就mai server所使用的local验证,到此没有差错就能用户间收发邮件了。

  5. 让mailstation指向新服务 http://ip/mail 里的默认页面写成跳转到新端口,ssh 登录NAS vi /var/@appstore/mailstation/index.php, 改成写成location(http://ip:port) ,原网页备份,无此需要跳过。

  6. 安装丰富的插件,docker exec -it containIDfirechar bash 然后composer require --no-dev pluginname开心的使用吧。
    注意事项:

  1. mailstation用管理员登录后有高级设置菜单可以改变mail server的地址,直接输入localhost,或者IP也行。端口默认的就能用。Docker中有需要修改config.ini.php,或者环境变量的地方。这个docker可以异地运行,毕竟只是webemail,一个前端。.
    只是在docker下端口好像只能是25,别的不行,在容器里没有高级用户设置的功能,只能靠config文件,而且保险起见用了域名,因为电子邮件毕竟需要一个后缀。而hosts正好可以在本机下起作用了。 所以mail server FQCN这里,设定成那个域名。

简单记录我接下来的操作:
… 第一个加入password插件,这是一个自带插件,可以在setting里修改密码,从config.ini.php启用它。然后修改插件的配置文件,指定使用的driver,我用了httpapi。这里指定一个url,一个user,一个password。就能完成修改密码的操作了。的nas的后台,用任何一个web前端加入一个网址,接受这两个参数,然后调用sudo指令 sudo synouser --setpasswd user password、正常返回0, status 200、其他为非正常。 我用的python。感觉php更适合。毕竟mailstation本身就带一个运行环境,稍微修改就行。 在password的README中有使用sudo 不输入密码的说明,大概就的/etc/sudoer 中加入php或自己的web运行者,然后指定nopass 和synouser。
. … 第二个是电话本 composer require,globaladressbook,安装,config.ini.php. $config[‘plgins’]中加入globaladdressbook、可以加一个全局电话本,配置中group=true。可以使用分组。在导入中选择选项有一个selecter,选加入新分组。导入格式csv,列中有name,mail,group。这三个可以自动对应新user。这样一个带分组功能的电话本就有了。
. . 第三 启用ldap遇到困难,电话本的分组是两级的,只能分组用户,不能再分,于是打起了ldap的主意。目前还没成功。 的群辉安装ladp server套件。进行简单的(恶心)配置,可以无缝集成到群辉中,DSM控制面板-域/ldap,设置base-dn:dc=NAME, link-dn:uuid=root,dd=users,dc=name。密码就是主页输入的密码。这就能加入了。我测试发现ldap server里的群组是可以嵌套的,然而,
roundcube 里有个ldap addressbook 功能,并不能取出里面的分组,虽然它说支持,但是很久以前的消息了,缺乏一个现成的办法。 而使用ldap client经过相似的操作可以,取得用户数据。


http://www.niftyadmin.cn/n/699485.html

相关文章

状态模式(State)

定义 状态是一种行为设计模式,让你能在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样。 前言 1. 问题 状态模式与有限状态机的概念紧密相关。 其主要思想是程序在任意时刻仅可处于几种有限的状态中。在任何一个特定状态…

ASP.NET Core MVC -- 入门

先决条件(开发配置二选一): 带有 ASP.NET 和 Web 开发工作负载的Visual Studio Visual Studio Code Visual Studio Code用于 Visual Studio Code 的 C#(最新版本).NET 7.0 SDK 创建Web应用 visual studio ctrl F5 …

JavaFX学习:Observable Collections(观察集合)

JavaFX中的观察集合(Observable Collections)继承自Java的集合(Collections)。Java集合提供了List、Map、Set三种集合接口。JavaFX在Java集合基础上派生出可以监听集合内容变化的三种集合接口。接口如下: ObservableL…

【新版系统架构】第七章-系统架构设计基础知识(基于架构的软件开发方法)

软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版) 第一章-绪论第二章-计算机系统基础知识(一)第二章-计算机系统基础知识(二)第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…

管理者笔记

管理者笔记 有一些固定的思维模式可以帮助你有效地领导和管理团队。以下是几种常见的思维模式: 系统思维:管理者需要具备系统思维,能够看到整个组织或团队的运作和相互关系,而不仅仅关注单个部分。这种思维方式能够帮助你识别问题…

【数据结构】栈——共享栈、链栈(入栈 出栈 判空 创建 读栈顶元素)完整代码

文章目录 三 栈1.定义2.基本操作3.共享栈4.链栈 三 栈 1.定义 只允许在一端进行插入操作或删除的线性表。 重要术语 栈顶:允许 插入和删除的一端。栈底:不允许 插入删除的一端。空栈:不含任何元素的空表。 出栈顺序(卡特兰数): …

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取一种偏振格式(AOP、DOLP或ADOLP)的图像(C++)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK一种偏振格式(AOP、DOLP或ADOLP)的图像(C) Baumer工业相机Baumer工业相机的偏振相机的技术背景Baumer工业相机通过BGAPI SDK在获取一种偏振格式(AOP、DOLP或ADOLP&#xf…

基于matlab使用点特征匹配稳定从抖动平台捕获的视频(附源码)

一、前言 此示例演示如何稳定从抖动平台捕获的视频。稳定视频的一种方法是跟踪图像中的显著特征,并将其用作锚点以消除与其相关的所有扰动。但是,此过程必须了解第一个视频帧中这种显着特征的位置。在此示例中,我们探索了一种无需任何此类先…