如何在CentOS 7上安裝ERPNext開源ERP

ERP或企業(yè)資源規(guī)劃是一個企業(yè)應(yīng)用程序套件,用于管理核心業(yè)務(wù)流程。ERPNext是用Python編寫的免費和開源的自托管ERP應(yīng)用程序。它使用節(jié)點。前面的js和MariaDB存儲數(shù)據(jù)。ERPNext提供了一個易于使用的web界面,允許企業(yè)管理日常任務(wù)。它包括會計、CRM、人力資源管理、制造、POS、項目管理、采購、銷售管理、倉庫管理等模塊。ERPNext可用于管理不同行業(yè),如服務(wù)提供商、制造、零售和學(xué)校。

在本教程中,我們將在CentOS 7上安裝ERPNext。

準(zhǔn)備條件:

一個Vultr CentOS 7服務(wù)器實例。

sudo用戶。

對于本教程,我們將使用http://52kuaiyun.com/作為指向服務(wù)器的域名。請確保用你的實際域名替換所有出現(xiàn)的erp.example.com。

使用“如何更新CentOS 7”的指南更新您的基本系統(tǒng)。一旦您的系統(tǒng)被更新,繼續(xù)安裝Python。

安裝開發(fā)工具

ERPNext需要Python版本2.7才能工作。Python 2.7默認(rèn)安裝在所有CentOS服務(wù)器實例中。您可以通過運行來檢查安裝的Python版本:

python -V

您應(yīng)該得到類似的輸出。

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

雖然Python的安裝版本不是最新版本,但它可以毫無障礙地工作。更改Python的默認(rèn)版本可能會破壞YUM。

在需要編譯安裝程序文件的開發(fā)工具組中安裝包。

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

上述命令將在您的系統(tǒng)上安裝Pip。為了確保您擁有最新版本的pip和setuptools,請運行:

sudo pip install --upgrade pip setuptools

安裝使用Pip Ansible。可以自動進行軟件供應(yīng)、配置管理和應(yīng)用程序部署。

sudo pip install ansible

安裝MariaDB服務(wù)器

MariaDB是MySQL數(shù)據(jù)庫服務(wù)器的分支。安裝MariaDB通過運行。

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

Barracuda存儲引擎需要創(chuàng)建ERPNext數(shù)據(jù)庫,因此您需要配置MariaDB以使用Barracuda存儲引擎。編輯默認(rèn)的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

在配置數(shù)據(jù)庫之前,您需要確保MariaDB的安全性。您可以通過運行mysql_secure_installation腳本保護它:

sudo mysql_secure_installation

您將被詢問當(dāng)前的MariaDB根密碼。默認(rèn)情況下,在MariaDB上沒有設(shè)置根密碼。按“Enter”鍵繼續(xù)。設(shè)置一個強大的密碼,為您的MariaDB服務(wù)器的根用戶,并回答“Y”的所有其他問題。

安裝Nginx,Nodejs和Redis

由于在所有Vultr CentOS 7實例中默認(rèn)安裝了EPEL儲存庫,您可以直接安裝Redis和Nginx。但是要安裝最新版本的節(jié)點.js,您需要將Nodesource存儲庫添加到您的系統(tǒng)中。

為節(jié)點添加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轉(zhuǎn)換器

wkhtmltopdf程序是一個命令行工具,它使用QT Webkit渲染引擎將HTML轉(zhuǎn)換成PDF。安裝所需的依賴關(guān)系:

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。創(chuàng)建一個軟鏈接,這樣wkhtmltopdf和wkhtmltoimage可以作為一個命令在全球執(zhí)行。

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

您現(xiàn)在可以運行wkhtmltopdf - v命令來檢查它是否正常工作,您將看到:

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

在這一點上,我們已經(jīng)安裝了所有必需的依賴項?,F(xiàn)在可以進行安裝了。

安裝Bench

Bench是由Frappe提供的命令行實用工具,用于在基于unix的系統(tǒng)上安裝和管理ERPNext應(yīng)用程序,用于開發(fā)和生產(chǎn)。Bench還可以創(chuàng)建和管理Nginx和主管配置。

創(chuàng)建一個新用戶在隔離環(huán)境中運行Bench進程。

sudo adduser bench -d /opt/bench

更改用戶的密碼。

sudo passwd bench

向Bench用戶提供sudo權(quán)限。

sudo usermod -aG wheel bench

作為新創(chuàng)建的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還將設(shè)置常規(guī)備份和自動更新一天一次。

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

創(chuàng)建一個新的Frappe站點:

bench new-site erp.example.com

上述命令將提示您輸入MySQL根密碼。提供您之前為MySQL根用戶設(shè)置的密碼。它還要求您設(shè)置管理員帳戶的新密碼。稍后您將需要這個密碼登錄到管理員指示板。

從遠(yuǎn)程git存儲庫下載ERPNext安裝文件。

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

在新創(chuàng)建的站點上安裝ERPNext:

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

ERPNext安裝在您的服務(wù)器上。您可以立即啟動應(yīng)用程序,以檢查應(yīng)用程序是否已成功啟動:

