如何在CentOS 7上安装Mailtrain新闻通讯应用程序
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是使用Python编写的免费和开源的自托管ERP应用程序。它使用Node.js作为前端,并使用MariaDB存储其数据。ERPNext提供了易于使用的Web界面,使企业可以管理日常任务。它包含用于会计,CRM,HRM,制造,POS,项目管理,采购,销售管理,仓库管理等的模块。ERPNext可用于管理不同的行业,例如服务提供商,制造,零售和学校。
在本教程中,我们将在CentOS 7上安装ERPNext。
在本教程中,我们将使用erp.example.com
指向服务器的域名作为域名。请确保将所有出现的都替换为erp.example.com
您的实际域名。
使用指南“ 如何更新CentOS 7 ” 来更新您的基本系统。系统更新后,继续安装Python。
ERPNext需要Python 2.7版才能工作。默认情况下,所有CentOS服务器实例中都安装了Python 2.7。您可以通过运行以下命令检查安装的Python版本:
python -V
您应该得到类似的输出。
[user@vultr ~]$ python -V
Python 2.7.5
尽管已安装的Python版本不是最新版本,但可以轻松运行。更改默认版本的Python可能会破坏YUM。
在Development tools
编译安装程序文件所需的组中安装软件包。
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。Ansible可以自动执行软件供应,配置管理和应用程序部署。
sudo pip install ansible
MariaDB是MySQL数据库服务器的分支。通过运行安装MariaDB。
sudo yum -y install mariadb mariadb-server mysql-devel
创建ERPNext数据库需要使用梭子鱼存储引擎,因此您需要配置MariaDB以使用梭子鱼存储引擎。编辑默认的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上没有设置root密码。按“ Enter”键继续。为您的MariaDB服务器的root用户设置一个强密码,然后对所有其他询问回答“ Y”。提出的问题是不言自明的。
由于默认情况下在所有Vultr CentOS 7实例中都安装了EPEL存储库,因此您可以直接安装Redis和Nginx。但是要安装最新版本的Node.js,您需要将Nodesource存储库添加到系统中。
为Node.js 8.x添加Nodesource存储库。
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
该wkhtmltopdf
程序是一个命令行工具,可使用QT Webkit呈现引擎将HTML转换为PDF。安装所需的依赖项:
sudo yum -y install libXrender libXext xorg-x11-fonts-75dpi xorg-x11-fonts-Type1
下载的最新版本wkhtmltopdf
。
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
通过运行以下命令提取档案:
sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt
上面的命令会将存档提取到/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
向用户提供sudo
权限bench
。
sudo usermod -aG wheel bench
以新创建的bench
用户身份登录:
sudo su - bench
将Bench资料库克隆到/opt/bench
:
cd /opt/bench
git clone https://github.com/frappe/bench bench-repo
使用安装基准pip
。
sudo pip install -e bench-repo
安装Bench后,请继续使用Bench安装ERPNext。
使用frappe框架初始化一个Bench目录。为了使所有内容保持整洁,我们将在/opt/bench
目录下工作。Bench还将每天设置一次常规备份和自动更新。
cd /opt/bench
bench init erpnext && cd erpnext
创建一个新的Frappe网站:
bench new-site erp.example.com
上面的命令将提示您输入MySQL root密码。提供您先前为MySQL根用户设置的密码。它还将要求您为管理员帐户设置新密码。您稍后将需要此密码登录管理员仪表板。
使用Bench从远程git存储库下载ERPNext安装文件。
bench get-app erpnext https://github.com/frappe/erpnext
在新创建的站点上安装ERPNext:
bench --site erp.example.com install-app erpnext
ERPNext已安装在您的服务器上。您可以立即启动应用程序以检查应用程序是否成功启动:
bench start
但是,您应该停止执行,然后继续进行设置以供生产使用。
默认情况下,ERPNext应用程序侦听端口8000,而不侦听标准的HTTP端口80。此外,不建议运行内置的Web服务器以用于生产用途,因为我们会将服务器公开。因此,您应该使用生产Web服务器作为反向代理,例如Apache或Nginx。在本教程中,我们将使用Nginx作为反向代理,因为可以使用Bench对其进行自动配置。Bench可以根据ERPNext设置自动生成并安装配置。
尽管我们可以使用上述命令启动应用程序,但关闭终端后,ERPNext的执行将立即停止。为解决此问题,我建议使用Supervisor,它对于在生产环境中连续运行应用程序非常有帮助。Supervisor是一个过程控制系统,使您可以监视和控制Linux操作系统上的许多过程。一旦配置了Supervisor,它将在启动时以及发生故障时自动启动应用程序。Bench可以自动为ERPNext应用程序配置Supervisor。
安装主管:
sudo yum -y install supervisor
启动Supervisor,并使它能够在启动时自动启动:
sudo systemctl start supervisord
sudo systemctl enable supervisord
生产用安装台:
sudo bench setup production bench
上述命令可能会提示您,然后用新的Supervisor默认配置文件替换它。选择y
继续。Bench将许多进程添加到Supervisor配置文件中。上面的命令还会询问您是否要用新的配置替换当前的Nginx配置。输入y
继续。Bench完成安装配置后,请提供其他用户执行Bench用户主目录中的文件。
chmod o+x /opt/bench/
如果在服务器上运行防火墙,则需要配置防火墙以为HTTP服务设置例外。允许Nginx反向代理从网络外部连接。
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
您现在可以通过访问网站http://erp.example.com
。
您可以通过运行以下命令检查进程的状态:
sudo supervisorctl status all
您应该看到以下输出:
[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
要停止所有ERPNext进程,请使用:
sudo supervisorctl stop all
要启动所有ERPNext流程,请使用:
sudo supervisorctl start all
让我们加密为用户提供免费的SSL证书。SSL可以手动安装,也可以通过Bench自动安装。Bench可以自动安装Let's Encrypt客户端并获取证书。此外,它会自动更新Nginx配置以使用证书。
从“加密加密” CA获取证书所使用的域名必须指向服务器。客户端在颁发证书之前验证域权限。
为ERPNext应用程序启用DNS多租户。
bench config dns_multitenant on
运行Bench在您的网站上设置“让我们加密”:
sudo bench setup lets-encrypt erp.example.com
在脚本执行期间,“让我们加密”客户端将要求您暂时停止Nginx Web服务器。它将自动安装所需的软件包和“让我们加密”客户端。客户将提示您输入电子邮件地址。您还需要接受条款和条件。生成证书后,Bench还将为使用SSL证书的Nginx生成新配置。在替换现有配置之前,系统将询问您。Bench还会创建一个crontab
条目,以每月自动更新证书。
最后,启用调度程序以自动运行调度的作业:
bench enable-scheduler
您应该看到:
[bench@vultr erpnext]$ bench enable-scheduler
Enabled for erp.example.com
该过程完成后,您可以通过访问您的应用程序https://erp.example.com
。使用Administrator
您在安装过程中设置的用户名和密码登录。您将被带到需要提供信息以根据您的公司设置ERPNext ERP的位置。您现在可以使用该应用程序来管理您的公司。
恭喜,您的CentOS 7服务器上已安装了可以正常运行的ERPNext应用程序。
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息