美文网首页
如何在CentOS 7上安装ERPNext开源ERP

如何在CentOS 7上安装ERPNext开源ERP

作者: 黑鼠_DEAN | 来源:发表于2019-04-26 14:02 被阅读0次

    ERP或企业资源规划是一个企业应用程序套件,用于管理核心业务流程。ERPNext是用Python编写的免费和开源的自托管ERP应用程序。它使用节点。前面的js和MariaDB存储数据。ERPNext提供了一个易于使用的web界面,允许企业管理日常任务。它包括会计、CRM、人力资源管理、制造、POS、项目管理、采购、销售管理、仓库管理等模块。ERPNext可用于管理不同行业,如服务提供商、制造、零售和学校。

    在本教程中,我们将在CentOS 7上安装ERPNext。

    准备条件:

    一个Vultr CentOS 7服务器实例。

    sudo用户。

    对于本教程,我们将使用http://52kuaiyun.com/作为指向服务器的域名。请确保用你的实际域名替换所有出现的erp.example.com

    使用“如何更新CentOS 7”的指南更新您的基本系统。一旦您的系统被更新,继续安装Python。

    安装开发工具

    ERPNext需要Python版本2.7才能工作。Python 2.7默认安装在所有CentOS服务器实例中。您可以通过运行来检查安装的Python版本:

    python -V

    您应该得到类似的输出。

    [user@vultr ~]$ python -V
    
    Python 2.7.5
    

    虽然Python的安装版本不是最新版本,但它可以毫无障碍地工作。更改Python的默认版本可能会破坏YUM。

    在需要编译安装程序文件的开发工具组中安装包。

    sudo yum groupinstall -y "Development tools"
    

    安装更多的依赖项:

    sudo yum install -y redhat-lsb-core git python-setuptools python-devel openssl-devel libffi-devel
    

    安装Python的Pip的工具。Pip是Python包的依赖项管理器。

    wget https://bootstrap.pypa.io/get-pip.py
    
    sudo python get-pip.py
    

    上述命令将在您的系统上安装Pip。为了确保您拥有最新版本的pip和setuptools,请运行:

    sudo pip install --upgrade pip setuptools
    

    安装使用Pip Ansible。可以自动进行软件供应、配置管理和应用程序部署。

    sudo pip install ansible
    

    安装MariaDB服务器

    MariaDB是MySQL数据库服务器的分支。安装MariaDB通过运行。

    sudo yum -y install mariadb mariadb-server mysql-devel
    

    Barracuda存储引擎需要创建ERPNext数据库,因此您需要配置MariaDB以使用Barracuda存储引擎。编辑默认的MariaDB配置文件my.cnf。

    sudo nano /etc/my.cnf
    

    在symbolic-links=0中添加以下几行。

    innodb-file-format=barracuda
    
    innodb-file-per-table=1
    
    innodb-large-prefix=1
    
    character-set-client-handshake = FALSE
    
    character-set-server = utf8mb4
    
    collation-server = utf8mb4_unicode_ci
    
    [mysql]
    
    default-character-set = utf8mb4
    

    启动MariaDB并使其在启动时自动启动。

    sudo systemctl start mariadb.service
    
    sudo systemctl enable mariadb.service
    

    在配置数据库之前,您需要确保MariaDB的安全性。您可以通过运行mysql_secure_installation脚本保护它:

    sudo mysql_secure_installation
    

    您将被询问当前的MariaDB根密码。默认情况下,在MariaDB上没有设置根密码。按“Enter”键继续。设置一个强大的密码,为您的MariaDB服务器的根用户,并回答“Y”的所有其他问题。

    安装Nginx,Nodejs和Redis

    由于在所有Vultr CentOS 7实例中默认安装了EPEL储存库,您可以直接安装Redis和Nginx。但是要安装最新版本的节点.js,您需要将Nodesource存储库添加到您的系统中。

    为节点添加Nodesource存储库.js 8. x。

    sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
    

    安装Nginx,Nodejs和Redis:

    sudo yum -y install nginx nodejs redis
    

    启动Nginx,并在启动时启动它:

    sudo systemctl start nginx
    
    sudo systemctl enable nginx
    

    启动Redis,并允许它在启动时运行:

    sudo systemctl start redis
    
    sudo systemctl enable redis
    

    安装PDF转换器

    wkhtmltopdf程序是一个命令行工具,它使用QT Webkit渲染引擎将HTML转换成PDF。安装所需的依赖关系:

    sudo yum -y install libXrender libXext xorg-x11-fonts-75dpi xorg-x11-fonts-Type1
    

    <pre style="margin: 0px; padding: 0px;">下载最新版本的wkhtmltopdf。wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz</pre>

    <pre style="margin: 0px; padding: 0px;">通过运行提取存档: sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt</pre>

    上面的命令将提取存档到/ opt/ wkhtmltox。创建一个软链接,这样wkhtmltopdf和wkhtmltoimage可以作为一个命令在全球执行。

    sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
    
    sudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage
    

    您现在可以运行wkhtmltopdf - v命令来检查它是否正常工作,您将看到:

    [user@vultr ~]$ wkhtmltopdf -V
    
    wkhtmltopdf 0.12.4 (with patched qt)
    

    在这一点上,我们已经安装了所有必需的依赖项。现在可以进行安装了。

    安装Bench

    Bench是由Frappe提供的命令行实用工具,用于在基于unix的系统上安装和管理ERPNext应用程序,用于开发和生产。Bench还可以创建和管理Nginx和主管配置。

    创建一个新用户在隔离环境中运行Bench进程。

    sudo adduser bench -d /opt/bench
    

    更改用户的密码。

    sudo passwd bench
    

    向Bench用户提供sudo权限。

    sudo usermod -aG wheel bench
    

    作为新创建的bench用户登录:

    sudo su - bench
    

    在/opt/bench克隆Bench存储库

    cd /opt/bench
    
    git clone https://github.com/frappe/bench bench-repo
    

    使用pip安装bench。

    sudo pip install -e bench-repo
    

    一旦安装了bench,进一步安装ERPNext使用bench。

    安装ERPNext使用板凳

    使用已安装的frappe框架初始化一个工作台目录。为了保持一切整洁,我们将在/ opt/ bench目录下工作。Bench还将设置常规备份和自动更新一天一次。

    cd /opt/bench
    
    bench init erpnext && cd erpnext
    

    创建一个新的Frappe站点:

    bench new-site erp.example.com
    

    上述命令将提示您输入MySQL根密码。提供您之前为MySQL根用户设置的密码。它还要求您设置管理员帐户的新密码。稍后您将需要这个密码登录到管理员指示板。

    从远程git存储库下载ERPNext安装文件。

    bench get-app erpnext https://github.com/frappe/erpnext
    

    在新创建的站点上安装ERPNext:

    bench --site erp.example.com install-app erpnext
    

    ERPNext安装在您的服务器上。您可以立即启动应用程序,以检查应用程序是否已成功启动:

    bench start
    

    但是,您应该停止执行并进一步设置用于生产的应用程序。

    设置主管和Nginx

    默认情况下,ERPNext应用程序监听端口8000,而不是标准的HTTP端口80。此外,不建议在web服务器上运行构建的产品,因为我们将把服务器暴露给世界。因此,您应该使用生产web服务器作为反向代理,如Apache或Nginx。在本教程中,我们将使用Nginx作为反向代理,因为它可以使用Bench自动配置。根据ERPNext设置,工作台可以自动生成和安装配置。

    尽管我们可以使用上面的命令启动应用程序,但是ERPNext的执行将在关闭终端后立即停止。为了解决这个问题,我建议使用在生产环境中持续运行应用程序的主管。主管是一个过程控制系统,它使您能够监视和控制Linux操作系统上的许多进程。一旦管理员配置好,它就会自动启动应用程序在启动时间和失败。工作台可以自动为ERPNext应用程序配置管理程序。

    安装supervisor:

    sudo yum -y install supervisor
    

    <pre style="margin: 0px; padding: 0px;">启动管理程序,使其能够在启动时自动启动:</pre>

    sudo systemctl start supervisord
    
    sudo systemctl enable supervisord
    

    <pre style="margin: 0px; padding: 0px;">安装bench用于生产:</pre>

    sudo bench setup production bench
    

    <pre style="margin: 0px; padding: 0px;">上面的命令可能会在替换现有的主管默认配置文件之前提示您。选择要进行y.Bench将多个进程添加到管理配置文件中。上面的命令还会问你是否希望用一个新的配置替换当前的Nginx配置。输入y继续。一旦完成了安装配置,请提供其他用户来执行您的主目录下的文件。</pre>

    chmod o+x /opt/bench/
    

    <pre style="margin: 0px; padding: 0px;">如果在服务器上运行防火墙,则需要配置防火墙以设置HTTP服务的异常。允许Nginx反向代理从网络外部连接。</pre>

    sudo firewall-cmd --zone=public --permanent --add-service=http
    
    sudo firewall-cmd --reload
    

    <pre style="margin: 0px; padding: 0px;">您现在可以访问http://erp.example.com。</pre>

    <pre style="margin: 0px; padding: 0px;">您可以通过运行检查进程的状态:</pre>

    sudo supervisorctl status all
    

    <pre style="margin: 0px; padding: 0px;">您应该看到以下输出:</pre>

    [bench@vultr ~]$ sudo supervisorctl status all
    
    erpnext-redis:erpnext-redis-cache                 RUNNING   pid 2554, uptime 1:06:58
    
    erpnext-redis:erpnext-redis-queue                 RUNNING   pid 2553, uptime 1:06:58
    
    erpnext-redis:erpnext-redis-socketio              RUNNING   pid 2555, uptime 1:06:58
    
    erpnext-web:erpnext-frappe-web                    RUNNING   pid 2559, uptime 1:06:58
    
    erpnext-web:erpnext-node-socketio                 RUNNING   pid 2556, uptime 1:06:58
    
    erpnext-workers:erpnext-frappe-default-worker-0   RUNNING   pid 2549, uptime 1:06:58
    
    erpnext-workers:erpnext-frappe-long-worker-0      RUNNING   pid 2551, uptime 1:06:58
    
    erpnext-workers:erpnext-frappe-schedule           RUNNING   pid 2550, uptime 1:06:58
    
    erpnext-workers:erpnext-frappe-short-worker-0     RUNNING   pid 2552, uptime 1:06:58
    

    <pre style="margin: 0px; padding: 0px;">要停止所有ERPNext进程,请使用:</pre>

    sudo supervisorctl stop all
    

    <pre style="margin: 0px; padding: 0px;">要启动所有ERPNext进程,请使用:</pre>

    sudo supervisorctl start all
    

    <pre style="margin: 0px; padding: 0px;">使用Let ' s的加密设置SSL</pre>

    <pre style="margin: 0px; padding: 0px;">让我们加密为用户提供免费的SSL证书。SSL可以手动安装,也可以通过工作台自动安装。工作台可以自动安装Let ' s加密客户端并获得证书。此外,它会自动更新Nginx配置以使用证书。</pre>

    <pre style="margin: 0px; padding: 0px;">要从Let ' s加密CA获取证书的域名必须指向服务器。在发出证书之前,客户端验证域权限。</pre>

    <pre style="margin: 0px; padding: 0px;">为ERPNext应用程序启用DNS多租户。</pre>

    bench config dns_multitenant on
    

    <pre style="margin: 0px; padding: 0px;">运行工作台设置让我们对你的网站进行加密:</pre>

    sudo bench setup lets-encrypt erp.example.com
    

    <pre style="margin: 0px; padding: 0px;">在执行脚本期间,Let 's Encrypt客户端将要求您暂时停止Nginx web服务器。它将自动安装所需的包,并加密客户机。客户将提示您的电子邮件地址。你还需要接受条款和条件。生成证书之后,Bench还将为使用SSL证书的Nginx生成新的配置。 Bench还创建一个crontab条目,每个月自动更新证书。</pre>

    <pre style="margin: 0px; padding: 0px;">最后,启用调度程序来自动运行预定的作业:</pre>

    bench enable-scheduler
    

    <pre style="margin: 0px; padding: 0px;">您应该看到:</pre>

    [bench@vultr erpnext]$ bench enable-scheduler
    
    Enabled for erp.example.com
    

    <pre style="margin: 0px; padding: 0px;">结束</pre>

    <pre style="margin: 0px; padding: 0px;">一旦流程完成,您可以在https://erp.example.com访问您的应用程序。使用用户名管理员和在安装期间设置的密码登录。你将被带到你需要提供信息的桌面上,根据你的公司设置ERPNext ERP,现在可以使用应用程序管理公司。</pre>

    <pre style="margin: 0px; padding: 0px;">祝贺您,您已经在CentOS 7服务器上安装了一个完全工作的ERPNext应用程序。</pre>

    转贴http://blog.tianya.cn/post-7730408-130415761-1.shtml

    相关文章

      网友评论

          本文标题:如何在CentOS 7上安装ERPNext开源ERP

          本文链接:https://www.haomeiwen.com/subject/ixifnqtx.html