Προαπαιτούμενα
Εγκαταστήστε Εργαλεία Ανάπτυξης
Εγκαταστήστε το διακομιστή MariaDB
Εγκαταστήστε τα Nginx, Node.js και Redis
Εγκαταστήστε το PDF Converter
Εγκαταστήστε τον πάγκο
Εγκαταστήστε το ERPNext χρησιμοποιώντας το Bench
Επόπτης εγκατάστασης και Nginx
συμπέρασμα
Το ERP ή το Enterprise Resource Planning είναι μια σουίτα εταιρικών εφαρμογών που χρησιμοποιείται για τη διαχείριση βασικών επιχειρηματικών διαδικασιών. Το ERPNext είναι μια δωρεάν και ανοιχτού κώδικα, αυτο-φιλοξενούμενη εφαρμογή ERP γραμμένη σε Python. Χρησιμοποιεί το Node.js για τη διεπαφή και το MariaDB για την αποθήκευση των δεδομένων του. Το ERPNext παρέχει μια εύχρηστη διεπαφή ιστού που επιτρέπει στις επιχειρήσεις να διαχειρίζονται καθημερινές εργασίες. Περιλαμβάνει ενότητες για λογιστική, CRM, HRM, κατασκευή, POS, διαχείριση έργων, αγορές, διαχείριση πωλήσεων, διαχείριση αποθήκης και πολλά άλλα. Το ERPNext μπορεί να χρησιμοποιηθεί για τη διαχείριση διαφορετικών βιομηχανιών όπως οι πάροχοι υπηρεσιών, η κατασκευή, το λιανικό εμπόριο και τα σχολεία.
Προαπαιτούμενα
- Μια παρουσία διακομιστή Vultr Ubuntu 17.04.
- Ένας χρήστης sudo .
Σημείωση: Για αυτό το σεμινάριο, θα χρησιμοποιήσουμε erp.example.comως όνομα τομέα που αναφέρεται στον διακομιστή. Βεβαιωθείτε ότι έχετε αντικαταστήσει όλες τις εμφανίσεις του erp.example.comμε το πραγματικό σας όνομα τομέα .
Πριν ξεκινήσουμε, βεβαιωθείτε ότι ο διακομιστής σας είναι ενημερωμένος.
sudo apt update
sudo apt -y upgrade
Το ERPNext χρειάζεται την έκδοση 2.7 της Python για να λειτουργήσει. Εγκαταστήστε την Python 2.7.
sudo apt -y install python-minimal
Θα πρέπει να μπορείτε να επαληθεύσετε την έκδοσή του.
python -V
Θα δείτε την ακόλουθη έξοδο.
user@vultr:~$ python -V
Python 2.7.13
Εγκαταστήστε μερικές ακόμη εξαρτήσεις.
sudo apt -y install git build-essential python-setuptools python-dev libffi-dev libssl-dev
Εγκαταστήστε το pipεργαλείο της Python . Το Pip είναι ο διαχειριστής εξαρτήσεων για πακέτα Python.
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Βεβαιωθείτε ότι έχετε την πιο πρόσφατη έκδοση του pipκαι setuptools.
sudo pip install --upgrade pip setuptools
Εγκαταστήστε το Ansible χρησιμοποιώντας το Pip. Το Ansible αυτοματοποιεί την παροχή λογισμικού, τη διαχείριση παραμέτρων και την ανάπτυξη εφαρμογών.
sudo pip install ansible
Εγκαταστήστε τον διακομιστή MariaDB
Προσθέστε το αποθετήριο MariaDB στο σύστημα.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'
Εγκαταστήστε το MariaDB.
sudo apt update
sudo apt -y install mariadb-server libmysqlclient-dev
Δώστε έναν ισχυρό κωδικό πρόσβασης για τον χρήστη root MariaDB όταν σας ζητηθεί.
Η μηχανή αποθήκευσης Barracuda απαιτείται για τη δημιουργία βάσεων δεδομένων ERPNext, επομένως θα χρειαστεί να διαμορφώσετε το MariaDB για να χρησιμοποιήσετε τη μηχανή αποθήκευσης Barracuda. Επεξεργαστείτε το προεπιλεγμένο αρχείο διαμόρφωσης MariaDB my.cnf.
sudo nano /etc/mysql/my.cnf
Προσθέστε τις ακόλουθες γραμμές κάτω από τη [mysqld]γραμμή.
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 restart mariadb
sudo systemctl enable mariadb
Πριν διαμορφώσετε τη βάση δεδομένων, θα χρειαστεί να ασφαλίσετε το MariaDB. Μπορείτε να το ασφαλίσετε εκτελώντας το mysql_secure_installationσενάριο.
sudo mysql_secure_installation
Θα σας ζητηθεί ο τρέχων κωδικός πρόσβασης root MariaDB. Δώστε τον κωδικό πρόσβασης που έχετε ορίσει κατά την εγκατάσταση. Θα ερωτηθείτε εάν θέλετε να αλλάξετε τον υπάρχοντα κωδικό πρόσβασης του χρήστη root του διακομιστή MariaDB. Μπορείτε να παραλείψετε τον ορισμό νέου κωδικού πρόσβασης, καθώς έχετε ήδη δώσει έναν ισχυρό κωδικό πρόσβασης κατά την εγκατάσταση. Απαντήστε "Y" σε όλες τις άλλες ερωτήσεις που τίθενται.
Εγκαταστήστε τα Nginx, Node.js και Redis
Προσθέστε το αποθετήριο Nodesource για το Node.js 8.x.
sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
Εγκαταστήστε τα Nginx, Node.js και Redis.
sudo apt -y install nginx nodejs redis-server
Ξεκινήστε το Nginx και ενεργοποιήστε το να ξεκινήσει κατά την εκκίνηση.
sudo systemctl start nginx
sudo systemctl enable nginx
Εκκινήστε το Redis και ενεργοποιήστε το να ξεκινήσει κατά την εκκίνηση.
sudo systemctl start redis-server
sudo systemctl enable redis-server
Εγκαταστήστε το PDF Converter
Το wkhtmltopdfπρόγραμμα είναι ένα εργαλείο γραμμής εντολών που μετατρέπει την HTML σε PDF χρησιμοποιώντας τη μηχανή απόδοσης QT Webkit. Εγκαταστήστε τις απαιτούμενες εξαρτήσεις.
sudo apt -y install libxrender1 libxext6 xfonts-75dpi xfonts-base
Κατεβάστε την πιο πρόσφατη έκδοση του 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. Δημιουργήστε ένα softlink έτσι ώστε 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 για την εγκατάσταση και τη διαχείριση της εφαρμογής ERPNext σε ένα σύστημα που βασίζεται σε Unix τόσο για σκοπούς ανάπτυξης όσο και για σκοπούς παραγωγής. Το Bench μπορεί επίσης να δημιουργήσει και να διαχειριστεί διαμορφώσεις Nginx και επόπτη.
Δημιουργήστε έναν νέο χρήστη για την εκτέλεση διεργασιών Bench στο απομονωμένο περιβάλλον.
sudo adduser bench --home /opt/bench
Παρέχετε sudoδικαιώματα στον benchχρήστη.
sudo usermod -aG sudo 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, προχωρήστε περαιτέρω στην εγκατάσταση του ERPNext χρησιμοποιώντας το Bench.
Εγκαταστήστε το ERPNext χρησιμοποιώντας το Bench
Αρχικοποιήστε έναν κατάλογο πάγκου με εγκατεστημένο το πλαίσιο φραπέ. Για να διατηρούμε τα πάντα τακτοποιημένα, θα εργαστούμε κάτω από τον /opt/benchκατάλογο. Το Bench θα ρυθμίζει επίσης τακτικά αντίγραφα ασφαλείας και αυτόματες ενημερώσεις μία φορά την ημέρα.
cd /opt/bench
bench init erpnext && cd erpnext
Δημιουργήστε μια νέα τοποθεσία Frappe.
bench new-site erp.example.com
Η παραπάνω εντολή θα σας ζητήσει τον κωδικό πρόσβασης root MySQL. Δώστε τον κωδικό πρόσβασης που έχετε ορίσει νωρίτερα για τον χρήστη root της MySQL. Θα σας ζητήσει επίσης να ορίσετε νέο κωδικό πρόσβασης για τον λογαριασμό διαχειριστή. Θα χρειαστείτε αυτόν τον κωδικό πρόσβασης αργότερα για να συνδεθείτε στον πίνακα ελέγχου διαχειριστή .
Λήψη αρχείων εγκατάστασης ERPNext από το απομακρυσμένο αποθετήριο git χρησιμοποιώντας το Bench.
bench get-app erpnext https://github.com/frappe/erpnext
Εγκαταστήστε το ERPNext στον ιστότοπό σας που μόλις δημιουργήσατε.
bench --site erp.example.com install-app erpnext
Μπορείτε να ξεκινήσετε την εφαρμογή αμέσως για να ελέγξετε εάν η εφαρμογή εγκαταστάθηκε με επιτυχία.
bench start
Ωστόσο, θα πρέπει να σταματήσετε την εκτέλεση και να προχωρήσετε περαιτέρω στη ρύθμιση της εφαρμογής για χρήση παραγωγής.
Επόπτης εγκατάστασης και Nginx
Από προεπιλογή, η εφαρμογή ERPNext ακούει στη θύρα 8000, όχι στην τυπική θύρα HTTP 80. Επίσης, δεν συνιστάται η εκτέλεση του ενσωματωμένου διακομιστή web για παραγωγική χρήση, καθώς θα εκθέσουμε τον διακομιστή στον κόσμο. Θα πρέπει να χρησιμοποιήσετε έναν διακομιστή web παραγωγής ως αντίστροφο διακομιστή μεσολάβησης όπως Apache ή Nginx. Θα χρησιμοποιήσουμε το Nginx ως αντίστροφο διακομιστή μεσολάβησης καθώς μπορεί να ρυθμιστεί αυτόματα χρησιμοποιώντας το Bench. Το Bench μπορεί να δημιουργήσει και να εγκαταστήσει αυτόματα τη διαμόρφωση σύμφωνα με τη ρύθμιση ERPNext.
Αν και μπορούμε να ξεκινήσουμε την εφαρμογή χρησιμοποιώντας την εντολή 'bench start', η εκτέλεση του ERPNext θα σταματήσει μόλις κλείσετε το τερματικό. Για να ξεπεράσετε αυτό το ζήτημα, θα πρέπει να χρησιμοποιήσετε το Supervisor, το οποίο είναι πολύ χρήσιμο στη συνεχή εκτέλεση της εφαρμογής σε περιβάλλον παραγωγής. Το Supervisor είναι ένα σύστημα ελέγχου διεργασιών που σας δίνει τη δυνατότητα να παρακολουθείτε και να ελέγχετε έναν αριθμό διεργασιών σε λειτουργικά συστήματα Linux. Μόλις ρυθμιστεί ο Επόπτης, θα ξεκινήσει αυτόματα την εφαρμογή κατά την εκκίνηση καθώς και σε αποτυχίες. Το Bench μπορεί να διαμορφώσει αυτόματα τον Επόπτη για την εφαρμογή ERPNext.
Εγκαταστήστε το Supervisor.
sudo apt -y install supervisor
Εκκινήστε το Supervisor και ενεργοποιήστε το να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start supervisor
sudo systemctl enable supervisor
Ρύθμιση πάγκου για παραγωγική χρήση.
sudo bench setup production bench
Η παραπάνω εντολή ενδέχεται να σας ζητήσει πριν αντικαταστήσετε το υπάρχον αρχείο προεπιλεγμένων ρυθμίσεων του Supervisor με ένα νέο. Επιλέξτε yνα προχωρήσετε. Το Bench προσθέτει έναν αριθμό διεργασιών στο αρχείο διαμόρφωσης του Supervisor. Η παραπάνω εντολή θα σας ρωτήσει επίσης εάν θέλετε να αντικαταστήσετε την τρέχουσα διαμόρφωση Nginx με μια νέα. Μπείτε yγια να προχωρήσετε. Μόλις το Bench ολοκληρώσει την εγκατάσταση της διαμόρφωσης, δώστε σε άλλους χρήστες να εκτελέσουν τα αρχεία στον αρχικό σας κατάλογο του χρήστη Bench.
chmod o+x /opt/bench/
Τώρα μπορείτε να αποκτήσετε πρόσβαση στον ιστότοπο στο http://erp.example.com.
Μπορείτε να ελέγξετε την κατάσταση των διεργασιών εκτελώντας.
sudo supervisorctl status all
Θα πρέπει να δείτε την ακόλουθη έξοδο.
bench@vultr:~/erpnext$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache RUNNING pid 13852, uptime 0:00:54
erpnext-redis:erpnext-redis-queue RUNNING pid 13851, uptime 0:00:54
erpnext-redis:erpnext-redis-socketio RUNNING pid 13853, uptime 0:00:54
erpnext-web:erpnext-frappe-web RUNNING pid 13856, uptime 0:00:54
erpnext-web:erpnext-node-socketio RUNNING pid 13855, uptime 0:00:54
erpnext-workers:erpnext-frappe-default-worker-0 RUNNING pid 13862, uptime 0:00:54
erpnext-workers:erpnext-frappe-long-worker-0 RUNNING pid 13870, uptime 0:00:54
erpnext-workers:erpnext-frappe-schedule RUNNING pid 13869, uptime 0:00:54
erpnext-workers:erpnext-frappe-short-worker-0 RUNNING pid 13875, uptime 0:00:54
Για να σταματήσετε όλες τις διεργασίες ERPNext.
sudo supervisorctl stop all
Για να ξεκινήσετε όλες τις διεργασίες ERPNext.
sudo supervisorctl start all
Ρύθμιση SSL χρησιμοποιώντας Let's Encrypt
Το Let's Encrypt παρέχει δωρεάν πιστοποιητικά SSL στους χρήστες. Το SSL μπορεί να εγκατασταθεί χειροκίνητα ή αυτόματα μέσω του Bench. Το Bench μπορεί να εγκαταστήσει αυτόματα τον πελάτη Let's Encrypt και να λάβει τα πιστοποιητικά. Επιπλέον, ενημερώνει αυτόματα τη διαμόρφωση Nginx για χρήση των πιστοποιητικών.
Το όνομα τομέα που χρησιμοποιείτε για να αποκτήσετε τα πιστοποιητικά από το Let's Encrypt CA πρέπει να είναι στραμμένο προς το διακομιστή. Ο πελάτης επαληθεύει την αρχή τομέα πριν από την έκδοση των πιστοποιητικών .
Ενεργοποίηση πολλαπλής μίσθωσης DNS για την εφαρμογή ERPNext.
bench config dns_multitenant on
Εκτελέστε το Bench για να ρυθμίσετε το Let's Encrypt στον ιστότοπό σας.
sudo bench setup lets-encrypt erp.example.com
Κατά την εκτέλεση του σεναρίου, ο πελάτης Let's Encrypt θα σας ζητήσει να διακόψετε προσωρινά τον διακομιστή web Nginx. Θα εγκαταστήσει αυτόματα τα απαιτούμενα πακέτα και τον πελάτη Let's Encrypt. Ο πελάτης θα σας ζητήσει τη διεύθυνση email σας. Θα χρειαστεί επίσης να αποδεχτείτε τους όρους και τις προϋποθέσεις. Μόλις δημιουργηθούν τα πιστοποιητικά, το Bench θα δημιουργήσει επίσης τη νέα διαμόρφωση για το Nginx που χρησιμοποιεί τα πιστοποιητικά SSL. Θα ερωτηθείτε πριν αντικαταστήσετε την υπάρχουσα διαμόρφωση. Το Bench δημιουργεί επίσης μια crontabκαταχώρηση για αυτόματη ανανέωση των πιστοποιητικών κάθε μήνα.
Τέλος, ενεργοποιήστε τον προγραμματιστή να εκτελεί αυτόματα τις προγραμματισμένες εργασίες.
bench enable-scheduler
Θα πρέπει να δείτε αυτήν την έξοδο.
bench@vultr:~/erpnext$ bench enable-scheduler
Enabled for erp.example.com
συμπέρασμα
Μόλις ολοκληρωθεί η διαδικασία, μπορείτε να αποκτήσετε πρόσβαση στην αίτησή σας στο https://erp.example.com. Συνδεθείτε με το όνομα χρήστη Administratorκαι τον κωδικό πρόσβασης που έχετε ορίσει κατά την εγκατάσταση. Θα μεταφερθείτε στο γραφείο όπου θα χρειαστεί να δώσετε πληροφορίες για να ορίσετε το ERPNext ERP σύμφωνα με την εταιρεία σας. Τώρα μπορείτε να χρησιμοποιήσετε την εφαρμογή για να διαχειριστείτε την εταιρεία σας.
Συγχαρητήρια, έχετε μια πλήρως λειτουργική εφαρμογή ERPNext εγκατεστημένη στον διακομιστή σας Ubuntu 17.04.