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