步骤 1:更新 Ubuntu 22.04 服务器
如果您在一段时间后安装一些新软件包之前在我们的 Linux 上运行系统更新命令,这将是一个很好的做法。它不仅会为您的系统软件包安装最新的可用更新,甚至还会刷新 APT 索引缓存。
sudo apt update && sudo apt upgrade
步骤 2:为 EPRNext 创建专用用户
与其使用我们当前的 sudo 用户来安装 EPRNext,不如创建一个具有 sudo 权限的单独用户。不用担心,我们稍后会从中删除 sudo 权限,以使我们的系统更加安全。
创建用户:
sudo useradd -m erpnext -s /bin/bash
sudo usermod -aG sudo erpnext
分配一些密码以确保帐户安全:
sudo passwd erpnext
使用ERPNext用户登录并运行系统更新:
sudo su - erpnext
sudo apt update
步骤 3:安装所需的依赖项
为了在 Ubuntu 上安装 ERPNext,我们需要安装几个依赖项,这样我们以后就不会遇到任何常见的软件包相关问题。以下是您需要在终端中运行的命令:
sudo apt install python3-minimal build-essential python3-setuptools python3-pip python3-dev libffi-dev libssl-dev ca-certificates curl gnupg xvfb libfontconfig wkhtmltopdf libmysqlclient-dev software-properties-common python3.10-venv supervisor
步骤 4:设置 MariaDB 数据库服务器
MariaDB 是一个开源的 SQL 数据库服务器,我们可以使用 Ubuntu 的默认系统存储库直接安装它。我们需要它来存储 ERPNext 生成的数据。
sudo apt install mariadb-server mariadb-client
通过运行并遵循给定命令提供的基于文本的向导来保护安装:
sudo mysql_secure_installation
以下是上述命令将要回答的几个问题……
切换到unix_socket身份验证 [Y/n] y
更改 root 密码?[Y/n]:Y
删除匿名用户?[是/否]y
禁止 root 远程登录?[是/否]y
删除测试数据库并访问它?[是/否]y
现在重新加载权限表?[是/否] y
编辑 MYSQL 默认配置文件
sudo nano /etc/mysql/my.cnf
滚动到文件末尾,并按原样添加以下代码块:
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[mysql]
default-character-set = utf8mb4
使用 Ctrl+X 保存文件,然后键入 Y 并按 Enter 键。
第 5 步:安装 Redis Server for ERPNext
对于缓存和任务队列管理,还可以在 Ubuntu 上为您的 ERPNext 安装 Redis 服务器。
sudo apt install redis-server
第 6 步:安装 Node.js 和 Yarn
ERPNext 使用 Node.js 作为其前端。因此,要获取 Nodejs 的最新 LTS 版本,请使用 Ubuntu 系统上的命令手动添加其存储库。
添加 Node GPG 密钥:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
添加 Node APT 仓库:
在这里,我们正在安装 Node LTS 18 版本,如果需要,您可以选择 16 或 20,只需将 – NODE_MAJOR= 版本号更改为您需要的版本号即可。
NODE_MAJOR=18
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
运行系统更新:
sudo apt update
添加 repo 后,我们可以安装 Nodejs:
sudo apt install nodejs
使用 Node 包管理器 NPM 并安装 YARN:
sudo npm install -g yarn
第 7 步:获取 Frappe Bench
现在,我们将安装 Frappe Bench,这是一个用于管理 ERPNext 安装的命令行工具:
pip3 install --user frappe-bench
将 Bench 添加到您的路径中,为此编辑 Bashrc 文件:
nano ~/.bashrc
向下滚动并在文件末尾添加以下行,如屏幕截图所示:
PATH=$PATH:~/.local/bin/
保存并关闭文件 按Ctrl + X,Y,然后按Enter键。
现在,运行:
source ~/.bashrc
初始化 Frappe Bench
我们现在可以从终端中的任何位置访问工作台,因此请对其进行初始化。在这里,我们将使用版本 14,这是在撰写本文时的最新版本,您可以在执行本教程时进行相应的选择。只需将 14 替换为您要使用的版本即可。
bench init --frappe-branch version-14 frappe-bench
将目录切换到 Frappe Bench 目录
cd frappe-bench
更改用户目录权限
这将授予工作台用户对主目录的执行权限。
chmod -R o+rx /home/[your-user]
例如,我们在本教程的开头创建了“erpnext”作为我们的用户,因此我们使用它。如果您使用的是其他命令,请将 [your-user] 替换为上述命令中的 [your-user]。
创建一个要用于ERP的站点next:
假设我们有一个域名 – local.example.com,并希望使用它来访问我们的ERPnext网站。因此,使用它创建一个网站,下面是一个示例:
bench new-site [your-site-name]
示例:
bench new-site local.example.com
当您运行上述命令时,它将要求您输入 MYSQL root 密码以创建数据库。另外,这里为您的ERPNext网站管理员帐户设置密码,我们稍后需要该密码才能访问其仪表板。
步骤 8:在 Ubuntu 上安装 ERPNext 22.04 LTS
让我们下载ERPNext应用程序以安装在我们的系统上,以及您可能还需要的其他一些重要应用程序,以便在生产中使用ERPNext。
要获取 ERPNext 的版本 14,请执行以下操作:
bench get-app --branch version-14 erpnext
—————————————————-(可选)额外信息————————————————————–
收到此错误的人: supervisorctl restart frappe: frappe: ERROR(没有这样的组)
他们可以运行以下命令:
以下命令将在 ~/frappe-bench/config 目录下创建 supervisor.conf 文件。
cd ~/frappe-bench
bench setup supervisor
现在创建一个必需的符号链接。
sudo ln -s ~/frappe-bench/config/supervisor.conf /etc/supervisor/conf.d/frappe-bench.conf
要重新启动所有 Frappe 服务,只需重新启动 Supervisor:
sudo service supervisor restart
———————————————————-到此结束————————————————————
同样,那些希望HRMS和支付应用程序在其ERPnext实例中启用额外功能的人也可以获得它们:
bench get-app payments
bench get-app hrms
现在,使用 bench 命令安装我们下载的应用程序,即 – erpnext、hrm 和 payment。其命令是:
注意:将 [your-site-name] 替换为您在本文的第 7 步中创建的 [your-site-name]。例如,这里我们使用 local.example.com。
bench --site [your-site-name] install-app erpnext
bench --site [your-site-name] install-app hrms
bench --site [your-site-name] install-app payments
同样,您也可以安装ERPnext或Frappe的其他应用程序。
第 9 步:启动 Bench 测试 ERPnext 网站
我们已经在 Ubuntu 上成功安装并创建了 ERPNext 网站。让我们检查一下它是否有效。在终端运行中:
bench start
上面的命令将启动开发服务器来测试您的网站。您将看到运行您的 ERPNext 网站的本地 IP 地址。默认情况下,它将位于端口号 8000 上,但是,如果它不可用或被其他应用程序占用,则它可能会有所不同。
打开 Web 浏览器并指向 IP 地址,如开发服务器的终端输出所示:
如果您在访问网站时遇到 404 错误,请查看下一步来解决它。因此,我们得到了:
错误:在浏览器中找不到 404 在工作台启动上
那么,如何解决这个错误。首先,在进程仍处于活动状态的终端中使用 Ctrl+C 停止运行 Bench 服务器。
之后,我们必须切换到Sites目录并创建一个文件,让我们看看如何?
cd ~/frappe-bench/sites
创建currentsite.txt文件:
nano currentsite.txt
在其中添加您当前用于 ERPNext 的网站名称。若要保存文件,请按 Ctrl+X,然后按 Y,然后按 Enter 键。例如,我们创建了一个名为 – local.example.com 的网站,所以我们只是添加了它。
检查文件现在是否可用:
ls
现在,再次在终端中运行bench start
,然后打开浏览器并指向本地IP地址和端口。这一次,您将看到登录界面,如给定的屏幕截图所示。
一旦你有了登录界面,你就可以使用用户名-管理员,而它的密码是你在创建ERPNext网站时在步骤7中设置的密码。
之后,设置程序还会要求您设置仪表板的语言以及其他常见信息。
除了管理员之外,在此步骤中,您还可以再创建一个用户来访问 ERPNext 仪表板和其他设置。
通过提供所需的详细信息来设置组织。
最后,在您的 Ubuntu 上运行的 ERPNext 仪表板 22.04 将出现在您的眼前.
现在,一旦您根据您的要求配置了 ERPNext,让我们关闭 Bench 的开发服务器,使我们的 EPRNext 上线用于生产用途。
转到“工作台启动”进程仍处于活动状态的终端,然后按键盘上的 Ctrl+X 键。
第 10 步:为生产环境设置 ERPNext
因此,在上一步中,我们已经看到我们使用本地服务器 IP 地址访问浏览器中的 ErpNext,但具有特定的端口号。但是,在生产环境中,您肯定希望在不添加任何特定端口号的情况下使用某些域。让我们看看如何做到这一点。
首先在您的 Temrinal 中
- 启用调度程序
bench --site [your-site-name] enable-scheduler
- 禁用维护模式
bench --site [your-site-name] set-maintenance-mode off
- 设置主管:
尽管我们已经在本文的第 8 步中讨论了如何设置 Supervisor,但如果您没有按照该步骤操作,那么这里再次是该命令:
cd ~/frapper-bench
bench setup supervisor
sudo ln -s `pwd`/config/supervisor.conf /etc/supervisor/conf.d/frappe-bench.conf
- 安装 Nginx 并配置 Bench
需要 Nginx 作为代理服务器,使用 HTTP 端口 80 而不是 8000 来访问 ERPNext Dashboard。
sudo apt install nginx
使用 Bench 自动为您的网站配置端口 80。
bench setup nginx
将 frappe 生成的 Nginx 配置文件复制到 Nginx 主目录:
sudo ln -s `pwd`/config/nginx.conf /etc/nginx/conf.d/frappe-bench.conf
- 禁用默认测试页
sudo unlink /etc/nginx/sites-enabled/default
sudo unlink /etc/nginx/sites-available/default
- 重新启动 Nginx 以应用更改
sudo systemctl restart nginx
(可选) 如果您收到返回的错误,即:
Job for nginx.service failed because the control process exited with error code.See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
由于我们在设置 Nginx 以访问 ERPNext 时遇到了错误,这就是我们在这里讨论它的原因。如果这也是您的情况,那么首先编辑 Ngnix 配置文件:
sudo nano /etc/nginx/nginx.conf
现在,http {} 部分之间的任意位置添加以下行:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
要获得一个想法,请参阅给定的屏幕截图:
使用 Ctlr+X 保存文件。,然后按 Y 键。现在再次尝试重新启动 Nginx,这次您将不会遇到错误:
sudo systemctl restart nginx
现在,使用您的服务器 IP 地址或域来访问 ERPNext 仪表板。您将在不使用任何其他端口(例如 8000)的情况下拥有它。
http://your-domain.com 或 http://sever-ip-address
注意:在访问ERPNext时,如果您遇到如下错误:
Sorry!
We will be back soon.
Don’t panic. It’s not you, it’s us.
Most likely, our engineers are updating the code, and it should take a minute for the new code to load into memory.
要解决此问题,请重新启动 Supervisor 服务:
sudo systemctl restart supervisor.service
现在,检查它是否工作正常:
systemctl status supervisor --no-page -l
之后,刷新您访问ERPNext仪表板的浏览器页面。
附加信息:
如果您想将 ERPNext 与创建的一些本地域一起使用,以便在您的本地 PC 中使用,请在您的 /etc/hosts 文件中将其指向 127.0.0.1。为了方便起见,您只需运行给定的命令即可实现此目的:
bench --site [your-site-name] add-to-hosts
例如,我们有一个本地创建的域,它也是我们ERPnext站点的名称,在本教程中,它是:local.example.com。因此,要仅在我们的本地网络或PC中使用它来访问ERPnext的仪表板,我们可以使用给定的命令:
bench --site local.example.com add-to-hosts
如何更新 Bench:
稍后要更新工作台及其其他组件,请使用给定的命令。它拉取 bench-repo 和所有应用程序的更改,应用补丁,构建 JS 和 CSS,然后迁移。
bench update
那些以后想要从他们的 ERPNext 用户中删除 sudo 权限的人可以运行给定的命令:
sudo usermod -G "" erpnext
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun288612.html