在 CentOS/RHEL 8 上安装 PostgreSQL 服务器
Flectra 需要一个 PostgreSQL 数据库作为其数据存储库。
因此,我们使用 dnf 命令安装 PostgreSQL 和相关软件包。
# dnf install -y postgresql-server libpq-devel
使用以下 Linux 命令启动和初始化 PostgreSQL 服务器实例。
# postgresql-setup --initdb --unit postgresql * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
启用并启动 PostgreSQL 服务如下。
# systemctl enable --now postgresql.service Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service -> /usr/lib/systemd/system/postgresql.service.
我们的 PostgreSQL 服务器现在可以使用了。
为 Flectra ERP 创建一个数据库用户。
# su - postgres -c "createuser -s flectra"
通过限制本文档的范围,我们正在从默认 yum 存储库安装可用版本的 PostgreSQL。
我们可以参考我们之前的帖子在 CentOS 8 上安装最新版本的 PostgreSQL 服务器。
为 Flectra ERP 创建 Systemd 服务
要在 Linux 启动时启用 ERP 的自动启动,我们需要为 Flectra ERP 创建一个 Systemd 服务。
使用 vim 编辑器创建服务单元文件。
# vi /etc/systemd/system/flectra.service
在此文件中添加以下指令。
[Unit] Description=flectra [Service] Type=simple SyslogIdentifier=flectra PermissionsStartOnly=true User=flectra Group=flectra ExecStart=/opt/flectra/flectra01/bin/python3 /opt/flectra/flectra/flectra-bin -c /etc/flectra/flectra.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
使用以下 systemctl 命令通知 Systemd 服务文件的更改。
# systemctl daemon-reload
启用并启动 Flectra 服务。
# systemctl enable --now flectra Created symlink /etc/systemd/system/multi-user.target.wants/flectra.service -> /etc/systemd/system/flectra.service.
安装 Flectra 必备软件包
Flectra ERP 有一些相关的软件包。
我们正在使用单个 Linux 命令安装所有这些软件包。
# dnf install -y git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel -y
Flectra ERP web 需要“更少”的 JavaScript 来正确呈现网页的样式。
因此,我们使用 npm(节点包管理器)命令安装它。
# npm install -g less /usr/local/bin/lessc -> /usr/local/lib/node_modules/less/bin/lessc + less@3.12.2 added 12 packages from 45 contributors in 23.106s
在 CentOS/RHEL 8 上安装 Flectra ERP
创建 Linux 用户以拥有 Flectra 软件和流程。
# useradd -r -m -U -d /opt/flectra -s /bin/bash flectra
切换到 flectra 用户。
# su - flectra Last login: Wed Oct 14 23:35:55 PKT 2020 on pts/0
通过使用 git 命令,创建 Flectra 源代码的克隆。
$ git clone --depth=1 --branch=1.0 https://gon-itroad.com/flectra-hq/flectra.git flectra Cloning into 'flectra'... remote: Enumerating objects: 26592, done. remote: Counting objects: 100% (26592/26592), done. remote: Compressing objects: 100% (18881/18881), done. remote: Total 26592 (delta 8354), reused 23223 (delta 6860), pack-reused 0 Receiving objects: 100% (26592/26592), 146.00 MiB | 75.00 KiB/s, done. Resolving deltas: 100% (8354/8354), done. Checking out files: 100% (24066/24066), done.
创建用于部署 Flectra ERP 的 Python 虚拟环境。
$ python3 -m venv flectra01
激活 Python 虚拟环境。
$ source flectra01/bin/activate (flectra01) $
使用以下 Linux 命令升级 pip 包的版本。
(flectra01) $ pip install --upgrade pip 100% |->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->| 1.5MB 326kB/s Installing collected packages: pip->->->->->->-> Found existing installation: pip 9.0.3 Uninstalling pip-9.0.3:->->->->->->->->->-> Successfully uninstalled pip-9.0.3 Successfully installed pip-20.2.4->
Flectra ERP 需要各种 Python 模块才能正常运行。
源代码包含完整的所需模块列表,因此,我们可以使用此文件一次性安装所有所需模块。
(flectra01) $ pip3 install -r flectra/requirements.txt ... Successfully installed Babel-2.3.4 Jinja2-2.10.1 Mako-1.0.4 MarkupSafe-0.23 Pillow-4.0.0 PyYAML-3.12 Werkzeug-0.11.15 XlsxWriter-0.9.3 argparse-1.4.0 beautifulsoup4-4.9.3 certifi-2020.6.20 chardet-3.0.4 decorator-4.0.10 docutils-0.12 ebaysdk-2.1.5 feedparser-5.2.1 gevent-1.1.2 greenlet-0.4.10 html2text-2016.9.19 idna-2.7 linecache2-1.0.0 lxml-3.7.1 mock-2.0.0 num2words-0.5.6 numpy-1.14.3 oauthlib-2.0.7 ofxparse-0.16 olefile-0.46 passlib-1.6.5 pbr-5.5.0 psutil-4.3.1 psycopg2-2.8.5 pycrypto-2.6.1 pydot-1.2.3 pyldap-2.4.28 pyparsing-2.1.10 pyserial-3.1.1 python-dateutil-2.5.3 python-stdnum-1.14 pytz-2016.7 pyusb-1.0.0 qrcode-5.3 reportlab-3.3.0 requests-2.20.0 six-1.15.0 soupsieve-2.0.1 suds-jurko-0.6 traceback2-1.4.0 unittest2-1.1.0 urllib3-1.24.3 validate-email-1.3 vatnumber-1.2 vobject-0.9.3 xlrd-1.0.0 xlwt-1.3.0
停用 Python 虚拟环境。
(flectra01) $ deactivate
退出 flectra 用户 shell。
$ exit logout
为 Flectra 配置、可执行文件和日志文件创建目录。
# mkdir /opt/flectra/addons # mkdir /var/log/flectra # mkdir /etc/flectra # touch /var/log/flectra/flectra.log
将新创建的目录的所有者更改为 flectra 用户。
# chown -R flectra:flectra /opt/flectra/addons # chown -R flectra:flectra /var/log/flectra # chown -R flectra:flectra /etc/flectra
编辑 Flectra 配置文件。
# vi /etc/flectra/flectra.conf
在此文件中添加以下配置。
[options] admin_passwd = JackLi@1234 db_host = False db_port = False db_user = flectra db_password = False logfile = /var/log/flectra/flectra.log logrotate = True proxy_mode = True addons_path = /opt/flectra/flectra/addons, /opt/flectra/addons
为 Flectra ERP 配置 Linux 防火墙
要验证,Flectra 服务是否在默认端口 7073 上运行?
执行以下 Linux 命令。
# ss -tulpn | grep 7073 tcp LISTEN 0 128 0.0.0.0:7073 0.0.0.0:* users:(("python3",pid=19844,fd=5))
在 Linux 防火墙中允许 Flectra 服务端口,使 ERP 可以通过网络访问。
# firewall-cmd --permanent --add-port=7073/tcp success # firewall-cmd --reload success
Flectra 是一个开源的 ERP 和 CRM 软件。用于开源 CRM、网站构建器、电子商务、仓库管理、项目管理、计费和会计、销售点、人力资源、营销、制造、采购管理等等。
在本文中,我们将学习如何在 CentOS/RHEL 8 上安装 Flectra ERP。
访问 Flectra ERP Web UI
在 Web 浏览器中打开 URL http://flectra-01.onitroad.com:7073.
填写表格并点击“创建数据库”。
主密码是我们在 /etc/flectra/flectra.conf 文件中设置的密码。
我们已进入 Flectra ERP 的仪表板。
我们现在可以根据业务需求定制商务套件,并开始使用它来管理我们业务的不同方面。
在 CentOS/RHEL 8 上安装 WKHTMLTOPDF
Flectra ERP 需要 WKHTMLTOPDF 软件来生成 PDF 格式的报告。
WKHTMLTOPDF 软件在默认的 yum 存储库中不可用,但我们可以从他们的官方网站下载 WKHTMLTOPDF。
或者 https://github.com/wkhtmltopdf
我们可以从上面的链接中获取 WKHTMLTOPDF 包的 URL,然后使用 wget 命令直接将其下载到 Linux 服务器中。
# cd /tmp # wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos8.x86_64.rpm
使用下面提到的 Linux 命令安装 WKHTMLTOPDF 包。
# dnf localinstall -y wkhtmltox-0.12.6-1.centos8.x86_64.rpm
WKHTMLTOPDF 和相关软件包已安装在 Linux 操作系统上。
在 CentOS/RHEL 8 上安装 Python
Flectra ERP 是使用 Python 编程语言构建的,因此,我们需要 Python 运行时来部署 Flectra 应用程序。
Python 3 在默认 yum 存储库中可用,因此我们使用 dnf 命令安装它。
# dnf install -y python3 python3-devel