bench start

但是,您應(yīng)該停止執(zhí)行并進一步設(shè)置用于生產(chǎn)的應(yīng)用程序。

設(shè)置主管和Nginx

默認(rèn)情況下,ERPNext應(yīng)用程序監(jiān)聽端口8000,而不是標(biāo)準(zhǔn)的HTTP端口80。此外,不建議在web服務(wù)器上運行構(gòu)建的產(chǎn)品,因為我們將把服務(wù)器暴露給世界。因此,您應(yīng)該使用生產(chǎn)web服務(wù)器作為反向代理,如Apache或Nginx。在本教程中,我們將使用Nginx作為反向代理,因為它可以使用Bench自動配置。根據(jù)ERPNext設(shè)置,工作臺可以自動生成和安裝配置。

盡管我們可以使用上面的命令啟動應(yīng)用程序,但是ERPNext的執(zhí)行將在關(guān)閉終端后立即停止。為了解決這個問題,我建議使用在生產(chǎn)環(huán)境中持續(xù)運行應(yīng)用程序的主管。主管是一個過程控制系統(tǒng),它使您能夠監(jiān)視和控制Linux操作系統(tǒng)上的許多進程。一旦管理員配置好,它就會自動啟動應(yīng)用程序在啟動時間和失敗。工作臺可以自動為ERPNext應(yīng)用程序配置管理程序。

安裝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用于生產(chǎn):</pre>

sudo bench setup production bench

<pre style="margin: 0px; padding: 0px;">上面的命令可能會在替換現(xiàn)有的主管默認(rèn)配置文件之前提示您。選擇要進行y.Bench將多個進程添加到管理配置文件中。上面的命令還會問你是否希望用一個新的配置替換當(dāng)前的Nginx配置。輸入y繼續(xù)。一旦完成了安裝配置,請?zhí)峁┢渌脩魜韴?zhí)行您的主目錄下的文件。</pre>

chmod o+x /opt/bench/

<pre style="margin: 0px; padding: 0px;">如果在服務(wù)器上運行防火墻,則需要配置防火墻以設(shè)置HTTP服務(wù)的異常。允許Nginx反向代理從網(wǎng)絡(luò)外部連接。</pre>

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

<pre style="margin: 0px; padding: 0px;">您現(xiàn)在可以訪問http://erp.example.com。</pre>

<pre style="margin: 0px; padding: 0px;">您可以通過運行檢查進程的狀態(tài):</pre>

sudo supervisorctl status all

<pre style="margin: 0px; padding: 0px;">您應(yīng)該看到以下輸出:</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的加密設(shè)置SSL</pre>

<pre style="margin: 0px; padding: 0px;">讓我們加密為用戶提供免費的SSL證書。SSL可以手動安裝,也可以通過工作臺自動安裝。工作臺可以自動安裝Let ' s加密客戶端并獲得證書。此外,它會自動更新Nginx配置以使用證書。</pre>

<pre style="margin: 0px; padding: 0px;">要從Let ' s加密CA獲取證書的域名必須指向服務(wù)器。在發(fā)出證書之前,客戶端驗證域權(quán)限。</pre>

<pre style="margin: 0px; padding: 0px;">為ERPNext應(yīng)用程序啟用DNS多租戶。</pre>

bench config dns_multitenant on

<pre style="margin: 0px; padding: 0px;">運行工作臺設(shè)置讓我們對你的網(wǎng)站進行加密:</pre>

sudo bench setup lets-encrypt erp.example.com

<pre style="margin: 0px; padding: 0px;">在執(zhí)行腳本期間,Let 's Encrypt客戶端將要求您暫時停止Nginx web服務(wù)器。它將自動安裝所需的包,并加密客戶機??蛻魧⑻崾灸碾娮余]件地址。你還需要接受條款和條件。生成證書之后,Bench還將為使用SSL證書的Nginx生成新的配置。 Bench還創(chuàng)建一個crontab條目,每個月自動更新證書。</pre>

<pre style="margin: 0px; padding: 0px;">最后,啟用調(diào)度程序來自動運行預(yù)定的作業(yè):</pre>

bench enable-scheduler

<pre style="margin: 0px; padding: 0px;">您應(yīng)該看到:</pre>

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

<pre style="margin: 0px; padding: 0px;">結(jié)束</pre>

<pre style="margin: 0px; padding: 0px;">一旦流程完成,您可以在https://erp.example.com訪問您的應(yīng)用程序。使用用戶名管理員和在安裝期間設(shè)置的密碼登錄。你將被帶到你需要提供信息的桌面上,根據(jù)你的公司設(shè)置ERPNext ERP,現(xiàn)在可以使用應(yīng)用程序管理公司。</pre>

<pre style="margin: 0px; padding: 0px;">祝賀您,您已經(jīng)在CentOS 7服務(wù)器上安裝了一個完全工作的ERPNext應(yīng)用程序。</pre>

轉(zhuǎn)貼http://blog.tianya.cn/post-7730408-130415761-1.shtml

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容