围炉网

一行代码,一篇日志,一个梦想,一个世界

搭建开源的ERP/CRM系统Dolibarr

docker环境可以免除很多环境依赖的问题,且Docker Hub上有人已经上传了可用的镜像。因此这里采用docker的方式进行部署,为了运行更加方便,建议使用docker compose。即部署环境需要一台支持docker-compose的机器。

  • 创建数据库

    • 使用docker搭建一个新的数据库实例,当然也可以复用已有的实例

      • 数据库docker compose脚本文件

version: '2'

services:
    mariadb:
        restart: always
        image: mariadb:latest
        environment:
            - MYSQL_ROOT_PASSWORD=mysql
        ports:
            - "3306:3306"
        volumes:
            - ./mariadbdata:/var/lib/mysql
        container_name: mariadb
    • 现在我们可以为Dolibarr创建一个数据库。使用命令:

    • sudo mysql -u root -p

    • 身份验证成功后(使用刚刚为数据库管理员用户创建的密码),使用以下命令创建新数据库:

    • CREATE DATABASE dolibarr;

  • 创建Dolibarr实例

    • docker compose脚本文件

version: '2'

services:
    dolibarr:
        restart: always
        image: tuxgasy/dolibarr:latest
        environment:
            DOLI_INSTALL_AUTO: 1
            DOLI_DB_HOST: 10.203.12.122
            DOLI_DB_USER: root
            DOLI_DB_PASSWORD: mysql
            DOLI_DB_NAME: dolibarr
            DOLI_URL_ROOT: 'http://10.203.12.122'
            PHP_INI_DATE_TIMEZONE: 'Asia/Shanghai'
        ports:
            - "80:80"
        container_name: dolibarr
        volumes:
            - ./dolidocuments:/var/www/documents
            - ./bugfix/smtps.class.php:/var/www/html/core/class/smtps.class.php
            - ./conf/conf.php:/var/www/html/conf/conf.php

其中DOLI_DB_HOST和DOLI_URL_ROOT 根据实际情况改成对应的IP地址

这里我们使用过程中发现了一个邮件发送的bug (在使用休假模块时发现邮件发送失败),暂时通过docker mount的方式把修复的文件挂载进去。修改内容:

// fix for extmail issue: From must be same as the logined user
$resultmailfrom = $this->socket_send_str('MAIL FROM: '.$this->_smtpsID, '250'); //修复后
//$resultmailfrom = $this->socket_send_str('MAIL FROM: '.$this->getFrom('addr'), '250'); //修复前,$this->getFrom('addr')获得的string含有'<',extmail无法识别
    • 运行docker compose

运行命令 : docker-compose up -d

  • 配置网站

    • 访问http://10.203.12.122 ,用户名密码为admin,admin

    • 点击左侧菜单栏中Display按钮,可以对显示语言进行对应配置

    • 点击Company/Organization并填写相关信息

    • 点击Security进行配置

      • 点击Passwords Tab, 分别点击“Encrypt passwords stored in database (NOT as plain-text). It is strongly recommended to activate this option.”,“Encrypt database password stored in conf.php. It is strongly recommended to activate this option.”的两个Activate 按钮。否则涉及到的密码会被明文保存到数据库和配置文件中。

    • 点击Audit并选择所有events并保存

    • 点击Emails对邮件进行配置,具体可参考 https://wiki.dolibarr.org/index.php/Setup_EMails

  • 配置功能模块,比如休假管理

    • 点击Modules/Applications选择需要的模块激活,假设这里我们激活了休假管理模块

  • 配置使用LDAP,参考链接 https://www.dolibarr.org/forum/t/howto-ldap-activedirectory-instructions-with-authentication-for-dolibarr-12/19541

    • 点击Modules/Applications选择LDAP模块激活

    • 点击模块边上的设置图标进入设置界面

    • 选择配置如下

Users and groups synchronization
LDAP->Dolibarr
Type
OpenLdap
Version
Version 3
Primary server
10.203.12.122 (根据自己的IP修改)
Server port
389
Server DN
dc=ilabhkex,dc=com,dc=hk (根据openldap配置修改)
Use TLS
No (根据openldap配置修改)
Administrator DN
cn=admin,dc=ilabhkex,dc=com,dc=hk
Administrator password
openldap admin的密码
    • 点击modify按钮保存配置,然后点击下方”TEST LDAP CONNECTION”进行连通性测试

    • 这时可以看到上方新增了”Users”和”Groups”两个tab

    • 点击Users Tab进行配置

Users’ DN
dc=ilabhkex,dc=com,dc=hk
List of objectClass
top,posixAccount,inetOrgPerson
Search filter
&(objectClass=inetOrgPerson)
Dolibarr Mapping
LDAP Mapping (根据需要选择对应的字段,在后续创建Dolibarr账户时会抽取这些字段来默认填补Dolibarr创建时需要的字段)
    • 点击Groups Tab进行配置

Groups’ DN
dc=ilabhkex,dc=com,dc=hk
List of objectClass
top,posixGroup
Name
cn
Group members
memberUid
Group id
gidNumber
    • 最后修改配置文件启用LDAP

      • 修改./conf/conf.php文件,将以下内容添加到这个配置文件。可惜这里ldap的admin密码似乎还是需要明文保存。

$dolibarr_main_authentication='ldap,dolibarr';
$dolibarr_main_auth_ldap_host='ldap://10.203.12.115';
$dolibarr_main_auth_ldap_port='389';
$dolibarr_main_auth_ldap_version='3';
$dolibarr_main_auth_ldap_servertype='OpenLdap';
$dolibarr_main_auth_ldap_login_attribute='uid';
$dolibarr_main_auth_ldap_dn='dc=ilabhkex,dc=com,dc=hk';
$dolibarr_main_auth_ldap_debug='false';
$dolibarr_main_auth_ldap_admin_login='cn=admin,dc=ilabhkex,dc=com,dc=hk';
$dolibarr_main_auth_ldap_admin_pass='passwordtoupdate';
  • 新建Dolibarr用户

    • 点击左侧菜单栏”Users & Groups” -> “New user” 菜单,在最上方可以看到”Users in LDAP database“, 这里可以看到ldap中的用户,选择对应的用户,点击右侧”GET”按钮,相关字段会自动从LDAP获取并填入。只需补充一下其它字段就可以保存了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

沪ICP备15009335号-2