Requisits previs
Instal·lar eines de desenvolupament
Instal·leu MariaDB Server
Instal·leu Nginx, Nodejs i Redis
Instal·leu PDF Converter
Instal·leu el banc
Instal·leu ERPNext amb Bench
Supervisor de configuració i Nginx
Embolcallant
ERP o Enterprise Resource Planning és una suite d'aplicacions empresarials que s'utilitza per gestionar els processos de negoci bàsics. ERPNext és una aplicació ERP autoallotjada gratuïta i de codi obert escrita en Python. Utilitza Node.js per a la portada i MariaDB per emmagatzemar les seves dades. ERPNext ofereix una interfície web fàcil d'utilitzar que permet a les empreses gestionar les tasques diàries. Conté mòduls de comptabilitat, CRM, HRM, fabricació, POS, gestió de projectes, compres, gestió de vendes, gestió de magatzems i molt més. ERPNext es pot utilitzar per gestionar diferents indústries, com ara proveïdors de serveis, fabricació, comerç minorista i escoles.
En aquest tutorial, instal·larem ERPNext a CentOS 7.
Requisits previs
Per a aquest tutorial, utilitzarem erp.example.comcom a nom de domini apuntat al servidor. Assegureu-vos de substituir totes les ocurrències de erp.example.compel vostre nom de domini real.
Actualitzeu el vostre sistema base mitjançant la guia " Com actualitzar CentOS 7 ". Un cop actualitzat el sistema, procediu a instal·lar Python.
ERPNext necessita la versió 2.7 de Python per funcionar. Python 2.7 s'instal·la de manera predeterminada a totes les instàncies del servidor CentOS. Podeu comprovar si la versió instal·lada de Python executant:
python -V
Hauríeu d'obtenir una sortida similar.
[user@vultr ~]$ python -V
Python 2.7.5
Tot i que la versió instal·lada de Python no és l'última, funciona sense cap problema. Canviar la versió predeterminada de Python pot trencar YUM.
Instal·leu els paquets del Development toolsgrup necessaris per compilar els fitxers d'instal·lació.
sudo yum groupinstall -y "Development tools"
Instal·leu algunes dependències més:
sudo yum install -y redhat-lsb-core git python-setuptools python-devel openssl-devel libffi-devel
Instal·leu l' pipeina de Python . Pip és el gestor de dependències dels paquets Python.
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
L'ordre anterior instal·larà Pip al vostre sistema. Per assegurar-vos que teniu la versió més recent de pipi setuptools, executeu:
sudo pip install --upgrade pip setuptools
Instal·leu Ansible amb Pip. Ansible automatitza el subministrament de programari, la gestió de la configuració i el desplegament d'aplicacions.
sudo pip install ansible
Instal·leu MariaDB Server
MariaDB és una bifurcació del servidor de bases de dades MySQL. Instal·leu MariaDB executant.
sudo yum -y install mariadb mariadb-server mysql-devel
El motor d'emmagatzematge Barracuda és necessari per a la creació de bases de dades ERPNext, per tant, haureu de configurar MariaDB per utilitzar el motor d'emmagatzematge Barracuda. Editeu el fitxer de configuració predeterminat de MariaDB my.cnf.
sudo nano /etc/my.cnf
Afegiu les línies següents sota la symbolic-links=0línia.
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
Inicieu MariaDB i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Abans de configurar la base de dades, haureu de protegir MariaDB. Podeu assegurar-lo executant l' mysql_secure_installationscript:
sudo mysql_secure_installation
Se us demanarà la contrasenya d'arrel actual de MariaDB. Per defecte, no hi ha cap contrasenya d'arrel establerta a MariaDB. Premeu la tecla "Enter" per continuar. Establiu una contrasenya segura per a l'usuari root del vostre servidor MariaDB i responeu "Y" a totes les altres preguntes que es facin. Les preguntes que es fan són autoexplicatives.
Instal·leu Nginx, Nodejs i Redis
Com que el dipòsit EPEL s'instal·la de manera predeterminada a totes les instàncies de Vultr CentOS 7, podeu instal·lar directament Redis i Nginx. Però per instal·lar la darrera versió de Node.js, haureu d'afegir el dipòsit de Nodesource al vostre sistema.
Afegiu el dipòsit de Nodesource per a Node.js 8.x.
sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
Instal·leu Nginx, Nodejs i Redis:
sudo yum -y install nginx nodejs redis
Inicieu Nginx i activeu-lo per iniciar-se en el moment de l'arrencada executant:
sudo systemctl start nginx
sudo systemctl enable nginx
Inicieu Redis i habiliteu-lo perquè s'iniciï en el moment de l'arrencada executant:
sudo systemctl start redis
sudo systemctl enable redis
Instal·leu PDF Converter
El wkhtmltopdfprograma és una eina de línia d'ordres que converteix HTML en PDF mitjançant el motor de representació QT Webkit. Instal·leu les dependències necessàries:
sudo yum -y install libXrender libXext xorg-x11-fonts-75dpi xorg-x11-fonts-Type1
Baixeu la darrera versió de wkhtmltopdf.
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
Extreu l'arxiu executant:
sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt
L'ordre anterior extreu l'arxiu a /opt/wkhtmltox. Creeu un softlink perquè wkhtmltopdfi wkhtmltoimagees pugui executar globalment com a ordre.
sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
sudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage
Ara podeu executar l' wkhtmltopdf -Vordre per comprovar si funciona, veureu:
[user@vultr ~]$ wkhtmltopdf -V
wkhtmltopdf 0.12.4 (with patched qt)
En aquest punt, tenim instal·lades totes les dependències necessàries. Ara podeu procedir a instal·lar Bench.
Instal·leu el banc
Benchés una utilitat de línia d'ordres proporcionada per Frappe per instal·lar i gestionar l'aplicació ERPNext en un sistema basat en Unix tant amb finalitats de desenvolupament com de producció. Bench també pot crear i gestionar la configuració del supervisor i Nginx.
Creeu un usuari nou per executar processos Bench en l'entorn aïllat.
sudo adduser bench -d /opt/bench
Canviar la contrasenya de l'usuari.
sudo passwd bench
Proporcioneu sudopermisos a l' benchusuari.
sudo usermod -aG wheel bench
Inicieu sessió com a benchusuari acabat de crear :
sudo su - bench
Clonar el dipòsit de Bench a /opt/bench:
cd /opt/bench
git clone https://github.com/frappe/bench bench-repo
Instal·leu Bench amb pip.
sudo pip install -e bench-repo
Un cop instal·lat Bench, procediu a instal·lar ERPNext mitjançant Bench.
Instal·leu ERPNext amb Bench
Inicieu un directori de banc amb el marc frappe instal·lat. Per mantenir-ho tot endreçat, treballarem sota el /opt/benchdirectori. Bench també configurarà còpies de seguretat periòdiques i actualitzacions automàtiques un cop al dia.
cd /opt/bench
bench init erpnext && cd erpnext
Creeu un nou lloc de Frappe:
bench new-site erp.example.com
L'ordre anterior us demanarà la contrasenya d'arrel de MySQL. Proporcioneu la contrasenya que heu establert anteriorment per a l'usuari root de MySQL. També us demanarà que configureu una nova contrasenya per al compte d'administrador. Necessitareu aquesta contrasenya més endavant per iniciar sessió al tauler d'administrador.
Baixeu els fitxers d'instal·lació d'ERPNext des del dipòsit git remot mitjançant el Bench.
bench get-app erpnext https://github.com/frappe/erpnext
Instal·leu ERPNext al vostre lloc recent creat:
bench --site erp.example.com install-app erpnext
ERPNext està instal·lat al vostre servidor. Podeu iniciar l'aplicació immediatament per comprovar si l'aplicació s'ha iniciat correctament:
bench start
Tanmateix, hauríeu d'aturar l'execució i continuar per configurar l'aplicació per a l'ús de producció.
Supervisor de configuració i Nginx
Per defecte, l'aplicació ERPNext escolta al port 8000, no al port HTTP estàndard 80. A més, no es recomana executar el servidor web integrat per a ús en producció, ja que exposarem el servidor al món. Per tant, hauríeu d'utilitzar un servidor web de producció com a servidor intermediari invers com Apache o Nginx. En aquest tutorial, utilitzarem Nginx com a servidor intermediari invers, ja que es pot configurar automàticament mitjançant Bench. Bench pot generar i instal·lar automàticament la configuració segons la configuració d'ERPNext.
Encara que podem iniciar l'aplicació mitjançant l'ordre anterior, l'execució d'ERPNext s'aturarà tan bon punt tanqueu el terminal. Per solucionar aquest problema, recomano utilitzar Supervisor, que és molt útil per executar l'aplicació contínuament en un entorn de producció. Supervisor és un sistema de control de processos que us permet supervisar i controlar una sèrie de processos en sistemes operatius Linux. Un cop configurat el Supervisor, s'iniciarà automàticament l'aplicació en el moment d'arrencar així com en cas de fallades. Bench pot configurar automàticament Supervisor per a l'aplicació ERPNext.
Instal·la el supervisor:
sudo yum -y install supervisor
Inicieu el Supervisor i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada:
sudo systemctl start supervisord
sudo systemctl enable supervisord
Banc de configuració per a ús en producció:
sudo bench setup production bench
L'ordre anterior us pot demanar abans de substituir el fitxer de configuració predeterminat del supervisor existent per un de nou. Trieu ycontinuar. Bench afegeix una sèrie de processos al fitxer de configuració del supervisor. L'ordre anterior també us demanarà si voleu substituir la configuració actual de Nginx per una de nova. Entra yper continuar. Un cop Bench hagi acabat d'instal·lar la configuració, proporcioneu a altres usuaris que executin els fitxers al vostre directori d'inici de l'usuari de Bench.
chmod o+x /opt/bench/
Si esteu executant un tallafoc al vostre servidor, haureu de configurar el tallafoc per establir una excepció per al servei HTTP. Permet que el servidor intermediari invers Nginx es connecti des de fora de la xarxa.
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Ara podeu accedir al lloc a http://erp.example.com.
Podeu comprovar l'estat dels processos executant:
sudo supervisorctl status all
Hauríeu de veure la sortida següent:
[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
Per aturar tots els processos ERPNext, utilitzeu:
sudo supervisorctl stop all
Per iniciar tots els processos ERPNext, utilitzeu:
sudo supervisorctl start all
Configuració de SSL amb Let's Encrypt
Let's Encrypt proporciona certificats SSL gratuïts als usuaris. SSL es pot instal·lar manualment o automàticament mitjançant Bench. Bench pot instal·lar automàticament el client Let's Encrypt i obtenir els certificats. A més, actualitza automàticament la configuració de Nginx per utilitzar els certificats.
The domain name which you are using to obtain the certificates from the Let's Encrypt CA must be pointed towards the server. The client verifies the domain authority before issuing the certificates.
Habiliteu la multiarrendament de DNS per a l'aplicació ERPNext.
bench config dns_multitenant on
Executeu Bench per configurar Let's Encrypt al vostre lloc:
sudo bench setup lets-encrypt erp.example.com
Durant l'execució de l'script, el client Let's Encrypt us demanarà que atureu temporalment el servidor web Nginx. Instal·larà automàticament els paquets necessaris i el client Let's Encrypt. El client us demanarà la vostra adreça de correu electrònic. També haureu d'acceptar els termes i condicions. Un cop generats els certificats, Bench també generarà la nova configuració per a Nginx que utilitza els certificats SSL. Se us demanarà abans de substituir la configuració existent. Bench també crea una crontabentrada per renovar automàticament els certificats cada mes.
Finalment, habiliteu el planificador per executar automàticament els treballs programats:
bench enable-scheduler
Hauries de veure:
[bench@vultr erpnext]$ bench enable-scheduler
Enabled for erp.example.com
Embolcallant
Un cop finalitzat el procés, podeu accedir a la vostra sol·licitud a https://erp.example.com. Inicieu sessió amb el nom d'usuari Administratori la contrasenya que heu establert durant la instal·lació. Se us portarà al taulell on haureu de proporcionar informació per configurar ERPNext ERP segons la vostra empresa. Ara podeu utilitzar l'aplicació per gestionar la vostra empresa.
Enhorabona, teniu una aplicació ERPNext que funciona completament instal·lada al vostre servidor CentOS 7.